miunasu

IDA-Skill

14
1
# Install this skill:
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 分析
基础操作技巧 通用技巧

相关文档

  • TOOLS.md - 内置工具参考
  • API.md - IDAPYTHON API 索引
  • docs/ - 完整 IDAPYTHON API 参考

# 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_401000AI_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.