I am aware of existing decompilation tools like Ghidra which give you close-to-original pseudocode.

But I think reverse engineering might be a place for ML to shine... After all, you got an empty source file, and a target binary to reach. You can automatically check everything by doing test compilations and comparing with the target binary.

ML is really good for pattern recognition, which is a huge part of reverse engineering. Though at the same time, I experienced firsthand how bad LLMs are in assembly since they don't "think" or have a hard time tracking state machines.

I am aware that a big part of reverse engineering is not getting something that compiles, but rather, figuring out variable names, function definitions and how a piece of software works in general. But I think, with human help, it could help decompilations drastically. What do you think?

you are viewing a single comment's thread
view the rest of the comments
[–] 7 points 1 week ago* (2 children)

I tested REA with Qwen 3.8 27B with a narrow solver capability from some commercial 3d software and it was quick to extract 20,000 lines of Ghidra C-like pseudocode, but painfully slow to turn it into actual C++. It struggled interpreting all the matrix math and making something that actually worked. I stopped after a couple days of it churning, figuring it could spend a couple weeks and end up with worthless slop. I’m a software engineer and don’t have a background in RE, so maybe someone with more experience would do better.

  • source
  • hideshow 2 child comments
  • [–] 2 points 6 days ago (1 child)

    Qwen 3.8 is not the smartest cookie when it comes to math. If the math is based on a research paper you can usually chug it in the context and it actually manages to one-shot the solution. But just from code alone it's not smart enough to figure out what the purposes of some matrices are and formulae are. I'd say it's on a junior coder level, it needs to get access to further research to actually understand implementations.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 6 days ago

    It would seem so and I’m guessing it might do better with REA and something that isn’t math-heavy. What surprised me most is that it dove right in even though it’s supposed to refuse RE.

  • source
  • parent