- 阅读权限
- 255
- 威望
- 0 级
- 论坛币
- 0 个
- 通用积分
- 0
- 学术水平
- 0 点
- 热心指数
- 0 点
- 信用等级
- 0 点
- 经验
- 20 点
- 帖子
- 1
- 精华
- 0
- 在线时间
- 0 小时
- 注册时间
- 2018-8-28
- 最后登录
- 2018-8-28
学前班
还不是VIP/贵宾
- 威望
- 0 级
- 论坛币
 - 0 个
- 通用积分
- 0
- 学术水平
- 0 点
- 热心指数
- 0 点
- 信用等级
- 0 点
- 经验
- 20 点
- 帖子
- 1
- 精华
- 0
- 在线时间
- 0 小时
- 注册时间
- 2018-8-28
- 最后登录
- 2018-8-28
|
经管之家送您一份
应届毕业生专属福利!
求职就业群
感谢您参与论坛问题回答
经管之家送您两个论坛币!
+2 论坛币
Python环境切换与IDA插件配置指南
一、安装新版本Python
访问Python官方网站,下载所需版本的安装包:
https://www.python.org/downloads/release/python-390/
运行安装程序时选择“自定义安装”选项,并将Python安装路径设置为IDA的安装目录下,以便后续集成和调用。
二、切换IDA默认使用的Python环境
以管理员身份启动命令提示符(cmd),进入IDA的安装路径。
执行以下指令进行Python环境绑定:
idapyswitch.exe --force-path PATH\TO\YOUR\PYTHON3.9\python3.dll
其中需将
PATH\TO\YOUR\PYTHON3.9
替换为实际的
python3.9
安装路径。特别注意:在执行
idapyswitch.exe
前,请确保所有
ida pro
相关窗口均已关闭。
三、验证Python切换结果
启动IDA后,在底部的Python命令行中输入:
import sys; print(sys.path),
若输出信息中包含类似
D:\\software\\IDA_Pro_9.2\\IDA_Pro_9.2\\python39new\\python39.zip
的路径内容,则表示Python环境已成功切换至目标版本。
四、常用IDA插件介绍及安装方法
核心功能插件
| 插件名 |
作用 |
安装方法 |
备注 |
| Keypatch |
用于patch汇编指令 |
将 |
Keypatch.py
复制到
plugins
目录
使用前需先安装keystone-engine(非keystone)以及six模块:
python -m pip install six
适配IDA 9.2的版本可参考:https://bbs.kanxue.com/thread-282852.html
注意:请确认是keystone-engine而非keystone。
keystone-engine
python -m pip install keystone-engine
| Patching |
实现快速十六进制patch操作 |
将 |
|
Patching
文件夹与
Patching.py
一同复制至
plugins
目录
当前版本不直接支持IDA 9.2,需启用PyQt5 Shims兼容模式方可使用。
| DataExportPlus |
增强版数据导出工具,支持Shift+E快捷键提取数据 |
将 |
|
DataExportPlus.py
放入plugins目录
支持IDA 9.2版本。
| findcrypt-yara |
通过特征常数识别常见加密算法 |
将 |
findcrypt3.py
和
findcrypt3.rules
复制到
ida/plugins
目录
需提前为IDAPython安装yara-python(注意不是yara):
python -m pip install yara-python
该插件在Python 3.8环境下无法正常运行。
| hrtng |
具备去OLLVM混淆、栈字符串识别、括号高亮、字符串解密等功能 |
下载release压缩包并解压,将 |
plugins/windows/9.0/hrtng.dll
复制到
ida/plugins
目录即可使用
支持IDA 9.2。另提供如下附加文件,拖入ida/plugins目录生效:
notepad-md.pyhrtng
API枚举恢复列表 ——
literal.txt
Windows专用组件 ——
apilist.txt
| LazyIDA |
实现数据的快速转换与提取 |
将 |
LazyIDA.py
复制到
plugins
目录
支持IDA 9.2;注意原convert标签现已更改为Dump。
| auto-enum |
自动恢复Windows/Linux平台API参数的枚举名称 |
将 |
plugin
目录下的全部文件复制至
ida/plugins
路径下:
enumlib, auto_enum.py, ida-plugin.json
支持IDA 9.2,使用时需在伪C代码界面右键点击
Auto Enum
触发功能。
| bindiff |
用于函数相似度比对,常用于符号恢复 |
将 |
binexport12_ida64.dll
和
bindiff8_ida64.dll
复制到
ida/plugins
目录
原版不支持IDA 9.2;适配版本见:https://bbs.kanxue.com/thread-283804.htm
其他实用插件
| 插件名 |
作用 |
安装方法 |
备注 |
| Ponce |
提供符号执行与污点分析能力,可用于破解场景 |
将ponce.dll文件放入plugins目录 |
官方未明确支持IDA 9.2;但基于https://github.com/copythere/Ponce 的9.1适配版本经测试可在9.2中使用 |
| deREferencing |
调试过程中追踪寄存器与栈指针所指向的内容 |
将 |
dereferencing.py
和
dereferencing
文件夹复制到
ida/plugins
目录
实际效果有限,因IDA 9.2优化了寄存器视图,目前仅调用栈视图相对有用。
| D810 |
用于去除OLLVM控制流混淆 |
需先为IDAPython安装z3求解器: |
python -m pip install z3-solver"
然后将
d810
文件夹与
d810.py
复制到
plugins
目录
若已安装Hrtng插件,可不必单独安装此插件。
| IDA Feeds |
匹配部分常见的库函数符号 |
详见下方“IDA Feeds安装”说明 |
整体效果较为有限 |
| ida-pro-mcp |
在IDA中接入MCP服务 |
详见下方“ida-pro-mcp安装”说明 |
功能与WPeChatGPT类似,但token消耗更高 |
| WPeChatGPT |
利用大语言模型辅助逆向分析 |
详见下方“WPeChatGPT”章节 |
分析结果仅供参考,辅助使用为主 |
| IDA_ClassInformer_PlugIn |
反编译C++代码时,可根据RTTI等信息恢复类结构,如继承关系、类名等 |
将 |
IDA_ClassInformer.dl
复制到
ida/plugins
目录
| HexRaysCodeXplorer |
自动识别结构体、展示C++虚函数、生成函数结构树等 |
将 |
HexRaysCodeXplorer64.dll
复制到
ida/plugins
目录
兼容性支持组件
PyQt5 Shims
尽管IDA已从
ida
升级至
QT5
,为保证旧有插件的兼容性,系统提供了
QT6
的兼容层——即PyQt5 Shims。
PyQt5 Shims
更多细节请参考官方文档或项目说明。
1. 等待 IDA 检测到与 QT6 不兼容的插件
当 IDA 检测到存在不兼容 QT6 的插件时,会弹出提示窗口。此时只需点击“Yes”即可继续。
2. 手动配置方法
打开以下文件:
ida/cfg/idapython.cfg
将文件中最后一行的:
IDAPYTHON_USE_PYQT5_SHIM
修改为:
1
IDA Feeds 安装与配置
详细信息可参考官方文档中的 IDA Feeds 部分。
安装必要依赖
基础功能支持顺序扫描,若需启用并行扫描,则需额外配置如下依赖项:
- idalib
- RPyc 5.x(用于实现并行分析)
- 配置 ida_feeds/config.json 中的 flair 路径
具体操作步骤
步骤一:安装并激活 idalib
使用以下命令进行安装和激活。注意替换路径为实际的 IDA 安装目录:
idapython
指定如下目录进行操作:
pip
下载内容至该路径下的目录中:
idalib/python
setup.py
执行以下命令:
python -m pip install "D:\tools\IDA Professional 9.2\idalib\python\."
python "D:\tools\IDA Professional 9.2\idalib\python\py-activate-idalib.py"
说明:
D:\tools\IDA Professional 9.2
即为 IDA 的安装根目录。
步骤二:安装 idafeeds 所需依赖(RPyc)
运行以下命令安装 requirements.txt 中列出的依赖包:
python -m pip install -r "D:\tools\IDA Professional 9.2\plugins\ida_feeds\requirements.txt"
requirements.txt 文件内容如下:
PySide6==6.8.0
PyQt6-sip==13.10.0
Requests==2.32.3
rpyc==6.0.1
tomli==2.2.1
步骤三:配置 ida_feeds/config.json 中的 flair 路径
修改以下配置项:
config.sample.json
将其复制一份,并重命名为:
config.json
使用 IDA Feeds 功能
登录 hex-rays 官网后,下载相关资源并解压:
signatures-bundles-9.2.zip
将解压后文件夹内的符号库子目录复制到以下目标路径:
~\IDA Professional 9.1\sig
插件位于:
Edit>plugins>IDA Feeds
启动界面如下:
使用流程说明
- 首先选择所需的符号库,然后设定扫描模式。
- 选中符号库中的某个符号文件,按下:
ctrl+a
- 全选所有符号后,点击“运行探测”按钮。
- 按住以下按键:
ctrl
- 选中所有匹配的签名条目,最后点击:
Apply signatures
最终符号恢复效果如下图所示,能够成功识别并恢复大量常见的库函数符号:
ida-pro-mcp 插件安装
项目地址:https://github.com/mrexodia/ida-pro-mcp
配置 VSCode Cline 插件
任何可以连接或探测本地 MCP Server 的工具均可使用。推荐在 VSCode 插件市场中安装 Cline 插件,随后配置模型与 API 参数,支持开启自动授权选项。
安装 IDA MCP Server
首先确认使用的是独立 Python 环境,避免与系统 Python 冲突。建议通过以下命令安装:
idapython
下载并安装程序:
ida-pro-mcp
python -m pip install --upgrade git+https://github.com/mrexodia/ida-pro-mcp
如因网络问题无法直接访问 GitHub,可采用离线方式安装:
在一台可正常访问 GitHub 的设备上执行:
git clone https://github.com/mrexodia/ida-pro-mcp.git
cd ida-pro-mcp
python -m pip wheel . -w dist
示例输出:
PS D:\code\pythonprojects\ida-pro-mcp> D:\environment\python\python-3.11.9\python.exe -m pip wheel . -w dist
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Processing d:\code\pythonprojects\ida-pro-mcp
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting idapro>=0.0.7 (from ida-pro-mcp==2.0.0)
Building wheels for collected packages: ida-pro-mcp
Building wheel for ida-pro-mcp (pyproject.toml) ... done
Created wheel for ida-pro-mcp: filename=ida_pro_mcp-2.0.0-py3-none-any.whl size=71075 sha256=e3bcc5f0ed99f554f405db2e90b6e73542d3732194fe1749793c6bcd8737c065
Stored in directory: c:\users\zhubayi\appdata\local\pip\cache\wheels\71\2f\56\3b1092f23a031cb42fad07e9fa2257f6f5dd9277f36193298d
Successfully built ida-pro-mcp
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/fb/5d/6e6565d9a1d6ecf1b48a2bea326f0e3dbe4c3199adfc0a5456b83d235f99/idapro-0.0.7-py3-none-any.whl (2.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.0/2.0 MB 4.8 MB/s 0:00:00
Collecting tomli-w>=1.0.0 (from ida-pro-mcp==2.0.0)
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/c7/18/c86eb8e0202e32dd3df50d43d7ff9854f8e0603945ff398974c1d91ac1ef/tomli_w-1.2.0-py3-none-any.whl (6.7 kB)
Saved d:\code\pythonprojects\ida-pro-mcp\dist\idapro-0.0.7-py3-none-any.whl
Saved d:\code\pythonprojects\ida-pro-mcp\dist\tomli_w-1.2.0-py3-none-any.whl
安装成功后的文件目录如下:
c:\users\zhubayi\appdata\local\pip\cache\wheels\71\2f\56\3b1092f23a031cb42fad07e9fa2257f6f5dd9277f36193298d
将相关文件拷贝至指定路径:
ida-pro-mcp
随后执行安装命令:
python -m pip install --upgrade D:\pkgs\ida_pro_mcp-xxx.whl
进入以下目录进行操作:
IDAPython
中的
Scripts
并在该路径下运行:
ida-pro-mcp.exe
若
IDAPython
并非系统默认路径,
python
则需手动切换至该目录后再执行运行指令。
注意:必须先安装必要的插件(例如 Cline),再运行
ida-pro-mcp
,否则系统将不会生成所需的配置文件。
当确认配置文件已成功生成后,启动 IDA 并运行 MCP-Server:
如果 Cline 能够检测到服务端,则表明配置已完成。
此后即可通过提问实现自动化分析功能。
WPeChatGPT 安装说明
项目源码位置参考:
https://github.com/WPeace-HcH/WPeChatGPT
本项目基于 Gepetto 框架开发,涉及插件的安装与使用流程如下:
首先安装插件所需依赖项:
python -m pip install -r ~\WPeChatGPT-main\requirements.txt
依赖文件 requirements.txt 的具体内容如下:
openai >= 0.27.0
anytree
httpx
根据需要修改 WPeChatGPT.py 文件中的配置参数。
该脚本默认支持 OpenAI 和 DeepSeek 模型,只需调整 PLUGIN_NAME 与 model_api_key 即可完成模型切换。
鉴于
OpenAI API
申请难度较高,且
DeepSeek
已关闭注册通道,推荐采用火山引擎提供的 API 接口。
如需接入其他模型,需手动添加如下两个 elif 分支(依据所用模型具体设置):
client = openai.OpenAI(base_url = "https://ark.cn-beijing.volces.com/api/v3", api_key = model_api_key)
步骤三:
复制以下两个文件:
WPeChatGPT.py
和
Auto-WPeGPT_WPeace
至目标目录:
ida/plugins
实际使用效果展示如下:
API 申请指引
该插件依赖于
OpenAI SDK
接口调用,目前默认兼容
OpenAI
和
DeepSeek
模型。使用前需提前申请对应服务权限。
api
建议选择火山引擎平台,每个模型均提供
50万
免费额度
token https://www.volcengine.com
,使用过程中请注意监控
token
调用量。
操作步骤如下:
1. 创建 Token,名称可自定义。创建完成后,请复制并妥善保存 API Key,后续模型调用将依赖此密钥(切勿泄露)。
2. 在“开通管理”页面中,启用所需使用的模型服务。
3. 查询并确认服务状态是否正常。
模型的ID
创建完成后进行复制操作,随后将其填入指定位置。
模型id
与之前配置的内容相结合,完成填充步骤。
API Key
model_api_key
MODEL
完成上述设置后,重启IDA即可启用插件功能。
IDA Pro 常用快捷键汇总
一、文件相关操作
| 快捷键 |
功能说明 |
| Ctrl+F9 |
解析 C 头文件,将C语言头文件导入IDA以辅助类型识别 |
| Alt+F10 |
生成 ASM 文件,导出反汇编代码为汇编格式 |
| Ctrl+W |
保存当前 IDA 数据库(.idb 或 .i64 文件) |
| Ctrl+F5 |
保存当前查看的 C 伪代码内容 |
| Alt+X / Alt+F4 |
退出程序并自动保存更改 |
二、导航功能
| 快捷键 |
功能说明 |
| Enter |
跳转至操作数目标地址,如函数调用、跳转指令或数据引用位置 |
| Alt+Enter |
在新窗口中打开目标地址,便于多点对比分析 |
| Esc |
返回上一个浏览位置,实现“后退”导航 |
| Ctrl+Enter |
前进到下一个历史位置,配合 Esc 实现完整导航回溯 |
| G |
跳转到指定地址,支持输入十六进制数值或符号名称快速定位 |
| Ctrl+L |
按名称搜索并跳转,适用于查找函数、变量或标签等符号 |
| Ctrl+P |
打开函数列表并跳转,快速浏览和选择程序中的函数 |
| Tab |
切换至伪代码视图(需 Hex-Rays 插件),将汇编转换为类 C 形式 |
| Ctrl+S |
跳转至内存段,查看.text、.data等段分布情况 |
| Ctrl+X |
显示交叉引用列表,分析当前地址被引用或引用其他位置的情况 |
| X |
跳转至对操作数的交叉引用,追踪数据流或函数调用链 |
| Ctrl+E |
跳转至程序入口点,例如 main 函数或原始入口 OEP |
| Alt+M / Ctrl+M |
标记当前位置 / 跳转至已标记位置,方便复杂逻辑中标记关键节点 |
三、搜索功能
| 快捷键 |
功能说明 |
| Alt+C / Ctrl+D / Ctrl+A / Ctrl+U |
依次搜索下一个代码段、数据段、已探索区域、未探索区域,用于遍历程序结构 |
| Alt+I / Ctrl+I |
搜索立即数或下一个立即数,常用于定位硬编码值(如密钥、地址) |
| Alt+T / Ctrl+T |
查找文本字符串或下一个匹配项,用于发现字符串常量或指令特征 |
| Alt+B / Ctrl+B |
搜索特定字节序列或下一项,适用于识别 Shellcode 或机器码特征 |
四、编辑与类型调整
| 快捷键 |
功能说明 |
| C / D / A |
将选中区域分别定义为代码、数据、字符串,是修正 IDA 分析错误的核心手段 |
| U |
取消定义内容,恢复为原始字节状态,用于撤销误识别 |
| N |
重命名函数、变量或地址,赋予更具语义的名称(如将 sub_401000 改为 Decrypt) |
| ; / : |
添加可重复显示的注释或普通注释,用于标注功能逻辑或数据用途 |
| Q / H / B / R |
切换数值显示方式:十六进制、十进制、二进制、字符形式 |
| Y |
设置变量或函数的数据类型(如 int、char* 等),提升伪代码可读性 |
五、窗口与子视图管理
| 快捷键 |
功能说明 |
| Shift+F12 |
打开字符串窗口,列出程序中所有发现的字符串,常用于定位关键行为入口 |
| Shift+F3 / Shift+F4 / Shift+F7~F12 |
分别打开函数窗口、符号名称窗口、段窗口、结构体、枚举等辅助视图,支持全局分析 |
| Ctrl+Tab |
在多个打开的子窗口之间循环切换 |
| Alt+1~9 |
快速切换至编号对应的窗口,适合多窗口布局下的高效操作 |
六、函数分析相关操作
| 快捷键 |
功能说明 |
| P |
创建函数,将选定指令块识别为独立函数,IDA 自动分析栈帧和局部变量 |
| E |
设置函数结束位置,修正因跳转异常导致的函数边界识别错误 |
| F5 |
执行反编译操作(依赖 Hex-Rays 插件),将汇编函数转化为类 C 伪代码,为核心逆向手段 |
| 空格 |
在反汇编文本视图与图形化控制流视图间切换,图形模式更直观展示逻辑分支 |
七、调试功能(仅适用于支持调试的 IDA 版本)
| 快捷键 |
功能说明 |
| F2 |
在光标所在地址设置或清除断点 |
| F9 |
启动调试进程 |
| F7 / F8 |
单步步入(进入函数内部)/ 单步步过(跳过函数调用) |
| F4 |
运行程序至当前光标所在位置,快速跳过无关代码段 |
| Ctrl+Alt+B |
打开断点管理窗口,查看和管理所有已设断点 |
以上快捷键涵盖了从文件加载、代码导航、结构分析到动态调试的完整工作流程。其中:
F5(反编译
Ctrl + F5(保存反编译
空格(视图切换)
Shift+F12(字符串窗口)
G(地址跳转)
这些操作在实际逆向工程中使用频率极高,属于核心技能范畴,建议优先掌握以显著提升分析效率。