无反调试:
- adb push d:\android_server(IDA的dbgsrv目录下) /data/local/tmp/android_server(这个目录其实可以随便放,有的反调试会检测这)
- adb shell
- su(一定要有root权限)
- cd /data/local/tmp
- chmod 777 android_server(执行权限要给)
- 再开一个cmd adb forward tcp:23946 tcp:23946(端口转发,调试手机上的某个进程要有协议支持通信
- 打开待调试的应用程序,就可以愉快的调试了
有反调试:
- 启动android_server;
- 端口转发adb forward tcp:23946 tcp:23946;
- adb shell am start -D -n 包名/类名;(说明:以启动模式启动,是停在加载so文件之前,报名在AndroidMainfest文件中可以找到)
- 打开IDA,附加上对应的进程之后,设置IDA中的load so的时机,在debug options中设置一下,后面会有实战部分;
- adb forward tcp:8700 jdwp:进程号;(jdwp是后面jdb调试器的协议,转换到待调试的指定的应用程序);
- db -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8700(jdb进行附加);
- 可以愉快的下断点,开始调试了;
抽取于 https://www.cnblogs.com/lsgxeva/p/8948106.html