科学使用 IDA

ida作为工业级的逆向分析工具,尤其是其F5这个让人增寿的东西,若是正确使用,则可以为分析者节省下大把时间。

注 :本文默认IDA版本均为IDA7.0以及以上

解决堆栈平衡,花指令

在如下文章有详细介绍

[XDCTF-2017] destory

IDA python

挖坑待填

插件

Python_editor

注:现在懒得装了

在IDA中编写python脚本简直反人类,若是需要运行一个python脚本还是比较麻烦的,打上了这个插件后可以很方便的编写以及运行python脚本

安装

  1. 安装需要 Qscilla 模块,具体的安装比较复杂,作者已经帮忙打包好了一个装好所有依赖的python,需要从该链接下载 Pyqt5 ida pro 7.0
  2. 用下载好的 python 替换电脑本身的 python (做不做备份看心情吧)
  3. 从 PyQt5 中提取 Qt5Core.dll , Qt5Gui.dll, Qt5widgets.dll 覆盖到 IDA目录下
  4. 删去 IDA 目录下 python 文件夹中的 sip.pyd 和 PyQt5 目录 (不删除分别会导致 IDA崩溃,无法正确识别PyQt5)
  5. 添加环境变量 QT_QPA_PLATFORM_PLUGIN_PATH=Python目录\Lib\site-packages\PyQt5\plugins\platforms (没加好像会出现 a plugin “” not found)

截图

运行Python脚本

运行python脚本

自动补全

自动补全

Keypatch

ida自身内建的补丁工具极其的难用,同时它只支持x86的汇编,打上这个插件后,修改汇编将会方便许多,可以直接按下 Ctrl+Alt+K 进行修改。

安装

  1. 下载并安装 keystone(python版 IDA7.0需要安装x64的) 下载地址: keystone
  2. keypatch.py 拷贝到 IDA 的插件目录

截图

keypatch

Hexlight

高亮各种括号

https://bbs.pediy.com/thread-226099.htm

dwaf

ida 7.0自带的一个插件

jmp to next fixup

寻找下一个fixup的地址

比如got表以及windows的重定位

change the callee address

该插件允许用户改变called函数的地址

例如

1
call rax

实际上就是加个注释和交叉引用

可以把动态调试时的地址填入

x64dbgida

安装

https://github.com/x64dbg/x64dbgida

功能

同步x64dbg和ida之间的数据

diaphora

https://github.com/joxeankoret/diaphora

尚未使用

LazyIDA

强烈安利

安装

https://github.com/L4ys/LazyIDA

功能

移除return type

将数据转换为各种语言的数据

扫描格式化字符串漏洞

双击跳转到虚表函数

快捷键:

w 复制当前地址

c 复制当前item的名字

v 移除当前item的返回值