使用的 IDA Pro 版本:Version 8.3.230608 Windows x64

1. 安装

要么正版:ida-free

有无 Fugger 让我看看正版😘,一年大几千刀乐呢!

要么到 吾爱破解 - 52pojie.cn 上搜一搜,本笔记使用的 IDA Pro 就是来自 52 上的分享(现在都已经有 Version 9.0 的测试版本流出了)


2. Python 插件

IDA 支持以 Python 语言编写的插件。

笔记中目前所使用的 IDA 版本建议使用 Python 3.11。如果你想要更换 IDA 使用的 Python 版本,可以运行安装根目录下的 idaptswitch.exe。

插件的安装很简单,将 xx.py 文件放在 IDA 的 plugins 文件夹里就行。这里推荐两个插件:

  • KeyPatch 用以修改汇编指令。使用前需要在 python 中通过 pip 安装依赖 keystone-engine
  • LazyIDA 用于提取数据、批量修改数据

3. 选择哪个 IDA

进入 IDA 的安装目录,我们有两个 IDA:ida.exe 和 ida64.exe,要选哪一个?

很简单,要反汇编 32 位可执行文件,就用 ida.exe (32-bit);要反汇编 64 位可执行文件,就用 ida64.exe (64-bit)。

如果不知道可执行文件的位数,我们可以:

  • 用 Linux 系统下的 file 文件
  • 用 peid、exeinfo 或者 DIE 等查壳软件

请确保目标程序和 IDA 等反编译工具的位数相同(32 位对 32 位,64 位对 64 位),否则可能出现出乎意料的结果。


4. 熟悉 IDA 的功能窗口

  • 1. 函数 (Functions) 窗口。列举所有已经被 IDA 识别的函数
  • 2.IDA View 窗口。汇编代码窗口,空格键切换图形模式和文本模式,Tab 键和 F5 键切换到伪代码窗口 (Pseudocode)
  • 3. 伪代码窗口 (Pseudocode)。在伪代码位置按下 Tab 键可以切换到对应的汇编窗口 (IDA View)。
  • 4. 字符串窗口。列举程序代码所有引用到的字符串常量
      1. Shift + F12 打开字符串窗口
      2. Ctrl + F 可以弹出底部搜索小窗口
  • 5. 其他窗口,如 HEX View、Exports、Imports、Structures

菜单项 View 选项可以找到 IDA 绝大部分窗口的入口


5. 示例

我们希望找到程序中的 main 函数,因为 main 函数里头是我们真正想要看到的代码。

有时存放主代码的函数不叫 main,可能叫 main_0 或者其他名字。有时你可以在 main 函数中看到汇编代码末尾有个 jump *****,那就跟着汇编代码去看看指向的那个函数,说不定有收获。

如何找到 main 函数?一种方式是看 IDA 的 Functions 窗口,找找看有没有 main 函数。

没有或者列出的函数量太大的话就需要分析程序行为了。

试着运行一下程序,看看它的输入输出。很多程序会输出一些提示用字符串,我们可以通过字符串来定位 main 函数。

如果程序结束时 “闪退”,可以在命令行(终端)中运行程序

转到字符串窗口,用 Ctrl + F 唤起搜索小窗口并输入你要找的字符串,然后双击,IDA 会跳到字符串在反汇编中的位置。

你会看到像这样的代码:

1
.rdata:004250EC aD              db '距离出现答案还有%d秒,请耐心等待!',0Ah,0

这时可以右击这行代码,选择 “Jump to xref to operand” 或者 “List cross reference to…”,IDA 会列出所有引用了这个字符串的函数,然后你就可以选择要跳到 main 函数了。


找到 main 函数,转到伪代码窗口,我们可以得到一个相对好阅读的代码。当然这个代码中有许多 IDA 没法填上的 “坑”,这是就需要我们合理猜测,将函数和常变量猜出来。


入门阶段逆向程序的基本思路是:

(脱壳程序)–> 运行程序 --> 收集字符串 --> 寻找字符串的引用函数 --> 生成函数伪代码 --> 修复匿名函数 --> 分析程序逻辑 --> 获得 Flag


©2025-Present Watermelonabc | 萌ICP备20251229号

Powered by Hexo & Stellar latest & Vercel & 𝙌𝙞𝙪𝙙𝙪𝙣 𝘾𝘿𝙉 & HUAWEI Cloud
您的访问数据将由 Vercel 和自托管的 Umami 进行隐私优先分析,以优化未来的访问体验

本博客总访问量:capoo-2

| 开往-友链接力 | 异次元之旅 | 中文独立博客列表

猫猫🐱 发表了 41 篇文章 · 总计 209.8k 字