Cyber Risks · Trail of Bits Blog

Interactive decompilation with rellic-xref

Summary: Trail of Bits released rellic-xref, a web interface for the Rellic decompiler that shows an uploaded LLVM module and its decompiled C source side by side, highlighting the instructions behind each piece of generated code when the user hovers over it. The tool also lets users reorder, remove, and insert Rellic's refinement passes rather than relying on the hard-coded default chain in rellic-decomp, and it exposes nine passes including dead statement elimination, Z3 condition simplification, and condition normalization, the last of which is excluded from the default chain because it can produce exponentially large conditions.

Key Takeaway: Rellic's refinement passes rely on assumptions about how decompilation generates the Clang AST, so the tool is built for analyzing LLVM modules rather than arbitrary C, and the author notes the Clang AST interface is not meant to be used as a mutable resource. For a reverse engineering team, that constraint sets the boundary on how far this interactive provenance view can be pushed toward a full decompiler workflow.

Read the original at Trail of Bits Blog ↗