IDA-Skill

IDA Pro 逆向分析。通过 IDAPython 脚本获取反汇编、反编译、字符串、导入表、交叉引用等信息。

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "IDA-Skill" with this command: npx skills add miunasu/ida-skill/miunasu-ida-skill-ida-skill

IDA Pro 逆向分析

安全规则

仅支持静态分析 - 禁止调试、执行任何二进制文件。

快速开始:初始化分析

对新样本进行初始化分析,自动生成 i64 数据库并提取所有基础信息:

示例:

python IDA-Skill/tools/init_analysis.py target.exe
python IDA-Skill/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 IDA-Skill/tools/exec_ida.py target.i64 --code "print('Entry Point:', hex(idc.get_inf_attr(idc.INF_START_EA)))"

# 2. 执行脚本文件
python IDA-Skill/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) - 修改字节

内置工具

所有工具通过 exec_ida.py 执行,具体用法查询 TOOLS.md。

  • reai.py - 使用 LLM 分析函数语义,支持递归分析调用链
  • findcrypt.py - 通过特征常量识别加密算法(AES, DES, RC4, MD5, SHA1, SHA256, CRC32, Base64 等)
  • mkyara.py - 从代码范围生成 YARA 检测规则
  • export_check.py - 分析 DLL/EXE 的导出函数大小,小字节导出函数序列出现大字节导出函数,需要重点分析

分析方法文档

分析目标推荐文档
分析恶意样本恶意软件分析
挖掘安全漏洞漏洞分析
还原通信协议协议逆向
识别加密算法算法还原
处理混淆代码反混淆
分析内核驱动驱动分析
逆向嵌入式固件固件分析
游戏外挂分析游戏逆向
移动应用逆向移动应用分析
识别第三方库静态库/SDK 分析
基础操作技巧通用技巧

相关文档

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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

openclaw-version-monitor

监控 OpenClaw GitHub 版本更新,获取最新版本发布说明,翻译成中文, 并推送到 Telegram 和 Feishu。用于:(1) 定时检查版本更新 (2) 推送版本更新通知 (3) 生成中文版发布说明

Archived SourceRecently Updated
Coding

ask-claude

Delegate a task to Claude Code CLI and immediately report the result back in chat. Supports persistent sessions with full context memory. Safe execution: no data exfiltration, no external calls, file operations confined to workspace. Use when the user asks to run Claude, delegate a coding task, continue a previous Claude session, or any task benefiting from Claude Code's tools (file editing, code analysis, bash, etc.).

Archived SourceRecently Updated
Coding

ai-dating

This skill enables dating and matchmaking workflows. Use it when a user asks to make friends, find a partner, run matchmaking, or provide dating preferences/profile updates. The skill should execute `dating-cli` commands to complete profile setup, task creation/update, match checking, contact reveal, and review.

Archived SourceRecently Updated
Coding

clawhub-rate-limited-publisher

Queue and publish local skills to ClawHub with a strict 5-per-hour cap using the local clawhub CLI and host scheduler.

Archived SourceRecently Updated