首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

android 调试凶器之IDA

2012-11-25 
android 调试利器之IDAandroid 调试利器之IDA(xingchongatgmaildotcom)工欲善其事,必先利其器IDA 是公认的

android 调试利器之IDA
android 调试利器之IDA  (xingchongatgmaildotcom)
工欲善其事,必先利其器IDA 是公认的反汇编最给力的工具。google IDA 或者IDApro 就能找到IDA的主页;IDA价格是很贵的,最便宜的license也要超过500美元,不过他提供Demo版本,虽然功能有限制,但基本功能都在,而且可以无限期使用;
IDA不但支持x86,也支持arm平台;笔者在调试android/ARM上面的程序,试用了了IDA,用得很爽,可以说相比之下objdump简直弱爆了。对此,下面举两个例子:
1. 清晰的显示所调用的库函数名字,以及各个参数;android 调试凶器之IDA上图为IDA反汇编结果,显示了调用libc函数kill, 其中R0/R4存放着pid(第一个参数), R3放着sig 是signal number = 0x17(第二个参数)。 一目了然;下图为objdump反汇编结果,一比就只高下;android 调试凶器之IDA

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

笔者作为经常调试程序的码农,而且是看不到源代码的码农,IDA的帮助真的很大,不仅仅加快了进度,有时候还变不能为能;
IDA还有反编译的功能,直接反编译成高级语言C代码,可惜这个功能不在Demo版之内,而且需要额外的license费用,笔者负担不起;有兴趣的可以参看IDA网站;

热点排行