Gdb+gdbserver无源码调试Android 动态链接库的技巧

作者:薛定諤耗子

有图片版本请下载我的资源doc文档

1,按照前一篇文章《薛定諤耗子:使用hello-gl2建立ndk-gdb环境》,我们可以顺利进入无源码调试环境,进入之后,我们就要进行实际的调试了。就像我们工作,顺利通过面,而且入职了,下面我们就应该研究如何工作了。

 2 
 ,首先对于无源码,我们第一个想到的就是如何看汇编代码了,就像 
 dos 
 时代的 
 debug 
 一样。怎么看呢? 
 

其实很简单,只需要打开一个一个开关就可以了。

(gdb) set disassemble-next on

打开这个开关之后,如果我们执行si指令之后,就会像当年dos程序一样的显示出汇编代码了。

除了si显示下一条指令的汇编代码,我们还可以显式的去显示我们想知道的汇编代码

3,除了查看汇编代码以外,我们还想看看寄存器的值,如何查看?使用info register指令

4,使用反汇编,我们可以看出代码执行到什么位置,但是这种局部的代码,实在不好分析,所以,我们需要动态调试和静态分析结合起来使用,静态工具最好使用IDA Pro,这是一个非常优秀的工作,逆向工程里的瑞士军刀。

使用IDA Pro,不但,只需把鼠标放到跳转的函数上面,就可以

另外IDA Pro选择图形方式看代码,你还可以清楚看出代码的逻辑结构

5,除了使用export函数名设置断点以外,还可以使用地址设置断点,地址设置断点的方法就是在地址前加“*”号。当函数调入系统库很深的时候,我们就可以使用地址的方法让系统运行到我们制定的地方。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值