{
  "added_at": "2026-10-19",
  "additional_evidence_urls": [
    "https://github.com/lifting-bits/rellic/blob/370abaad86ae5adad82f85b81aff14557462b7f2/README.md#L179-L326",
    "https://github.com/lifting-bits/rellic/blob/370abaad86ae5adad82f85b81aff14557462b7f2/docs/NoMoreGotos.pdf",
    "https://github.com/lifting-bits/rellic/blob/370abaad86ae5adad82f85b81aff14557462b7f2/tools/xref/README.md",
    "https://github.com/lifting-bits/rellic/blob/370abaad86ae5adad82f85b81aff14557462b7f2/tools/headergen/README.md",
    "https://github.com/lifting-bits/rellic/blob/370abaad86ae5adad82f85b81aff14557462b7f2/tools/plugins/ida-rellic.py",
    "https://github.com/lifting-bits/rellic/blob/370abaad86ae5adad82f85b81aff14557462b7f2/CMakeLists.txt",
    "https://github.com/lifting-bits/rellic/blob/370abaad86ae5adad82f85b81aff14557462b7f2/LICENSE",
    "https://github.com/lifting-bits/rellic/releases/tag/v0.2.3",
    "https://github.com/lifting-bits/rellic/compare/v0.2.3...370abaad86ae5adad82f85b81aff14557462b7f2"
  ],
  "category": "binary-libraries",
  "description_en": "Trail of Bits implementation of the pattern-independent structuring algorithm from the No More Gotos paper, turning LLVM bitcode into goto-free C as a small, hackable decompiler back end that interoperates with LLVM and Remill. rellic-decomp translates a bitcode module to C in batch, rellic-xref serves a web interface for choosing refinement passes and linking C AST nodes to the bitcode that produced them, and rellic-headergen emits C layouts of data structures from a module's DWARF metadata. Machine code must first be lifted to bitcode by another tool; a bundled IDA script uses Anvill for that step.",
  "description_zh": "Trail of Bits 对 No More Gotos 论文中模式无关结构化算法的实现，可把 LLVM bitcode 转换为不含 goto 的 C 代码，定位为小巧、易于修改且能与 LLVM 和 Remill 互操作的反编译器后端。rellic-decomp 批量将 bitcode 模块转换为 C；rellic-xref 提供 Web 界面，可选择要应用的细化遍，并将 C AST 节点与生成它的 bitcode 相互对应；rellic-headergen 根据模块中的 DWARF 元数据生成描述数据结构布局的 C 代码。机器码须先由其他工具提升为 bitcode；仓库附带的 IDA 脚本借助 Anvill 完成这一步。",
  "entry_url": "https://awesomerea.org/resources/rellic/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/rellic/",
  "evidence_url": "https://github.com/lifting-bits/rellic/blob/370abaad86ae5adad82f85b81aff14557462b7f2/README.md",
  "group": "tools",
  "id": "rellic",
  "json_url": "https://awesomerea.org/resources/rellic/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/rellic/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/rellic/index.md",
  "name": "Rellic",
  "name_zh": "Rellic LLVM bitcode 转 C 反编译器",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "Latest release at review: v0.2.3, published 2023-04-04, with LLVM 15 builds: deb and tgz packages for Ubuntu 20.04 and a tgz package for macOS 11. The reviewed master commit (2025-11-03) is 13 commits ahead and comments out the AnghaBench CI cron jobs; the code commits before it date from April 2024.",
    "The README supports Linux, tested on Ubuntu 22.04, and also documents a macOS build. Building needs CMake 3.21+, LLVM and Clang 16, Z3 4.7.1+, gflags and glog, most of which come from Trail of Bits' prebuilt cxx-common packages; scripts/build.sh downloads the rest and produces a deb package. Docker images on Docker Hub and the GitHub Package Registry are parameterized by Ubuntu and LLVM version.",
    "Input is an LLVM bitcode module built with the same LLVM version as the decompiler. C sources can be compiled with clang -emit-llvm, but executables need a separate lifter such as Remill or Anvill. The README's examples show output whose control flow and variable types differ from the original source, and its AnghaBench 1,000-program test only checks that bitcode translates to C, not the readability or behavior of the result.",
    "Apache-2.0 license. The roundtrip tests compile C to IR and back and check that the result builds and behaves roughly like the original. By default rellic-xref listens on all addresses, on port 80."
  ],
  "requirements_zh": [
    "审阅时最新版本为 v0.2.3，发布于 2023-04-04，提供基于 LLVM 15 的构建：Ubuntu 20.04 的 deb 与 tgz 包，以及 macOS 11 的 tgz 包。所审阅的 master 提交（2025-11-03）比该版本多 13 个提交，内容是注释掉 AnghaBench CI 定时任务；此前的代码提交日期为 2024 年 4 月。",
    "README 称支持 Linux，并在 Ubuntu 22.04 上测试过，另外也说明了 macOS 上的构建方法。构建需要 CMake 3.21+、LLVM 与 Clang 16、Z3 4.7.1+、gflags 和 glog，其中大部分可由 Trail of Bits 预构建的 cxx-common 包提供；scripts/build.sh 会下载其余依赖并生成 deb 包。Docker Hub 和 GitHub Package Registry 上的 Docker 镜像按 Ubuntu 与 LLVM 版本区分。",
    "输入为与反编译器使用相同 LLVM 版本构建的 LLVM bitcode 模块。C 源码可用 clang -emit-llvm 编译得到，而可执行文件需借助 Remill 或 Anvill 等独立提升器处理。README 示例中输出的控制流和变量类型与原始源码不同；其 AnghaBench 1,000 个程序的测试只检查 bitcode 能否转换为 C，不检查结果的可读性或行为。",
    "Apache-2.0 许可证。往返测试将 C 编译为 IR 再转回 C，检查结果能否构建且行为与原程序大致相同。rellic-xref 默认监听所有地址的 80 端口。"
  ],
  "targets": [
    "binary"
  ],
  "url": "https://github.com/lifting-bits/rellic",
  "verification": "source-reviewed",
  "verified_at": "2026-10-19"
}
