{
  "added_at": "2026-10-17",
  "additional_evidence_urls": [
    "https://github.com/simonlindholm/decomp-permuter/blob/8556c81d80d1c1af98a858c8f4dc951357f29139/LICENSE"
  ],
  "category": "game-analysis",
  "description_en": "Randomly or systematically permutes one C function, recompiling each variant and scoring it against a target object file to search for matching compiler output. PERM macros specify manual alternatives, and the optional permuter@home mode distributes runs to other workers.",
  "description_zh": "随机或系统地改写单个 C 函数，逐个重新编译变体并与目标文件评分对比，以寻找与原编译输出一致的写法。可用 PERM 宏指定手动备选写法，可选的 permuter@home 模式能把运行分发给其他工作节点。",
  "entry_url": "https://awesomerea.org/resources/decomp-permuter/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/decomp-permuter/",
  "evidence_url": "https://github.com/simonlindholm/decomp-permuter/blob/8556c81d80d1c1af98a858c8f4dc951357f29139/README.md",
  "group": "tools",
  "id": "decomp-permuter",
  "json_url": "https://awesomerea.org/resources/decomp-permuter/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/decomp-permuter/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/decomp-permuter/index.md",
  "name": "decomp-permuter",
  "name_zh": "decomp-permuter",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "Each input directory needs a single-function .c file, the target .o, a project-specific compile script and a settings .toml; import.py can generate them for configured Make or Ninja projects. The README lists MIPS (IDO, possibly GCC), PowerPC and ARM32 assembly.",
    "Requires Python 3 and toml; pynacl and Levenshtein are optional. permuter@home needs access granted by an existing network member, supports a limited compiler list and does not run on native Windows; workers also need Docker.",
    "A zero score means the scored disassembly matches. The README warns that random passes often find nonsensical changes, so a human must still choose readable, non-overfitted code; the tool does not recover names, types or semantics.",
    "MIT license. No packaged release; last commit at review: 2026-10-06."
  ],
  "requirements_zh": [
    "每个输入目录需要只含一个函数的 .c 文件、待匹配的 .o 目标文件、项目专用的编译脚本和设置 .toml；已配置好的 Make 或 Ninja 项目可用 import.py 自动生成。README 列出的支持范围为 MIPS（IDO，GCC 可能可用）、PowerPC 和 ARM32 汇编。",
    "需要 Python 3 和 toml；pynacl 与 Levenshtein 为可选依赖。permuter@home 需由已加入网络的成员授权，只支持有限的编译器，不能在原生 Windows 上运行；工作节点还需要 Docker。",
    "得分为零只表示评分所用的反汇编一致。README 提醒随机改写常会找到不合常理的变化，仍需由人挑选可读、未过拟合的写法；工具不会恢复名称、类型或语义。",
    "MIT 许可证。没有打包发布版本；审阅时最后一次提交为 2026-10-06。"
  ],
  "targets": [
    "binary",
    "game"
  ],
  "url": "https://github.com/simonlindholm/decomp-permuter",
  "verification": "source-reviewed",
  "verified_at": "2026-10-17"
}
