118 Followers
1 Following
163 Posts
Building the next generation decompiler.
Binary analysis is a dish best served static.
Websitehttps://rev.ng
Twitterhttps://twitter.com/_revng

😎 We now push artificial variable declarations close to their use! 😎

Also, inline initialization.

🛳️ The new C decompiler backend is almost ready to ship! 🛳️

Merged today: use alias analysis to reduce local variables.

More critical improvements to come!

⚠️ We just merged the cast elision branch!

Now we no longer print all the 👻 casts, i.e., those that, according to the C standard, are implicit.

Big win for readability without resorting to "hide all casts" as some other tools do 😉

Design document (REP60): https://pad.rev.ng/s/jbM3NmEVq

🎥 New video about QEMU!

This time, Anton walks through the basics of QEMU system mode using a simple bare metal program! ⚙️

The focus is on understanding how QEMU’s high-level control flow works, from guest code to BIOS, and down to device implementation.

🎥 How rev.ng finds loops: Nested Cyclical Region Identification

Andrea will show us how we identify nested cyclical regions on the CFG in the new decompiler backend.

🎥 QEMU Dev Starter guide, Part 1

The QEMU codebase can be quite daunting for new developers, Anton with this talk aims to give an overview of both the major APIs one might encounter as well as the high control flow of user-mode emulation.

🔴 Clift: a new MLIR dialect for decompiling C

Clift is the AST-like IR that the rev.ng decompiler uses as the last stage before emitting C code.

Clift is an MLIR dialect, a sort of "meta IR" that enables you to define your own types and instructions

📉📉📉 rev.ng now uses 1/3 of the RAM 📈📈📈

The new pipeline infrastructure is almost ready.
Moar performance improvements to come 🦾

🔴 How does a decompiler detect function arguments?

Here's a rev.ng hour from 2023-10-13 explaining EFA4, our analysis to detect function arguments, and return values, passed via registers.

💪 We're working on reducing our RAM consumption 💪

To diagnose the critical spots, we augmented our `--trace` report with memory consumption info.

We now know how much RAM each part of the pipeline consumes!

Special thanks 💕 ui.perfetto.dev 💕 for the visualization.