2.2.2 IDA Pro

快捷键

  • ;:为当前指令添加全文交叉引用的注释

  • n:定义或修改名称,通常用来标注函数名

  • g:跳转到任意地址

  • Esc:返回到跳转前的位置

  • D:分别按字节、字、双字显示数据

  • A:按 ASCII 显示数据

IDA Python

常用插件

常用脚本

内存 dump 脚本

调试程序时偶尔会需要 dump 内存,但 IDA Pro 没有直接提供此功能,可以通过脚本来实现。

技巧

堆栈不平衡

某些函数在使用 f5 进行反编译时,会提示错误 "sp-analysis failed",导致无法正确反编译。原因可能是在代码执行中的 pop、push 操作不匹配,导致解析的时候 esp 发生错误。

解决办法步骤如下:

  1. 用 Option->General->Disassembly, 将选项 Stack pointer 打钩

  2. 仔细观察每条 call sub_xxxxxx 前后的堆栈指针是否平衡

  3. 有时还要看被调用的 sub_xxxxxx 内部的堆栈情况,主要是看入栈的参数与 ret xx 是否匹配

  4. 注意观察 jmp 指令前后的堆栈是否有变化

  5. 有时用 Edit->Functions->Edit function...,然后点击 OK 刷一下函数定义

参考资料

Last updated

Was this helpful?