ida 基本操作

IDA PRO基本操作

0x00 为何反汇编

通常,使用反汇编工具是为了在没有源代码的情况下促进对程序的了解。需要进行反汇编的常见情况包括以下几种

  • 分析恶意软件
  • 分析闭源软件的漏洞
  • 分析闭源软件的互操作性
  • 分析编译器生成的代码,以验证编译器的性能和准确性
  • 在调试时显示程序指令

反汇编又分为静态分析和动态分析两种。动态分析是指在严格控制的环境(沙盒)中执行恶意软件,并使用系统检测实用工具记录其所有的行为。相反,静态分析则试图通过浏览程序代码来理解程序的行为。

0x01 IDA PRO简介

IDA PRO无疑是一款强大的静态反汇编工具,采用了递归下降反汇编的方式。若能学会操作这样一款强大的工具,对你的反汇编之旅大有裨益。

0x02 IDA 基本操作

打开IDA,会出现三个选项。

  • NEW(新建)。启动一个标准的File Open对话框来选择将要分析的文件。
  • GO(运行)。使IDA打开一个空白的工作区,可自己选择一个二进制文件直接拖入。
  • Previous(上一个)。可以打开最近使用过的文件。
    在这里插入图片描述选择一个文件打开后,会出现加载方式对话框,图中上部的三种文件加载器分别是PE加载器、MS-DOSexe加载器以及binary file(二进制文件)加载器。要注意的一点是PE文件是MS-DOS EXE文件格式的扩展形式。

在这里插入图片描述
我们选择PE加载器加载后,出现了如图的界面。左部的矩形框是函数窗口,显示ida分析出的函数。中间包含着汇编代码的是反汇编窗口,可以通过空格在文本模式和流程图模式转换,流程图模式有助于你理解程序的执行流程。
在这里插入图片描述我们可以看到图中有红绿蓝三种颜色的线。在比较指令后,依据标志位(可以等同于c语言中的if等比较语句)红色是ida认为不会执行的跳转流,而绿色是ida认为会执行的跳转流,蓝线则表示下一个立即执行的跳转流(不比较)。

通常我们在左边的函数窗口找到main函数后点击,然后按f5,即可出现一个新的c代码窗口。在这里插入图片描述
如图,绿色标志的是反汇编窗口,而红色为c代码窗口。你可以想象一下,当你不知道程序的源码时,只要按下f5即可得到,是多么幸福(当然,基本没有这么简单的程序。。。)。此时你就可以开始分析程序流程,找到程序逻辑了。

有时候,ida无法识别出函数的调用方式,无法调整程序的栈帧,此时你按下f5可能会报错。你只需要在Options->general的disassembly中选择stack pointer,在反汇编窗口中就会出现栈指针在这里插入图片描述在第一个出现负数的栈指针的位置,选择它上方的那个栈指针,按alt+k,将它的值,改为那个负数值,再按下f5,就可出现c代码了。

Hex View 十六进制窗口
Imports 导入函数窗口
Struceures 结构体窗口
Exports 导出函数窗口
Enums 枚举窗口
Strings 字符串窗口

常用功能及快捷键:
空格键:切换文本视图与图表视图
ESC:返回上一个操作地址
G:搜索地址和符号
N:对符号进行重命名
冒号键:常规注释
分号键:可重复注释
Alt+M:添加标签
Ctrl+M:查看标签
Ctrl+S:查看段的信息
代码数据切换
C–>代码/D–>数据/A–>ascii字符串/U–>解析成未定义的内容
X:查看交叉应用
F5:查看伪代码
Alt+T:搜索文本
Alt+B:搜索十六进制

  • 8
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值