AI-powered reverse-engineering of Rosetta 2 (for Linux VM)

(github.com)

32 points | by inoki 2 hours ago ago

11 comments

  • Retr0id 2 hours ago

    Does it produce runnable binaries?

    The repo does not make it clear, but Apple ships Linux builds of Rosetta 2 that can be used inside Linux VMs on apple silicon hardware [0]. With some patches (or so I'm told) it can be made to run on non-apple-silicon arm64 hardware.

    Even if it's not fully decompiled yet, it should be possible to relink the decompiled subsections into an original binary.

    [0]: https://developer.apple.com/documentation/virtualization/run...

    • duskwuff an hour ago

      > Does it produce runnable binaries?

      No. Even the decompiled version is incomplete - there's comments all over it which signal missing code like "could not recover jumptable ... too many branches". The "refactored" version is wildly speculative - it looks more like a very clumsy attempt to write a new translator than to reverse-engineer an existing one.

      > With some patches (or so I'm told) it can be made to run on non-apple-silicon arm64 hardware.

      With the huge caveat that the generated code will expect TSO to be enabled, and may malfunction on non-TSO ARM systems, particularly when running multithreaded code. (Most ARM systems are non-TSO; Apple Silicon has a MSR to enable TSO.)

    • inoki 2 hours ago

      WIP ;) The final target might be to get Intel's Houdini-like binary (but for Intel instructions)

    • Retr0id an hour ago

      re: patches, looks like they've reversed some of the relevant bits: https://github.com/Inokinoki/attesor/commit/233cb459b9db8345... (I was concerned this might be slop but that detail is promising!)

      • duskwuff an hour ago

        That looks more like the AI inventing code to explain observed behavior (cf. "For Linux virtualization environments, we simulate this...").

        • inoki an hour ago

          Yeah, I guess it's losing some contexts. Still need human work if want to make it really work on Linux...

        • Retr0id an hour ago

          Looking closer it does look pretty nonsensical, ugh.

  • mindwok 2 hours ago

    What exactly is this? It says it's for Linux, but what makes it "for Linux"? I'm curious which parts of Rosetta are Apple silicone specific and which aren't.

  • selridge 2 hours ago

    This is the way. Gl; hf.

  • 2 hours ago
    [deleted]