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?

  • 4am@lemmy.zip
    link
    fedilink
    arrow-up
    17
    ·
    14 hours ago

    I think it’ll be used to push everything I to the cloud since they can “no longer trust putting code on user’s local machines” and we will all have to rent streamed software experienced for the rest of our lives or be unable to function in society.

    Honestly fuck capitalism for taking us down this road.

    • entwine@programming.dev
      link
      fedilink
      arrow-up
      3
      arrow-down
      2
      ·
      11 hours ago

      Honestly fuck capitalism for taking us down this road.

      Capitalism has nothing to do with this. It’s corruption, incompetent politicians, and a lazy populace who would rather bitch online than go out and vote (something I’m definitely guilty of, but am actively working to change)

      The direction things are going are to concentrate wealth and power into the hands of a very small group of assholes. There is no economic or political system that can fix the problems those assholes have been exploiting to pull this off. The only thing that can prevent that is an informed and energized population of voters.

      Like, we all want to see Trump, Musk, Zuckerberg, etc in prison. It feels like they’re untouchable, but literally all it would take to do that is to spend a few minutes filling out a ballot to get rid of the career politicians who have been in office too long (and thus are more likely to be corrupt). Even local elections matter.

      • Senal@programming.dev
        link
        fedilink
        English
        arrow-up
        10
        arrow-down
        1
        ·
        edit-2
        9 hours ago

        so…the extended consequences of rampant capitalism ?

        well…rampant “people gonna people” but capitalism is the current favoured expression of that.

    • fonix232@fedia.io
      link
      fedilink
      arrow-up
      1
      ·
      13 hours ago

      That won’t be a sustainable option for most software, as they need to work offline, plus a majority of customers still live in areas where reliable high bandwidth internet (a requirement for streaming software at any usable rate) isn’t really available.

  • melfie@lemmy.zip
    link
    fedilink
    arrow-up
    6
    ·
    edit-2
    13 hours ago

    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.

  • Kissaki@programming.dev
    link
    fedilink
    English
    arrow-up
    3
    ·
    15 hours ago

    The advantage of decompilation as a task is that you have a reference output you can validate against.

    I would assume the approach, mechanisms, and quality of produced code is similar to general/prompted code generating.

    I assume the produced code (and its quality) depends on the compiled code; how much was stripped or obfuscated, and what runtime are we talking about which may or may not have language constructs that guide structure. With little metadata or code structure left AI would shift more into it’s general patterns than if there is more metadata available that already defines structures or names.

    The thought of integrating a deterministic decompiler and then use AI to structure it and make it more readable while verifying the output remains the same seems like an interesting extension or alternative workflow and toolchain.

    I have not used these kinds of AI decompilation tools or workflows, but thinking purely from my background and general experience.

  • Damarus@feddit.org
    link
    fedilink
    arrow-up
    4
    ·
    17 hours ago

    It works and I’ve been playing around with it for the past week. Not really knowing what I’m doing, because my background is in software development, not reverse engineering, I’ve been running into the usual problems with badly guided agents. My project is cluttered, I don’t really know what’s important, progress is rather slow. But there is progress and I’m sure someone with more RE knowledge can make the process more efficient.

    I’m looking forward to getting some of my favourite old games running on modern systems using this.

  • LouNeko@lemmy.world
    link
    fedilink
    English
    arrow-up
    5
    ·
    19 hours ago

    Given what is happening to Project Zombiod right now… I think it working pretty darn well.

  • thingsiplay@lemmy.ml
    link
    fedilink
    arrow-up
    3
    arrow-down
    1
    ·
    18 hours ago

    I think for the long term success, they need to write better readable code. But this only comes after the legal part is solved, in example how copyright is handled if an Ai is involved.