打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
3.4.2 IDA使用说明(4)

转:http://book.51cto.com/art/201504/472956.htm

3.4.2 IDA使用说明(4)

其中,常用的功能有“Jump to xref to operand...”(快捷键“x”),点击后出现的窗口罗列了这个文件中显式引用这个符号的所有信息,如图3-40所示。

如果觉得这种表示方法不够直观,更喜欢Main window里的Graph view形式,可以选择菜单下面的“Xrefs graph to...”,但如果运气不好,这个符号被引用过多的话,就会看到类似图3-41这样的一团乱麻的界面,真是剪不断,理还乱。

在图3-41中,黑色的部分都是由一根根直线构成的,两侧基本已经黑成了一片,可以看出_objc_msgSendSuper2_stret这个符号被大量引用。

相对地,“Xrefs graph from...”则会显示这个符号显式引用的所有符号,如图3-42所示。

从图3-42可以看到,sub_1DC1C是个subroutine,它显式引用了j__objc_msgSend、_OBJC_CLASS_$_UIApplication和_objc_msgSend,而_objc_msgSend又显式引用了__imp__objc_msgSend。双击Main window里的_objc_msgSend,再双击__imp__objc_msgSend,可以看到它来自libobjc.A.dylib,如图3-43所示。

在多数情况下,找到一个感兴趣的符号时,会想进一步查找与这个符号相关的所有线索。一种笨拙但有效的方法是鼠标选中Main Window时点击菜单栏上的“Search”,此时会弹出如图3-44所示的子菜单。

然后选择“text...”,会弹出如图3-45所示的窗口。

 

这时,可以根据自己的情况选择搜索是否对大小写敏感,搜索格式是不是正则表达式等,然后勾选“Find all occurences”,点击“OK”,IDA会将文件中所有满足搜索条件的符号列出,供我们一一查看。

Graph view提供的功能非常多,以上只是简单介绍了几个常用的功能,熟练地使用它们是进行更深入研究的保障。Graph view的界面比较简洁,各代码块间逻辑清晰,适合肉眼观看。相对来说,现阶段切换到Text view的机会比较少,一般是在配合LLDB进行动态调试时,才会在Text view中对界面左侧罗列的符号地址特别关注,如图3-46所示。
 

需要注意的是,IDA的某些Bug会导致Graph view的末端显示不全(例如一个subroutine本来有100行指令,但只显示了80行),当你对某一个Graph view块中的指令产生明显怀疑时,可切换到Text view看看Graph view是不是漏显示了某些代码。这类Bug出现的概率不大,如果你不幸中彩,欢迎来http://bbs.iosre.com交流解决方案。
 



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
iOS objc
Runtime之消息机制
IDA配置符号表路径
EffectiveObjective
关于objc_msgSend使用在新框架下获取不了参数,参数为nil
Objective-C选择器 Selector
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服