{
  "added_at": "2026-11-09",
  "additional_evidence_urls": [
    "https://github.com/renato-osec/goonfi-v2-decompiled/blob/381cc31945474ba6b5b56b32a8cad5266602d612/README.md",
    "https://github.com/renato-osec/goonfi-v2-decompiled/blob/381cc31945474ba6b5b56b32a8cad5266602d612/build.sh",
    "https://github.com/renato-osec/goonfi-v2-decompiled/blob/381cc31945474ba6b5b56b32a8cad5266602d612/VERIFY.sh",
    "https://github.com/renato-osec/goonfi-v2-decompiled/blob/381cc31945474ba6b5b56b32a8cad5266602d612/verify_onchain.py",
    "https://github.com/renato-osec/goonfi-v2-decompiled/blob/381cc31945474ba6b5b56b32a8cad5266602d612/Cargo.toml",
    "https://x.com/pashov/status/2111066785890054605"
  ],
  "category": "reconstruction-cases",
  "class": "software",
  "description_en": "OtterSec researchers describe an agent pipeline that reconstructed Rust source for the closed-source GoonFi V2 Solana program until a rebuild with the original toolchain reproduced the deployed ELF. Per-function instruction scoring, a deterministic merge judge and bans on assembly and other score-gaming constructs steered the agents; matching function order and panic-location paths closed the last differences. The article and a companion repository document the method and a verification script, while the internal tooling and agent transcripts remain unpublished.",
  "description_zh": "OtterSec 研究人员介绍了一套智能体流程：为闭源的 GoonFi V2 Solana 程序重建 Rust 源码，直至用原工具链重新构建即可复现所部署的 ELF。逐函数指令评分、确定性合并评审，以及对汇编等刷分写法的禁用约束引导智能体工作；对齐函数顺序和 panic 位置路径后，最后的差异得以消除。文章与配套仓库记录了方法和验证脚本，内部工具及智能体对话记录仍未公开。",
  "entry_url": "https://awesomerea.org/resources/goonfi-v2-rust-recompilation-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/goonfi-v2-rust-recompilation-case/",
  "evidence_url": "https://osec.io/blog/goonfi-decompilation/",
  "group": "cases",
  "id": "goonfi-v2-rust-recompilation-case",
  "json_url": "https://awesomerea.org/resources/goonfi-v2-rust-recompilation-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/goonfi-v2-rust-recompilation-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/goonfi-v2-rust-recompilation-case/index.md",
  "name": "GoonFi V2: byte-identical Rust recompilation of a Solana program",
  "name_zh": "GoonFi V2：Solana 程序的逐字节一致 Rust 重编译",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirements": [
    "The target is GoonFi V2 as deployed at slot 448984043; the live program was upgraded on 2026-10-06, so verification uses the earlier ELF.",
    "The reconstruction uses the deployed binary, program IDL and on-chain transactions. The core agent harness, merge judge and transcripts are unpublished.",
    "build.sh requires Linux x86-64 and downloads Solana platform-tools v1.48 (rustc 1.84.1-dev, LLVM 19.1.7). VERIFY.sh needs an Alchemy archive key or another archival RPC to recover the original ELF from deploy-transaction writes and compare it byte for byte.",
    "The companion repository names no license for its reconstructed source; rights to the original closed-source program remain with its owner."
  ],
  "requirements_zh": [
    "目标为在 slot 448984043 部署的 GoonFi V2；链上程序于 2026-10-06 升级，因此验证使用较早的 ELF。",
    "重建使用已部署二进制、程序 IDL 与链上交易。核心智能体框架、合并评审器及对话记录未公开。",
    "build.sh 需要 Linux x86-64，并下载 Solana platform-tools v1.48（rustc 1.84.1-dev、LLVM 19.1.7）。VERIFY.sh 需要 Alchemy 归档密钥或其他归档 RPC，从部署交易写入中恢复原始 ELF 并逐字节比较。",
    "配套仓库未声明重建源码的许可证；原闭源程序的权利归其所有者。"
  ],
  "targets": [
    "binary"
  ],
  "url": "https://osec.io/blog/goonfi-decompilation/",
  "verification": "source-reviewed",
  "verified_at": "2026-10-18"
}
