# 需求-与AI结合自动分析-v1

## 背景、目标和需求概述

我希望创建一个能用在AI助手（如：claude、opencode等）中的命令，这个命令能够根据我的描述调用结合AI工具查询IDA Pro的数据库自动分析出我期望的结果，例如：

- 在AI工具输入框中输入：`/ida-pro-analysis ~/Downloads/课件/课件/实验材料1/lesson1.exe.i64 中的函数main_0会验证user_name、password，如果输入正确则会返回正确的反馈，我期望你帮我分析user_name、password输入什么才能通过`。AI工具加载命令提示词，结合我的输入的描述，帮我自动的分析出来。
- 在AI工具输入框中输入：`/ida-pro-analysis ~/Downloads/课件/课件/实验材料1/lesson1.exe.i64 帮我找到可执行文件有哪些入口`。AI工具加载命令提示词，结合我的输入的描述，帮我自动的分析出来。所谓的入口包括但不限于：所谓的main函数、init类型的函数。
- 在AI工具输入框中输入：`/ida-pro-analysis ~/Downloads/课件/课件/实验材料1/lesson1.dll.i64 帮我找到有哪些入口`。AI工具加载命令提示词，结合我的输入的描述，帮我自动的分析出来。所谓的入口包括但不限于：所谓的main函数、init类型的函数。
- 在AI工具输入框中输入：`/ida-pro-analysis ~/Downloads/课件/课件/实验材料1/lesson1.so.i64 帮我找到有哪些入口，入口都做了什么事情，分析的结果告诉我，并且更新相关函数的注释`。AI工具加载命令提示词，结合我的输入的描述，帮我自动的分析出来。所谓的入口包括但不限于：所谓的main函数、init类型的函数、JNI_OnLoad。



> 注意：
>
> 1. 上面例子中的入口需要AI根据so的特性智能的分析出不同的文件中有哪些入口类型，然后再去找入口。
> 2. 更新相关函数的注释是指更新到IDA Pro的数据库文件中，方便通过IDA Pro查看。
> 3. 上面是举例，分析的要求肯定不限于上面的举例。



## AI助手

claude、opencode。



## AI助手的命令

你要根据AI助手的命令格式创建命令，命令中要描述清楚这个命令的用途、如何运行。



### 命令存放位置

放到当前工作空间的`.opencode/commands/`目录下。



### 命令文档过长如何处理？

如果命令文档太长，使用渐进式披露的思想，拆分文档。



### 命令运行要保证结果的正确性

要使用Ralph Loop思想，要有计划、执行、审计、修复结果，中途有问题还需要再循环再执行。



### 记录命令处理过程中的关键数据

- IDA Pro数据库中有完整的二进制文件，在分析过程中如果需要保存分析结果，优先更新数据库，例如：重命名未命名的变量、函数，给代码、函数添加注释。你下次读取的时候应该能够读取，能帮助你保存分析过程中的中间信息、关键信息。
- 但是有一类数据IDA Pro数据库是没办法保存的，那就是任务状态类信息，例如：当前你分析到哪里了、哪些分析完了、哪些不需要再分析了等等。这些你分析过程的记录，我感觉应该是有用的。它存放到`analysis_intermediate`目录下。但是判断是否读取之前的任务状态记录文件、是否每次任务都读写新的文件，我没有想好，我需要你给我解决方案。

这两类数据相当于这个任务的记忆，我认为这些记忆有助于你的工作。



### 相关文档

- opencode自定义命令文档：https://opencode.ai/docs/zh-cn/commands/



### 命令日志

命令执行要有详细日志，日志有助于问题排查。



### 生成命令描述文档

- 当前文档中的描述只是需要，不要照搬，因为照搬可能命令执行的结果不会太好，你要帮我优化，最终达到我的目标。

- 必须使用Markdown创建命令。



## 命令依赖一些工具

因为操作的是IDA Pro数据库，那么大概率需要使用python脚本依赖ida pro sdk、调用idat，去辅助命令去实现功能，你在实现的过程中如果觉得需要创建这样的脚本，那么直接创建。



### python代码

- 当前工作空间有`.venv`这个虚拟环境，它里面安装了虚拟环境，安装了ida sdk依赖库，使用这个虚拟环境。
- 代码要有良好的抽象、设计、框架，不要所有代码都混到一起，类似代码、变量要复用。



### 外部参考资源

- **IDAPython 示例索引**：`vendor/ida-sdk/src/plugins/idapython/examples/index.md`
- **IDAPython 示例源码**：`vendor/ida-sdk/src/plugins/idapython/examples/`
- **IDAPython 参考文档**：https://python.docs.hex-rays.com/