LLM 配置

Grapefruit 可以使用大语言模型将反汇编代码反编译为可读源代码。这在所有分析视图(原生 ARM/x86、Dalvik 字节码、Hermes 字节码)的 AI 反编译 标签页中可用。

工作原理

当你打开 AI 反编译标签页,Grapefruit 会将函数反汇编发送给 LLM 服务商。提示词包含:

  • 函数名和签名(符号表中有时可用)
  • 去除装饰性的反汇编——移除地址、管道字符和装饰格式以减少 token 用量
  • 对于 Hermes:同时包含基于规则的伪代码和原始字节码,供模型交叉参考

响应实时流式返回,因此你可以看到反编译代码的生成过程。结果在会话期间按函数缓存。

支持的服务商

  • Anthropic — Claude 模型(推荐,代码质量最佳)
  • OpenAI — GPT 模型
  • Google Gemini
  • OpenRouter — 一个 API 接入多种模型

配置

启动 Grapefruit 前设置以下环境变量:

export LLM_PROVIDER=anthropic
export LLM_API_KEY=sk-ant-...
export LLM_MODEL=claude-sonnet-4-20250514

各服务商配置示例

# Anthropic
LLM_PROVIDER=anthropic
LLM_API_KEY=sk-ant-...
LLM_MODEL=claude-sonnet-4-20250514

# OpenAI
LLM_PROVIDER=openai
LLM_API_KEY=sk-...
LLM_MODEL=gpt-4o

# Gemini
LLM_PROVIDER=gemini
LLM_API_KEY=AIza...
LLM_MODEL=gemini-2.5-flash

# OpenRouter
LLM_PROVIDER=openrouter
LLM_API_KEY=sk-or-...
LLM_MODEL=anthropic/claude-sonnet-4-20250514

输出语言

AI 反编译器根据输入类型生成不同的语言:

  • 原生代码(ARM、x86)— 反编译为 C/C++
  • Dalvik 字节码(DEX)— 反编译为 Java
  • Hermes 字节码(React Native)— 反编译为 JavaScript,重构 React/RN 模式

隐私

反汇编通过 HTTPS 发送给你配置的 LLM 服务商。除非主动配置,不会有任何数据流向第三方。此功能完全可选——不配 LLM 也能正常使用 Grapefruit。

不使用 LLM

如果未配置 LLM,AI 反编译标签页会显示配置提示。所有其他功能(反汇编、伪代码、CFG、类浏览、Hook 等)都无需 LLM 即可使用。