{
  "added_at": "2026-11-02",
  "additional_evidence_urls": [
    "https://github.com/mrphrazer/reverser_ai/blob/1d572da70479ea822875b9350135d7e3402f5557/plugin.json",
    "https://github.com/mrphrazer/reverser_ai/blob/1d572da70479ea822875b9350135d7e3402f5557/setup.py",
    "https://github.com/mrphrazer/reverser_ai/blob/1d572da70479ea822875b9350135d7e3402f5557/requirements.txt",
    "https://github.com/mrphrazer/reverser_ai/blob/1d572da70479ea822875b9350135d7e3402f5557/__init__.py",
    "https://github.com/mrphrazer/reverser_ai/blob/1d572da70479ea822875b9350135d7e3402f5557/reverser_ai/binary_ninja/__init__.py",
    "https://github.com/mrphrazer/reverser_ai/blob/1d572da70479ea822875b9350135d7e3402f5557/reverser_ai/binary_ninja/function_name_gpt_wrapper.py",
    "https://github.com/mrphrazer/reverser_ai/blob/1d572da70479ea822875b9350135d7e3402f5557/reverser_ai/gpt/function_name_gpt.py",
    "https://github.com/mrphrazer/reverser_ai/blob/1d572da70479ea822875b9350135d7e3402f5557/reverser_ai/gpt/models.py",
    "https://github.com/mrphrazer/reverser_ai/blob/1d572da70479ea822875b9350135d7e3402f5557/examples/README.md",
    "https://github.com/mrphrazer/reverser_ai/blob/1d572da70479ea822875b9350135d7e3402f5557/.github/workflows/ci.yml",
    "https://github.com/mrphrazer/reverser_ai/blob/1d572da70479ea822875b9350135d7e3402f5557/LICENSE",
    "https://github.com/mrphrazer/reverser_ai/releases/tag/v1.2"
  ],
  "category": "agent-workflows",
  "description_en": "Binary Ninja plugin that suggests function names from HLIL decompiler output with a language model run locally through llama.cpp; the README says it operates entirely offline once the model is downloaded. It can rename the current function, every function still carrying a default sub_ name in call-graph post-order, or only those referencing strings and imported or library symbols. The author presents it as a research proof of concept whose only implemented task is function naming.",
  "description_zh": "Binary Ninja 插件，借助 llama.cpp 在本机运行语言模型，依据 HLIL 反编译输出建议函数名；README 称下载模型后即可完全离线运行。它可以重命名当前函数，按调用图后序遍历重命名所有仍沿用默认 sub_ 名称的函数，或只处理其中引用字符串、导入符号或库符号的函数。作者把它定位为研究性概念验证，目前唯一实现的任务是函数命名。",
  "entry_url": "https://awesomerea.org/resources/reverser-ai/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/reverser-ai/",
  "evidence_url": "https://github.com/mrphrazer/reverser_ai/blob/1d572da70479ea822875b9350135d7e3402f5557/README.md",
  "group": "agents",
  "id": "reverser-ai",
  "json_url": "https://awesomerea.org/resources/reverser-ai/record.json",
  "kind": "integration",
  "markdown_url": "https://awesomerea.org/resources/reverser-ai/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/reverser-ai/index.md",
  "name": "ReverserAI",
  "name_zh": "ReverserAI：本地大模型函数命名 Binary Ninja 插件",
  "record_type": "resource",
  "relationship": "independent-agent-integration",
  "requirements": [
    "The reviewed main commit is the v1.2 release of 2026-05-20, and plugin.json and setup.py both declare version 1.2. It installs through Binary Ninja’s plugin manager, or by cloning into Binary Ninja’s plugins folder and installing requirements.txt (huggingface-hub, llama-cpp-python, networkx, toml, typer) and the package; setup.py asks for Python 3.10+, and plugin.json lists macOS, Windows and Linux with minimum Binary Ninja build 2487.",
    "On first use the plugin downloads the selected GGUF model from Hugging Face: by default mistral-7b-instruct-v0.2.Q4_K_M.gguf, about 5 GB and needing about 5 GB of RAM, or a Mixtral-8x7B-Instruct quantization needing about 25 GB. Inference then runs on the local CPU or GPU, which the README describes as entirely offline. It advises at least 16 GB of RAM and 12 CPU threads and reports 20 to 30 seconds per query on CPU, or 2 to 5 seconds with GPU offload such as on Apple silicon. Model, memory mapping, CPU threads, GPU layers and seed are Binary Ninja settings that take effect after a restart.",
    "Three Plugins → ReverserAI commands cover the naming modes: Rename Current Function, Rename All Functions, and Enhance Function Naming with Context, which limits renaming to default-named functions referencing strings or import, library or external symbols. Each request puts one function’s HLIL text into a fixed prompt asking for a name of up to 20 characters, keeps the first line of the reply and writes it to the database as the function name without a confirmation step, logging the old and new names. Functions whose decompiler output exceeds the 4,000-token context fail with a logged warning.",
    "The README calls ReverserAI a proof of concept, notes that local models do not match cloud models, and plans code explanation, other decompilers and server-hosted inference only as future work. The examples folder ships a password-protected samples.zip of test samples, including the PowerPC stub triton_inject.bin from the Triton malware, and its README describes their results qualitatively. CI runs only ruff formatting and lint checks, a setup.py metadata check and a Python syntax parse; there are no tests.",
    "GPL-2.0 per LICENSE; plugin.json and setup.py state version 2 or later. Binary Ninja and the downloaded model weights keep their own licences and terms."
  ],
  "requirements_zh": [
    "所审阅的 main 提交即 2026-05-20 发布的 v1.2，plugin.json 与 setup.py 均标注 1.2 版。可通过 Binary Ninja 插件管理器安装，或克隆到 Binary Ninja 的 plugins 目录后安装 requirements.txt（huggingface-hub、llama-cpp-python、networkx、toml、typer）及本软件包；setup.py 要求 Python 3.10+，plugin.json 列出 macOS、Windows 和 Linux，最低 Binary Ninja 构建号为 2487。",
    "首次使用时插件会从 Hugging Face 下载所选 GGUF 模型：默认是 mistral-7b-instruct-v0.2.Q4_K_M.gguf，约 5 GB，需要约 5 GB 内存；也可选用需要约 25 GB 内存的 Mixtral-8x7B-Instruct 量化模型。此后推理在本机 CPU 或 GPU 上运行，README 称完全离线。README 建议至少 16 GB 内存和 12 个 CPU 线程，并称纯 CPU 每次查询需 20 至 30 秒，借助 GPU（如 Apple 芯片）可缩短到 2 至 5 秒。模型、内存映射、CPU 线程数、GPU 层数和随机种子均在 Binary Ninja 设置中配置，重启后生效。",
    "Plugins → ReverserAI 下的三个命令对应三种命名方式：Rename Current Function、Rename All Functions，以及 Enhance Function Naming with Context，后者只重命名引用字符串或导入、库、外部符号的默认名称函数。每次请求把单个函数的 HLIL 文本放进固定提示词，要求给出不超过 20 个字符的名称，取回复的第一行直接写入数据库作为函数名，不经确认，并在日志中记录新旧名称。反编译输出超出 4,000 token 上下文的函数会失败并记录警告。",
    "README 称 ReverserAI 是概念验证，指出本地模型不及云端模型，代码解释、支持其他反编译器和服务器端推理仅列为未来工作。examples 目录附带一个加密的 samples.zip 测试样本包，其中包括 Triton 恶意软件的 PowerPC 存根 triton_inject.bin，其 README 只定性描述了这些样本上的结果。CI 只运行 ruff 格式与代码检查、setup.py 元数据检查和 Python 语法解析，没有测试。",
    "LICENSE 为 GPL-2.0；plugin.json 与 setup.py 声明可适用第 2 版或更高版本。Binary Ninja 及下载的模型权重各有其许可与条款。"
  ],
  "targets": [
    "binary"
  ],
  "url": "https://github.com/mrphrazer/reverser_ai",
  "verification": "source-reviewed",
  "verified_at": "2026-10-20"
}
