安卓逆向之ida的那些坑2脱坑

先来说下遇到的问题:调试某个app的so时,ida动态调试使用jdb附加,断点断在了linker处,然后开始加载so文件,目标so还没加载出来,app闪退,动态调试终止。
之前一直以为是什么反调试,我还一直百思不得其解,因为我要逆向的这个app是没加壳的,java层反调试也没hook到,说明程序根本没运行到反调试这一步。毕竟反调试肯定要写在代码里,现在初始化都没完成就崩了。查遍各种资料都没有见到在linker加载so的时候会崩溃这种情况。
后来终于在看到一篇文章时大受启发,了解到了armeabi-v7a和armeabi的区别。我之前一直使用的调试真机是小米四,32位(对应使用ida的android_server,如果是64位要使用android_server64),miui开发版,安卓版本6.0.1。经过调试大量的app,得到结论,这个手机只能调试lib中有armeabi的app。现在主流app解包后的lib下就只有armeabi-v7a。
于是开始各种借测试机来尝试,最后成功的机器是,红米note8,64位,安卓版本9。断点终于成功打进了目标so中,此时再按F9,app还是会退出,是因为这个so中加了反调试,在静态分析时已经看到了,后面就是对反调试的处理了。在这里插入图片描述
另外,在使用各种不同的系统机型来测试时,发现会有一种情况的出现,jdb附加直接报io异常,并且没有很好的提示异常出现的原因。
在这里插入图片描述
出现这个异常和monitor无关,如果是因为monitor没打开的话,这个io异常后面会明确说明sockt什么什么错误。而这里并没有任何说明。经过多次测试,发现只要手机安卓版本10,ida附加jdb就会出现这个问题。换成低版本就不会有这个问题。具体为什么会出现这个问题,我也没有深入研究,看报错信息前两句的意思好像是创建虚拟机的时候发生了什么不可描述的事情。

到此ida动态调试遇到的坑就这么多了,宣布脱坑!!!

就这个断点进不去目标so的问题,我研究了一个多月,去到各种平台像某宝、某鱼或者逆向群里悬赏一千,也没人帮我解决,好多人根本就不知道ida动态调试是什么,还有不懂在那瞎说的(这种不懂瞎说的人是最烦的,误导人走弯路),好不容易遇到懂的大佬又不愿意教,这个封闭的圈子,真是让人难受。

如果有想要一起学习交流技术的,欢迎加群:546452230

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值