{
  "id": 15450113,
  "title": "Ghidra + CBMC = Assembly Model Checker",
  "url": "https://urgent.news/2026/10/18/ghidra-cbmc-assembly-model-checker",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-18T16:58:24.000Z",
  "source": {
    "name": "Lobsters",
    "slug": "lobsters",
    "url": "https://www.philipzucker.com/asmc_cpp/"
  },
  "original_language": "en",
  "account": "The combination of Ghidra's assembly semantics and CBMC's bounded model checking capabilities has led to the development of a tool called asmc-lift. This tool allows for the lifting of compiled ELF files into a format compatible with CBMC, enabling assembly model checking. Asmc-lift is a relatively small piece of C++ code (~1kLOC) that serves as a driver to run asmc-lift and other CBMC tools for model checking. It integrates seamlessly with CBMC, which offers a wide range of use cases, including standalone assembly verification, translation validation, linking to external assembly, C specifications, and more. The tool supports both RV32/64 architectures and provides a flexible framework for writing custom harnesses to compare the output of C and assembly versions. While there are known limitations and potential issues with Ghidra's pcode semantics, the approach offers a promising compromise between the interests of assembly verification enthusiasts and the needs of society. The development of asmc-lift is part of a broader trend toward integrating binary verification tools with other languages, such as Rust using Kani. The author acknowledges the potential impact of AI in simplifying such complex tasks and expresses a balanced perspective on the future of binary verification.",
  "summary": null,
  "key_points": [
    "Ghidra's assembly semantics integrated with CBMC's bounded model checking.",
    "Asmc-lift tool enables lifting of compiled ELF files for assembly model checking.",
    "Supports RV32/64 architectures and custom harnesses for C and assembly comparison."
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}