Path of rev.ng-ance: from raw bytes to CodeQL on decompiled code

No ratings

Presented at REcon 2024 by

This is an hands-on talk about what you can do with the rev.ng decompiler, a FLOSS decompiler based on LLVM and QEMU. We will guide the audience step-by-step through how to go from the raw bytes of a file (think, a firmware) to decompiled C code. Then we'll dig into rev.ng intermediate representation, based on LLVM IR, and show what tools can be used on it (e.g., KLEE for symbolic execution). Finally, we'll show how you can use standard tools such as CodeQL and clang-static-analyzer to find bugs in the decompiled C code emitted by rev.ng, which is always syntactically valid. Everything that will be shown will be 100% reproducible by the audience in real-time using rev.ng.