IDA动态调试,最后jdb挂的时候一直出错
最近在尝试对native层的动态调试,但是总是没法成功。以下是我的步骤:
一、打开Android server在手机上的服务
二、使用adb forward转发端口
三、以调试模式打开程序
四、在so文件的JNI_LOAD处设置断点,三个自动断点设置
五、IDA挂载进程,同时获取到进程号7566
六、设置端口和进程
七、开启jdb
然后就直接报错了,手机端的程序也会自动退出。感觉和网上的步骤没区别,手机电脑也都重启过,完全不知道错在哪个位置了。 先换论坛的IDA7.7试试,不行再换java版本 是否真机?换个手机试没?app开启了可调试选项没?是不是app有反调试…
太多可能… 谢谢分享 无闻无问 发表于 2022-8-15 21:38
是否真机?换个手机试没?app开启了可调试选项没?是不是app有反调试…
太多可能…
就是在过反调试,做了断点,操作步骤和同事基本一致,确实没试过换手机,现在有点怀疑Android10是不是版本太高了 Li1y 发表于 2022-8-15 19:31
先换论坛的IDA7.7试试,不行再换java版本
ida7.5按道理应该可以,确实等下试下改java的版本 问题解决,我的解决方案和环境:
pixel 4
Android 10
ida 7.7
java11
PS:修改反调试的命令hex值后没法直接保存到手机程序资源目录的so中,得重打包APK,绕过反调试后得在手机端进行操作,IDA这边才能继续跑到验证函数的断点。 westmelom 发表于 2022-8-16 14:26
问题解决,我的解决方案和环境:
pixel 4
Android 10
所以还是反调试让jdb附加失败了吗? westmelom 发表于 2022-8-16 14:26
问题解决,我的解决方案和环境:
pixel 4
Android 10
我觉得应该不是壳的反调的问题,因为壳的.so还没加载。attach了一个没有壳的进程,先ida附加,再jdb connect 还是会报错。
ida 7.5
android 12
java openjdk 1.8
我在怀疑是ida或者是android版本太高了
Dalion 发表于 2022-8-19 17:55
所以还是反调试让jdb附加失败了吗?
并不是,就是兼容问题让jdb的挂载会失败,用ida7.7能挂上去,jdb附加失败的时候还没加载so
页:
[1]
2