Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
npx skills add miunasu/IDA-Skill
Or install specific skill: npx add-skill https://github.com/miunasu/IDA-Skill
# Description
IDA Pro 逆向分析。通过 IDAPython 脚本获取反汇编、反编译、字符串、导入表、交叉引用等信息。
# SKILL.md
name: IDA-Skill
description: IDA Pro 逆向分析。通过 IDAPython 脚本获取反汇编、反编译、字符串、导入表、交叉引用等信息。
IDA Pro 逆向分析
安全规则
仅支持静态分析 - 禁止调试、执行任何二进制文件。
快速开始:初始化分析
对新样本进行初始化分析,自动生成 i64 数据库并提取所有基础信息:
示例:
python skills/ida/tools/init_analysis.py target.exe
python skills/ida/tools/init_analysis.py target.exe ./result
输出文件:
- analysis.txt - 基本信息 + 导出表 + OEP反编译
- imports.txt - 导入表
- strings_use_subagent_to_analyse.txt - 字符串(按编码分类,已过滤噪点)
分析方法论
分析流程
遵循自顶向下的分析策略:
1. 入口点分析 - 从 OEP (Original Entry Point) 开始
2. 主函数定位 - 识别程序主逻辑入口(main/WinMain/DllMain)
3. 功能函数追踪 - 深入关键功能函数进行详细分析
寻找关键函数的线索
利用以下信息辅助定位关键函数:
- 导入表 (imports.txt) - 查看调用的系统 API,推断功能(如网络、加密、文件操作)
- 导出表 (analysis.txt) - DLL 的对外接口,通常是核心功能
- 字符串引用 - 通过字符串内容反向定位使用它的函数
- 交叉引用 - 使用 idautils.XrefsTo() 查找函数调用关系
- 思维发散 - 使用 IDAPython 获取任何你想知道的线索来辅助分析
使用 IDAPython 进行分析
推荐工作流:
1. 使用 exec_ida.py 执行 IDAPython 代码片段
2. 查看函数反编译结果:ida_hexrays.decompile(ea)
3. 追踪函数调用:idautils.XrefsTo(ea) / idautils.XrefsFrom(ea)
4. 分析数据引用:查找字符串、常量的使用位置
字符串分析 - 重要规则
禁止直接读取 strings_use_subagent_to_analyse.txt!
strings_use_subagent_to_analyse.txt 文件通常包含数千行字符串,直接读取会:
- 消耗大量 token(可能超过上下文限制)
- 导致响应缓慢
- 无法有效提取有价值信息
正确做法:
1. 使用子 Agent 分析
2. 或使用 grep 精确搜索
3. 或使用 IDAPython 定向查询
分析输出要求
- 记录关键函数的地址、名称和功能
- 说明函数之间的调用关系
- 标注可疑或重要的代码逻辑
- 如涉及加密/混淆,尝试识别算法并提取密钥
执行 IDAPython 代码
初始化分析后,使用 exec_ida.py 对 i64 数据库执行 IDAPython 代码进行深入分析。
示例
# 1. 执行代码
python skills/ida/tools/exec_ida.py target.i64 --code "print('Entry Point:', hex(idc.get_inf_attr(idc.INF_START_EA)))"
# 2. 执行脚本文件
python skills/ida/tools/exec_ida.py target.i64 --file analyze.py
API 快速参考
函数操作
idautils.Functions()- 遍历所有函数idc.get_func_name(ea)- 获取函数名ida_funcs.get_func(ea)- 获取函数对象idc.set_name(ea, name)- 重命名
反编译
ida_hexrays.decompile(ea)- 反编译函数,返回伪代码
字符串
idautils.Strings()- 遍历字符串idc.get_strlit_contents(ea)- 获取字符串内容
交叉引用
idautils.XrefsTo(ea)- 谁引用了这个地址idautils.XrefsFrom(ea)- 这个地址引用了谁
字节操作
ida_bytes.get_bytes(ea, size)- 读取字节ida_bytes.patch_bytes(ea, data)- 修改字节
内置工具
- reai.py - 使用 LLM 分析函数语义,支持递归分析调用链
- findcrypt.py - 通过特征常量识别加密算法(AES, DES, RC4, MD5, SHA1, SHA256, CRC32, Base64 等)
- mkyara.py - 从代码范围生成 YARA 检测规则
- dump.py - 导出指定地址范围、段或函数的原始字节
- export_check.py - 分析 DLL/EXE 的导出函数大小,小字节导出函数序列出现大字节导出函数,需要重点分析
具体用法查询TOOLS.md,脚本位于tools\
分析方法文档
| 分析目标 | 推荐文档 |
|---|---|
| 分析恶意样本 | 恶意软件分析 |
| 挖掘安全漏洞 | 漏洞分析 |
| 还原通信协议 | 协议逆向 |
| 识别加密算法 | 算法还原 |
| 处理混淆代码 | 反混淆 |
| 分析内核驱动 | 驱动分析 |
| 逆向嵌入式固件 | 固件分析 |
| 游戏外挂分析 | 游戏逆向 |
| 移动应用逆向 | 移动应用分析 |
| 识别第三方库 | 静态库/SDK 分析 |
| 基础操作技巧 | 通用技巧 |
相关文档
# README.md
IDA Skill for AI Agent
English | 中文
🤖 让 AI Agent 像安全分析师一样分析恶意样本
这是什么?
这是一个 AI Agent skill,让 AI 能够使用 IDA Pro 自动分析恶意软件,就像人类安全分析师一样:
- 🔍 自动识别恶意行为 - 分析 C2 通信、进程注入、持久化机制、恶意行为
- 🧩 理解代码功能 - 自动分析函数逻辑、识别加密算法、追踪数据流
- 📊 提取关键信息 - 导入表、字符串、操作码特征、YARA 规则
- 🎯 定位威胁指标 - IP 地址、域名、文件路径、注册表键值
演示视频
使用我的多agent框架Spore进行演示:
由于readme内嵌视频上传失败,请下载movie.mp4。
如何使用?
超级简单!只需 3 步:
1️⃣ 配置 IDA 路径
编辑 config.json:
{
"idat_path": "C:/Program Files/IDA Pro 9.0/idat64.exe"
}
2️⃣ 让 AI Agent 使用skill
将 IDA Skill 放在你的skill文件夹即可。
3️⃣ 开始分析
AI Agent 会自动:
- 初始化 IDA 数据库
- 提取导入表、字符串、反编译代码
- 像人类一样进行逆向分析
- 分析功能、提取C2
- 识别加密算法和可疑行为
- 生成分析报告
就这么简单! 🎉
内置工具
这个技能包集成了多个强大的分析工具,Agent 会自动调用它们:
🤖 REAI - AI 函数分析
基于我的开源项目 REAI
功能: 使用 LLM 自动理解函数功能,递归分析调用链
- 自动识别函数功能(如"解密配置"、"连接 C2")
- 自动重命名函数(sub_401000 → AI_decrypt_config)
- 在调用处添加注释说明子函数作用
配置: 编辑 tools/reai.py 设置你的 LLM API
API_KEY = "sk-..." # 你的 API 密钥
API_URL = "https://..." # API 地址(支持 OpenAI/Azure/deepseek/本地模型)
MODEL = "gpt-4" # 模型名称
🔍 FindCrypt - 加密算法识别
基于开源项目 FindCrypt
功能: 自动检测代码中的加密常量
- 支持算法:AES, DES, RC4, Blowfish, TEA
- 支持哈希:MD5, SHA1, SHA256
- 支持编码:Base64, CRC32
📝 mkYARA - YARA 规则生成
基于开源项目 mkYARA
功能: 从代码片段生成威胁检测规则
- 支持多种匹配模式(strict/normal/loose)
- 自动提取特征代码
- 生成可用于威胁检测的 YARA 规则
💾 Dump - 内存导出
功能: 提取代码或数据用于外部分析
- 支持导出地址范围、段、函数
- 支持多种格式(raw, hex, c_array, python)
📊 Export Check - 导出表分析
功能: 检测 DLL 异常导出函数
- 分析导出函数大小
- 识别异常导出模式
常见问题
Q: 我需要懂 IDAPython 吗?
A: 不需要! 只要让 AI Agent 读取 SKILL.md,Agent 会自动使用这些工具。你只需要用自然语言描述需求。
Q: 可以商用吗?
A: 不可以。 本项目采用 GPL-3.0 许可证,仅供学习和研究使用,禁止商业用途。如需商业使用,请联系作者获取授权。
许可证
GPL-3.0 License - 详见 LICENSE 文件
本项目采用 GPL-3.0 许可证,仅供学习和研究使用,禁止商业用途。
- ✅ 可以自由使用、修改和分发
- ✅ 必须保持开源,衍生作品也必须使用 GPL-3.0
- ❌ 禁止用于商业目的
- ❌ 禁止闭源使用
免责声明: 使用本项目进行逆向分析时,请遵守相关法律法规和软件许可协议。作者不对使用本项目造成的任何后果负责。
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.