IDA动态调试so

本文详细介绍如何使用IDA工具调试Android设备上的SO文件,包括设置远程调试环境、配置调试选项及跟踪断点的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


IDA是一个可以用来反编译so、dll、exe、sys等文件的反编译工具,不过IDA无法直接修改汇编代码,这个相对于Ollydbg来说是一个不足的地方,不过它可以通过修改hex代码来修改指令。下面是关于IDA调试android so的介绍


 IDA调试so步骤(前提是手机必须root,因为要attach一个进程,修改文件权限等必须有root权限):

1. 复制IDA 6.8\dbgsrv\android_server到/data/local/tmp目录下

2. 进入/data/local/tmp目录,执行chmod 777 android_server

 

3. 另起一个窗口,执行adb forward tcp:23946 tcp:23946,这步很重要,没执行的话就会报错说找不到连接,目的是将PC上所有23946端口通信数据将被重定向到手机端23946端口server,这边就用到了上面开启的android_server了

 

 

4. 手机客户端打开待调试app

5. Ida设置远程调试

 

6. 配置Debugger->Process options ,设置hostname为localhost就行了,其他不用管

 

7. 开始attach process

 

8. 选择目标进程,可以用search搜索

 

 

9. 接下来会弹出一系列下面弹窗,一律选择cancel,然后apply

 

 

 

10. IDA View按ctrl+s,弹出so选择框

 

 

 

11. 点击下面的Search,搜索指定的so,注意搜索之前先把进度条拉到顶端,因为你要找到这个so得入口地址,所以必须是so出现第一个地址,而且Class那边得是Code的

 

 

12. 双击上面搜索结果,进入so入口地址(判断是不是入口可以看它上面是不是别的so就知道了)

 

 

13. 找到之前加载进so时打的断点地址,然后与上面找到的so入口地址相加就是当前进程中的所调试代码位置了,点击菜单栏的Jump选项跳转到指定地址,可以看到之前打的断点显示为红色,因此可以先打好断点再进行调试

 

 

 

14. 先执行F9让程序继续下去,然后运行手机端app,让它调用指定函数以便执行到断点处,如果到达断点,那一行会显示为紫色,接下来可以用F8(单步调试)、F7(进入函数)等快捷键开始调试,调试时可以看到变量的值,也可以动态修改下面的hex值来改变执行命令

 




评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值