反汇编静态分析工具IDA

文章介绍了静态分析的概念,对比了动态分析,并重点讲述了IDA这款强大的反汇编静态分析工具。IDA适用于不能运行的目标程序分析,如某些模块或病毒程序。文章列举了IDA的常用快捷键,并通过加载PE格式的“HelloWorld”程序,展示了如何选择分析方式、认识IDA的各视图功能以及如何查看和切换反汇编视图与流程视图。
摘要由CSDN通过智能技术生成

前言

     所谓静态分析,是相对于动态分析而言的。在动态分析的过程中,调试器加载程序,并以调试模式运行起来,分析者可以在执行过程中观察程序的执行流程和计算结果。但是,在实际分析中,很多场合不方便运行目标,比如软件的某一模块(无法单独运行)病毒程序、设备环境不兼容导致无法运行。那么,在这个时候,需要直接把程序的二进制代码翻译成汇编语言,方便程序员阅读。像这样由目标软件的二进制代码到汇编代码的翻译过程,我们称之为反汇编。ollyDbg 也具有反汇编功能,但它是调试工具,其反汇编辅助分析功能有限,不适用于静态分析。
        本次将介绍辅助功能极为强大的反汇编静态分析工具IDA。它的图标是被称为“世界上第一位程序员”的Ada Lovelace 的头像,可译为阿达。本次使用的IDA版本为7.0英文版。成功安装IDA后,会出现两个可执行程序图标,一个是黑白的阿达头像,另一个是在阿达头部写有“64”字样的图像,它们分别对应32位程序和64位程序的分析,本节分析的程序全部为32位。

IDA快捷键

        IDA窗口中的工具条、菜单选项较多,初学IDA时只要掌握基本操作即可。IDA的常用快捷键使用说明如下表所示。

实战演练

 接下来我们使用IDA来静态分析调试程序“Hello world”,通过实例进一步学习IDA的基本使用方法

1.加载分析文件

        IDA加载分析文件后,会询问分析的方式。有3种分析方式供选择,如下图所示。

(1) Portable executable for 80386(PE)[peldw]:分析文件为PE格式

(2)Ms-DOS executable (exe)[dos.ldw]:分析文件为DOS控制台下的一个文件。

(3)Binary file :分析文件为二进制格式。

根据分析文件的格式进行选择,本示例为一个PE格式文件,故选择第一种分析方式,单击“确定”,分析结束后,IDA默认情况下会显示流程视图窗口。

2.认识各视图功能


视图窗口如下图所示,说明如下。


IDA View -A:分析视图窗口,用于显示分析结果,可选用流程图或代码形式。
Hex View -1:二进制视图窗口,打开文件的二进制信息。
Exports :分析文件中的导出函数信息窗口。
Imports :分析文件中的导入函数信息窗口。
Names Window :名称窗口,分析文档用到的标称。
Functions Window :分析文件中的函数信息窗口。
Structures :添加结构体信息窗口。
Enums :添加枚举信息窗口。

3.查看分析结果


“Hello world ”反汇编分析示例如下图所示,图中为IDA分析后的反汇编代码,将其复制到汇编IDE中,只要稍加修改,就可以进行编译和连接。IDA的数据查询非常简单,只需要双击标号,即可跟踪到该数据的定义处。查看函数实现的方式也是如此,如果需要返回调用处,按Esc键即可返回。由于有IDA的帮助,将一个二进制文件还原成等价的C\C++代码的难度大大降低了。
 

 4.切换反汇编视图与流程视图


上图中的反汇编代码是从IDA的反汇编视图中提取的。IDA的默认视图为流程视图,需要进行转换。在函数体内,选择Text view 。同理,如果要从反汇编视图切换回流程视图,可选择Graph view (流程视图),使分析程序的流程结构和工程量变得更加容易。


 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

summer 2000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值