如何使用ida在apk执行前动态调试其so中的函数

 我来答
huanglenzhi
推荐于2016-10-13 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517165
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  安卓手机用ida在apk执行前动态调试其so中的函数

  方法1
  1、解包对方APK,插入一个:对应SMALI: android.os.SystemClock.sleep(20000);const-wide/16 v0, 0x2710 #20秒invoke-static {v0, v(X-1)}, Landroid/os/SystemClock;->sleep(J)V这里(X-1)对应.local X。

  2
  另外,有的包在你要调试的那个SO里面有签名保护,反正你重新打了包之后会导致程序运行崩溃,这个相比JAVA修改困难些,建议你用那个签名漏洞来打包。事实上我调试那个SO也遇到过这样,然后打了个签名漏洞的包嵌入的延时函数就可以了。
  方法2

  1) am start -D -n 包名/类名;

  2) IDA pro attach 进程, 设置新线程,加载so时断点,continue;

  3) 打开ddms, 查看调试端口, jdb attach port;

  4) 这个时候应该已经断在新线程,或者加载so处了,在你感兴趣的so处停下来;

  5) 另外用ida 打开so,查看你感兴趣的函数偏移, 加上你感兴趣的so的基地址,打上断点,continue, 就大功告成了。

  注意事项

  windows下ida6.1不行,linux ida 6.4可以,不知是ida的问题还是windows的问题,你可以在linux下用wine测一下。
  经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式