转:http://book.51cto.com/art/201504/472954.htm
3.4.2 IDA使用说明(2)
因为试用版的IDA无法保存,所以即使在这些窗口上勾选“Don’t display this message again”,下次打开IDA还是会出现这些窗口;虽然有些麻烦,但这么强大的工具都让我们免费使用了,麻烦就麻烦点吧。
按钮都点完后,内容丰富的主界面再次进入我们眼帘,如图3-30所示。
在进入图3-30所示的界面时,你会看到上方的进度条不断滚动,下方的Output window也会打印出对文件的分析进度。当进度条的主色调变成蓝色(IDA界面上的颜色在黑白印刷页上看不出来,请谅解),Output window中显示“The initial autoanalysis has been finished.”时,表示IDA的初始分析已完成。
在初学阶段,由于主要用IDA作静态分析,基本用不上Output window,所以在开始分析之前,可以先关掉Output window。
现在看到的两个大窗口分别是左侧小部分的Functions window (如图3-31所示)和右侧大部分的Main window(如图3-32所示)。下面分别介绍一下这2个窗口的用途。
(1)Functions window
顾名思义,这个窗口展示了IDA分析出来的所有函数(规范地讲,Objective-C的function应该称为method,即方法,此处统称为函数,请大家注意),双击一个函数,Main window会显示它的函数体。在选中Function Window时点击菜单栏上的“Search”,会弹出如图3-33所示的子菜单。
选择“Search”,并在图3-34的对话框中输入要查找的内容,可以在所有函数名里查找指定的字符串,十分方便;当要查找的内容出现在多个函数名里时,还可以点击“Search again”来遍历这些函数名。当然,上面的操作也都可以用IDA中显示的快捷键完成。
Functions window中的Objective-C函数与class-dump导出的内容吻合。除了Objective-C函数外,IDA还将所有subroutine罗列了出来,这是class-dump做不到的。class-dump导出的内容都是Objective-C函数名,可读性高,容易上手,是iOS逆向工程初学者的乐园;subroutine的名称只是一个代号,没有明显含义,分析难度大,大多数初学者看到这里就打了退堂鼓。但是,iOS的底层是用C和C++实现的,编译之后生成的大都是subroutine,class-dump拿它没辙,只能使用IDA这样的工具。要想深层次挖掘iOS中最有趣的部分,掌握IDA的用法是必经之路。
联系客服