使用说明
循环-NO-MCP
作者 耶利米
导出当前二进制Ninja BinaryView 将AI IDE工作流转换为稳定的磁盘树。
范围
当前UI工作流:
- 仅导出从冻结的函数集的函数工件
bv.functions - 使导出程序保持只读
- 在导出计划之前冻结已识别的功能集
- 默认情况下,重新分析每个冻结的函数,并在分析完成后立即导出
- 允许您在表单中手动选择输出目录
- 支持完全替换导出或增量导出,仅重试现有快照中未完成的功能
- 默认情况下导出原始HLIL线性视图文本
- 在导出的线性HLIL/伪-C中保留当前分析视图中的地址注释(如果可用)
- 允许您在UI中选择伪C/MLIL/MLIL SSA/LLIL作为可选导出
- 将函数声明写入导出的HLIL标头中
.meta.json - 写入当前快照标头、启动条目和紧凑函数索引
输出布局
binja-no-mcp-export/
meta/
binary.json
export_config.json
failures.jsonl
function_index.jsonl
startup_entries.json
sections.json
segments.json
functions/
main.hlil.txt
main.meta.json
data/
strings.jsonl
data_vars.jsonl
symbols.jsonl
optional/
pseudoc/
main.pseudoc.c
mlil/
main.mlil.txt
mlil_ssa/
main.mlil_ssa.txt
llil/
main.llil.txt
UI使用
- 在Binary Ninja中打开示例,让分析状态完全稳定到您想要导出的状态。
- 跑
Plugins -> Export for AI. - 在表单中,选择输出目录,然后选择完全导出(默认)或增量导出。
- 选择要导出的IL图层。
默认值:
- 导出前重新分析:已启用
- 增量导出:禁用(完全替换导出)
- HLIL:已启用
- 伪-C:已禁用
- MLIL:已禁用
- MLIL SSA:已禁用
- LLIL:已禁用
通过默认配置启用:
*.meta.jsonmeta/function_index.jsonlmeta/startup_entries.jsonmeta/failures.jsonlmeta/binary.jsonmeta/export_config.jsonmeta/sections.jsonmeta/segments.jsondata/strings.jsonldata/data_vars.jsonldata/symbols.jsonl
meta/binary.json 是快照标头。首先阅读它以了解模式、状态和函数计数。对于开放式程序分析,接下来读取启动条目并查询匹配的函数索引记录。用户指定的函数可以直接转到其索引记录;纯元数据问题可以直接转到标头后的相关元数据工件。完整导出将替换之前的快照。增量导出需要相同的目标快照,仅重用已标记为导出且存在所有选定工件的函数,并重试其他所有函数。
备注
- 导出器从不添加函数、入口点、部分、符号或引用。
- UI命令序列化
reanalyze current function -> analysis completion -> export current function. run_export本身不呼叫update_analysis_and_wait().- 可选的伪C/MLIL/MLIL SSA/LLIL导出仅在表单中明确启用时生成。
- 从应用了重定位的BinaryView读取启动数组。即使Binary Ninja没有地址的函数伪影,它们的非零插槽也会保持顺序和重复。
- 函数工件文件名使用其经过净化的Binary Ninja函数名;未命名函数使用
sub_<offset>. - PrivateUsage上限按函数窗口进行评估:交叉跳过该函数,然后允许下一个函数运行。
开发说明
项目布局遵循要求的分割:
binja_no_mcp/config.pybinja_no_mcp/collectors/binja_no_mcp/renderers/binja_no_mcp/exporters/binja_no_mcp/models/binja_no_mcp/plugin.py
许可证
此插件发布于 MIT许可证.
