r/AskComputerScience • • 7d ago

Is AI reverse engineering really reverse engineering?

Are the programmes currently being reverse-engineered by AI actually being reverse-engineered in the traditional sense? In other words, is the source code actually being uncovered? Or are the programmes simply being copied on the basis of their functions, behaviour and so on?

6 Upvotes

14 comments sorted by

13

u/teraflop 7d ago

Some are, some aren't.

There are a lot of AI-assisted "decompilation" projects that involve using AI tools to reconstruct the source code that corresponds to a particular binary program. (And other, less constrained kinds of reverse engineering, such as asking AI tools to figure out file formats or wire protocols.)

There are also projects that may be advertised as "reverse engineering", but are really just somebody prompting an AI tool to create a UI that looks like a particular program and mimics its features. For instance, I've recently seen "clones" of MS Visual Basic and Photoshop that fall into this category.

11

u/IdeaReceiver 7d ago

That's fundamentally what reverse engineering is. Getting the original source code used to compile a program is impossible outside of leaks or hacks, but replicating behaviour with custom written code is reverse engineering, whether it's sourced from decompiled binaries or rewritten from observation. AI is a highly useful tool for all of the above approaches.

2

u/Impressive_Sense_579 6d ago

Ah, ok, thank you

4

u/leaflavaplanetmoss 6d ago

What you describe in your last sentence is literally the definition of reverse engineering:

“Reverse engineering (also known as backwards engineering or back engineering) is a process or method through which one attempts to understand through deductive reasoning how a previously made device, process, system, or piece of softwareaccomplishes a task with very little (if any) insight into exactly how it does so.” (from Wikipedia)

Reverse engineering is figuring out how something works backwards from a completed state, often so it be reimplemented, but the reimplementation just needs to be functionally equivalent or similar, not literally the exact same source code. For compiled software, literally getting back to the original source code verbatim only from the compiled program is actually (more or less) impossible; decompilers can only approximate the original source code with an equivalent version, but it won’t be exactly the same, character for character.

2

u/Bubbly_Safety8791 7d ago

If by ‘the programs currently being reverse engineered by AI’ you mean ‘the programs being astroturfed into every promotional channel right now by the ArtCraft team’, whoever that is?

There’s a guy posting very hard on HN right now that they aren’t using reverse engineering 

https://news.ycombinator.com/item?id=50029110

He’s in for a shock when he learns about patents. 

2

u/HaMMeReD 7d ago

What everyone does individually is up to them, so maybe.

But I'll tell you something my agent did the other day.

We use OpenSSL inside some of our projects, it's pretty normal. But when it comes to TPS (Third Party Software) we don't always have the source, in the case of OpenSSL we have binaries in a repo and statically link it when we need it.

However, there is a scanner I needed to run, and it really hates the statically linked OpenSSL library because of issues in the machine/code binary.

My agent took the liberty of rewriting OpenSSL's machine code to make it compatible with the scanner, and it succeeded at greening the scan and all the tests.

So yeah, AI can reverse engineer stuff now just fine.

1

u/FartChecker- 6d ago

FWIW, OpenSSL is open source and you might want to use that rather than a out of date binary given the extreme attack vector potential in outdated OpenSSL

1

u/HaMMeReD 6d ago

We update our TPS repo's regularly thank you.

They are just silo'd away from our main source and we generally don't edit them. (and why build them if you have them involved in 20k builds a day)

1

u/CrimsonBolt33 7d ago

yes, you simply tell an AI to use something like Ghidra or Ida and it will systematically decompile a game.

1

u/otherdimensio 6d ago

I would argue it is not, because I think of reverse engineering as being something a bit beyond a mere technical process, but that enables a comprehension of the thought process of a fellow human who engineered the system. It's a bit paradoxical because high-level languages were made to be closer to human natural way of understanding what's going on, but AI is perfectly able to produce blobs of high level code that escape one's comprehension.

1

u/nora_sellisa 5d ago

Yes, AI is decompiling the binaries and is "smart" enough to figure out which of the thousands of unnamed functions do which task in software. It's also way more likely to be illegal than recreating software from descriptions and observation

1

u/itsallfake01 4d ago

If it’s rewritten in rust, then its not

-2

u/Cyo_The_Vile 7d ago

The answer is no.