1. adb以调试模式启动安卓进程
adb shell am start -D -n com.example.crackme/com.example.crackme.MainActivity
2. jdb连接目标进程端口
jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700
3. adb 停止目标进程
am force-stop com.ali.encryption
4. 查看进程
adb shell ps
5. 查看某个进程的映射
adb shell cat /proc/pid/maps | grep xxxxx
6. 查看TracerPid
cat /proc/pid/status 查看TracerPid
7. IDA调试时,dump so :
dump pyimport idaapi
base = 0x74E71000
size = 266252
data = idaapi.dbg_read_memory(base,size)
if data != None:
f = open("e:\\crackme1.so","wb")
f.write(data)
f.close()
8. 自定义NDK debug 输出函数:
void log_verbose(const char* format, ...)
{
va_list args;
va_start(args, format);
__android_log_vprint(ANDROID_LOG_VERBOSE, "hello-jni", format, args);
va_end(args);
}
...
void example()
{
log_verbose("Errno is now %d", errno);
}
java -jar AXMLPrinter2.jar AndroidManifest.xml
10. 必须以su身份运行android_server,否则看到的进程列表不全。