IDA动态调试so - Go语言中文社区

IDA动态调试so



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


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

1. 复制IDA 6.8dbgsrvandroid_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值来改变执行命令

 




版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/u012292247/article/details/71799228
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-09-13 16:47:43
  • 阅读 ( 1209 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

推荐文章

猜你喜欢