by miunasu
使用skill让 AI Agent 像安全分析师一样分析恶意样本 | AI Agent skill for automated malware analysis using IDA Pro
# Add to your Claude Code skills
git clone https://github.com/miunasu/IDA-Skill仅支持静态分析 - 禁止调试、执行任何二进制文件。
对新样本进行初始化分析,自动生成 i64 数据库并提取所有基础信息:
示例:
python skills/IDA-Skill/tools/init_analysis.py target.exe
python skills/IDA-Skill/tools/init_analysis.py target.exe ./result
输出文件:
analysis.txt - 基本信息 + 导出表 + OEP反编译imports.txt - 导入表strings_use_subagent_to_analyse.txt - 字符串(按编码分类,已过滤噪点)遵循自顶向下的分析策略:
利用以下信息辅助定位关键函数:
idautils.XrefsTo() 查找函数调用关系推荐工作流:
exec_ida.py 执行 IDAPython 代码片段ida_hexrays.decompile(ea)idautils.XrefsTo(ea) / idautils.XrefsFrom(ea)禁止直接读取 strings_use_subagent_to_analyse.txt!
strings_use_subagent_to_analyse.txt 文件通常包含数千行字符串,直接读取会:
正确做法:
English | 中文
🤖 让 AI Agent 像安全分析师一样分析恶意样本
这是一个 AI Agent skill,让 AI 能够使用 IDA Pro 自动分析恶意软件,就像人类安全分析师一样:
使用我的多agent框架Spore进行演示: 由于readme内嵌视频上传失败,请下载movie.mp4。
超级简单!只需 3 步:
编辑 config.json:
{
"idat_path": "C:/Program Files/IDA Pro 9.0/idat64.exe"
}
将 IDA Skill 放在你的skill文件夹即可。
AI Agent 会自动:
就这么简单! 🎉
这个技能包集成了多个强大的分析工具,Agent 会自动调用它们:
基于我的开源项目 REAI
功能: 使用 LLM 自动理解函数功能,递归分析调用链
sub_401000 → AI_decrypt_config)配置: 编辑 设置你的 LLM API
No comments yet. Be the first to share your thoughts!
初始化分析后,使用 exec_ida.py 对 i64 数据库执行 IDAPython 代码进行深入分析。
从标准输入读取代码,配合 PowerShell here-string 语法使用。
⚠️ 必须使用 here-string 语法,不要手动转义引号!
✅ 正确做法:
使用模板
@'
原生 Python 文本
'@ | python skills/IDA-Skill/tools/exec_ida.py target.i64 --code-std
案例:
@'
print("Entry Point:", hex(idc.get_inf_attr(idc.INF_START_EA)))
for func_ea in idautils.Functions():
print(hex(func_ea), idc.get_func_name(func_ea))
'@ | python skills/IDA-Skill/tools/exec_ida.py target.i64 --code-std
Here-String 语法规则:
@' 必须在行尾'@ 必须单独在行首(前面不能有空格)执行脚本文件,适合复杂代码或需要重复使用的脚本。
python skills/IDA-Skill/tools/exec_ida.py target.i64 --file analyze.py
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) - 修改字节所有工具通过 exec_ida.py 执行,具体用法查询 TOOLS.md。
| 分析目标 | 推荐文档 | |---------|---------| | 分析恶意样本 | 恶意软件分析 | | 挖掘安全漏洞 | 漏洞分析 | | 还原通信协议 | 协议逆向 | | 识别加密算法 | 算法还原 | | 处理混淆代码 | 反混淆 | | 分析内核驱动 | 驱动分析 | | 逆向嵌入式固件 | 固件分析 | | 游戏外挂分析 | 游戏逆向 | | 移动应用逆向 | 移动应用分析 | | 识别第三方库 | 静态库/SDK 分析 | | 基础操作技巧 | 通用技巧 |
tools/reai.pyAPI_KEY = "sk-..." # 你的 API 密钥
API_URL = "https://..." # API 地址(支持 OpenAI/Azure/deepseek/本地模型)
MODEL = "gpt-4" # 模型名称
基于开源项目 FindCrypt
功能: 自动检测代码中的加密常量
基于开源项目 mkYARA
功能: 从代码片段生成威胁检测规则
功能: 检测 DLL 异常导出函数
A: 不需要! 只要让 AI Agent 读取 SKILL.md,Agent 会自动使用这些工具。你只需要用自然语言描述需求。
A: 不可以。 本项目采用 GPL-3.0 许可证,仅供学习和研究使用,禁止商业用途。如需商业使用,请联系作者获取授权。
GPL-3.0 License - 详见 LICENSE 文件
本项目采用 GPL-3.0 许可证,仅供学习和研究使用,禁止商业用途。
免责声明: 使用本项目进行逆向分析时,请遵守相关法律法规和软件许可协议。作者不对使用本项目造成的任何后果负责。