逆向第四天-IDA

前言

前两天忙着公司的事情,没有来更新博客,今天补上,以后有时间就会更新。昨天卓大师的猛料真的是够味~某某某 某某某 那啥~ 好了 闲言碎语不要讲,拉一拉咱们的神器IDA。

IDA简介

IDA(The Interactive Disassembler),逆向工程中最负盛名的神器之一。如果说class-dump能够帮助我们罗列出要分析的点,那么IDA就能进一步帮我们把这些点铺成面。它是一个支持Windows、Linux和Mac OS X的多平台反汇编器/调试器。

IDA的使用说明

有的朋友会问为什么不说下载安装了,因为没得说啊,这里附上下载地址。
打开IDA,然后把要分析的文件拖到灰色区域,就会出现一个配置页面

逆向第四天-IDA_第1张图片
03560C65-A70D-43CE-AFDB-8CA12BC110AD.png

有一个地方需要注意,对于一些fat binary(指的是为了兼容不同架构的处理器,而把多种指令集糅合到一个binary)来说,会有多个Mach-O文件供我们选择。我们需要根据设备对应的ARM信息,来选择。如果设备的ARM没有出现在这些选项中,那么就选那个像下兼容的选项,即如果选项里有ARMv7S,就选它;否则选ARMv7。这里我选择了ARMv7,然后点击“OK”,这时会连续弹出好几个窗口,你就一直选择“Yes”和“OK”就好了。然后静静的等待~

然后我们就进入了下面的界面:

逆向第四天-IDA_第2张图片
66604C44-5F99-4847-914A-5D28B3F9ACB9.png

进入到这个界面时,我们会看到上方的进度条不断滚动,下发的Output window也会打印出对文件的分析进度。当进度条的主色调变成蓝色,Output window中显示“The initial autoanalysis has been finished.”时,表示IDA的初始分析已经完成。
我们可以看到上方的左右两个大窗口:Functions window 和 Main window。下面分别介绍一下这两个窗口

1.Functions window

顾名思义,这个窗口是展示出来的所有分析出来的方法。双击一个方法,Main window 会显示出来它的方法体。在选中Function Window时,点击菜单栏上的“Search”,可以用来查找要找的内容。
Functions window中的OC方法和class-dump导出来的内容很像。除了OC方法外,IDA还将所有的subroutine罗列了出来,这是class-dump做不到的。class-dump导出的内容都是OC方法,可读性高;subroutine的名称虽然只是一个代号,没有明显含义,但是iOS的底层是用C和C++实现的,编译之后生成的大都是subroutine,class-dump没有办法分析,只能借助IDA、Hopper这样的工具。

2.Main window

相信没有使用过IDA的你们,和我一样,刚看到初始化分析完成后的Main window。它有两种显示模式,分别是Graph view和Text view,它们之间的切换可以通过空格键切换。Graph view把分析程序的逻辑用方块的形式表现出来,方便我们分析程序各个分支之间的关系。各个方块之间的执行顺序用带箭头的线表示,当执行出现的分支时,满足判断条件的分支的线为绿色,否则为红色;当执行没有分支时,线是蓝色的。
具体的使用方法这里就不来说了,因为我也是小白,让我先仔细的研究研究,大家一起加油!!!

参考资料:

书籍:iOS应用逆向工程(第2版)

你可能感兴趣的:(逆向第四天-IDA)