android 调试利器之IDA

android 调试利器之IDA  (xingchongatgmaildotcom)

工欲善其事,必先利其器
IDA 是公认的反汇编最给力的工具。google IDA 或者IDApro 就能找到IDA的主页;
IDA价格是很贵的,最便宜的license也要超过500美元,不过他提供Demo版本,虽然功能有限制,但基本功能都在,而且可以无限期使用;

IDA不但支持x86,也支持arm平台;笔者在调试android/ARM上面的程序,试用了了IDA,用得很爽,可以说相比之下objdump简直弱爆了。
对此,下面举两个例子:

1. 清晰的显示所调用的库函数名字,以及各个参数;
上图为IDA反汇编结果,显示了调用libc函数kill, 其中R0/R4存放着pid(第一个参数), R3放着sig 是signal number = 0x17(第二个参数)。 一目了然;
下图为objdump反汇编结果,一比就只高下;


2. 不同代码块中,对同一块内存的访问用同一个符号表示

上图为IDA反汇编结果,显示两段代码访问同一个变量,黄色高亮部分就是IDA给变量起的名字。
再看下图objdump反汇编,同样的两段代码,你能看出他们是在访问同一个内存变量吗?
对于没有高级语言源代码的调式工作,找出哪些代码访问某一块内存有时候是至关重要的。面对objdump,只能无奈了;


笔者作为经常调试程序的码农,而且是看不到源代码的码农,IDA的帮助真的很大,不仅仅加快了进度,有时候还变不能为能;

IDA还有反编译的功能,直接反编译成高级语言C代码,可惜这个功能不在Demo版之内,而且需要额外的license费用,笔者负担不起;有兴趣的可以参看IDA网站;


  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值