IDA Pro 常用快捷键精要

IDA Pro 快捷键

1. 视图导航 (Navigation)

高效的视图切换与地址跳转是逆向分析的基础。

  • g : Go to address
    跳转到指定地址或符号名。
  • Esc : Navigate Back
    后退,返回上一个视图位置
  • Ctrl + Enter : Navigate Forward
    前进,与 Esc 配合使用。
  • Space : Graph/Text View Switch
    切换图形模式与文本模式(反汇编视图)。
  • Ctrl + 1/2/3... : Quick View
    快速打开 Functions, Strings, Hex View 等子窗口。

2. 分析与反汇编 (Analysis & Decompilation)

逆向核心环节,处理反汇编质量与伪代码逻辑。

  • F5 : Decompile
    调用 Hex-Rays 反汇编器生成伪代码。
  • Tab : Sync Pseudocode
    在反汇编视图与伪代码视图之间同步光标位置,便于对照阅读。
  • n : Rename
    重命名函数、变量或标签。良好的命名是理解逻辑的第一步。
  • y : Set Type
    修改函数原型或变量类型。这是修正伪代码(如修复结构体、修正指针类型)最强大的工具。
  • / : Inline Comment
    在伪代码视图中添加注释。
  • ; : Assembly Comment
    在反汇编视图中为选定行添加注释。

3. 数据定义 (Data Definition)

当 IDA 自动分析失准或遇到混淆时,需要手动定义数据类型。

  • u : Undefine
    取消定义。将当前位置的代码或数据还原为原始字节。
  • c : Code
    强制将当前字节序列解析为指令代码。
  • d : Data
    在 Byte/Word/Dword/Qword 之间循环切换数据定义大小。
  • a : ASCII String
    将选定区域定义为 ASCII 字符串。
  • * : Array
    创建数组。定义数据后再按此键可指定数组长度。

4. 操作数格式化 (Operands & Formatting)

调整操作数的显示格式,让常量显露原型。

  • h : Hex/Decimal Toggle
    在十六进制与十进制之间切换。
  • r : Char/String
    将立即数转换为字符(例如 0x41 -> 'A')。
  • b : Binary
    切换为二进制显示,在分析位运算(Bitmask)时非常有用。
  • o : Offset
    将立即数标记为数据段的偏移量(符号引用)。
  • m : Enum Member
    将数字转换为已定义的枚举成员。
  • k : Stack Variable
    将操作数转换为栈变量,用于修复栈帧分析。

5. 搜索与交叉引用 (Search & Cross-Ref)

追踪调用链与数据流向。

  • x : Cross-references (Xrefs)
    查看交叉引用。追踪谁调用了这个函数或谁引用了这个字符串。
  • Shift + F12 : Strings Window
    打开字符串窗口,CTF 选手的常用起手式。
  • Alt + t : Text Search
    全文文本搜索。
  • Alt + b : Binary Search
    十六进制字节搜索,寻找特征码或 Shellcode。
  • Ctrl + f : Quick Filter
    在当前的列表(如函数列表、字符串窗口)中快速过滤。

参考资源

  • Lesser-known keyboard shortcuts in IDA
  • 先知社区:IDA Pro 使用技巧总结