自动分析
典型过程:把二进制文件拖动到IDA后,就开始自动分析`了。
IDA中默认已开启左下角的:
Analysis indicator
=自动分析指示器
- 图
- 作用:可以显示当前自动分析的进度
- 图
为何要(自动)分析?
我们用IDA去分析二进制中代码的逻辑。
而二进制本身其实只有0
和1
二进制数据而已。
而想要分析代码,即查看对应二进制对应的汇编代码
(以及后续的伪代码
),所包含的函数,所包含的字符串等等信息,则就需要:
对二进制进行充分的分析,最后才能显示出我们要的上述的各种信息。
而对于二进制加载后的分析过程,IDA叫做:
自动分析
=auto analysis
自动分析的过程和阶段
自动分析会先后有多个阶段,其中阶段的名称是2个字母的缩写,可以在左下角看到
具体阶段和含义是:
FL:<address>
execution FLow is being tracedPR:<address>
a function (=PRocedure?) is being createdTL:<address>
a function TaiL is being createdSP:<address>
the Stack Pointer is being tracedAC:<address>
the Address is being analyzedLL:<number>
a signature file is being loadedL1:<address>
the first pass (Level 1) of FLIRTL2:<address>
the second pass (Level 2) of FLIRTL3:<address>
the third pass (Level 3) of FLIRTTP:<address>
TPpe information is being appliedFI:<address>
the FInal pass of autoanalysisWF:<address>
Weak execution Flow is being tracedAU: idle
Autoanalysis is finished
不同阶段举例
- FL=Flow
- PR=PRocedure
- AC = Address
- FI=Final
- WF=Weak
- WU: idle
自动分析要多长时间
自动分析完毕所需时间,取决于,二进制文件大小,以及其内部逻辑复杂程度
一般来说:
- 很小的二进制文件:耗时很短,马上就结束了
- 举例
- 几十KB的抖音Aweme,耗时很短,没几分钟就结束了
- 举例
- 很大的二进制文件:耗时很久,有的长达数个小时
- 举例
- 200多MB的抖音AwemeCore,IDA自动解析最终耗时,大约12个小时
- 举例