westmelom 发表于 2022-8-15 17:48

IDA动态调试,最后jdb挂的时候一直出错

最近在尝试对native层的动态调试,但是总是没法成功。
以下是我的步骤:
一、打开Android server在手机上的服务

二、使用adb forward转发端口

三、以调试模式打开程序

四、在so文件的JNI_LOAD处设置断点,三个自动断点设置


五、IDA挂载进程,同时获取到进程号7566


六、设置端口和进程

七、开启jdb


然后就直接报错了,手机端的程序也会自动退出。感觉和网上的步骤没区别,手机电脑也都重启过,完全不知道错在哪个位置了。

Li1y 发表于 2022-8-15 19:31

先换论坛的IDA7.7试试,不行再换java版本

无闻无问 发表于 2022-8-15 21:38

是否真机?换个手机试没?app开启了可调试选项没?是不是app有反调试…
太多可能…

feob 发表于 2022-8-16 06:42

谢谢分享

westmelom 发表于 2022-8-16 09:20

无闻无问 发表于 2022-8-15 21:38
是否真机?换个手机试没?app开启了可调试选项没?是不是app有反调试…
太多可能…

就是在过反调试,做了断点,操作步骤和同事基本一致,确实没试过换手机,现在有点怀疑Android10是不是版本太高了

westmelom 发表于 2022-8-16 09:23

Li1y 发表于 2022-8-15 19:31
先换论坛的IDA7.7试试,不行再换java版本

ida7.5按道理应该可以,确实等下试下改java的版本

westmelom 发表于 2022-8-16 14:26

问题解决,我的解决方案和环境:
pixel 4
Android 10
ida 7.7
java11

PS:修改反调试的命令hex值后没法直接保存到手机程序资源目录的so中,得重打包APK,绕过反调试后得在手机端进行操作,IDA这边才能继续跑到验证函数的断点。

Dalion 发表于 2022-8-19 17:55

westmelom 发表于 2022-8-16 14:26
问题解决,我的解决方案和环境:
pixel 4
Android 10


所以还是反调试让jdb附加失败了吗?

Dalion 发表于 2022-8-19 18:04

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版本太高了

westmelom 发表于 2022-8-22 10:33

Dalion 发表于 2022-8-19 17:55
所以还是反调试让jdb附加失败了吗?

并不是,就是兼容问题让jdb的挂载会失败,用ida7.7能挂上去,jdb附加失败的时候还没加载so
页: [1] 2
查看完整版本: IDA动态调试,最后jdb挂的时候一直出错