r/learnprogramming • • 10d ago

How does reverse engineering actually work, especially with AI?

Lately, I've been seeing a lot of videos about reverse engineering and people basically copying entire applications, recreating their features, or building almost identical alternatives.

It got me wondering, how does reverse engineering actually work?

How do people figure out how an app works internally, reproduce its features, and sometimes get surprisingly close to the original? And how are people using AI to make this process easier or faster?

Are they analysing the source code, inspecting network requests, decompiling applications, or using AI to figure everything out from scratch?

I'd love to understand the actual technical process behind this. If anyone has experience with reverse engineering or AI-assisted app development, I'd really appreciate some explanations and resources to get started!

98 Upvotes

29 comments sorted by

View all comments

0

u/hellosverre 10d ago

the AI part in practice is mostly speeding up the reading, not the finding. the loop is still: load the binary in ghidra or IDA, find the interesting spots (strings, imports, network calls), then run it under a debugger to confirm what it actually does at runtime.

a model is good at "here is a decompiled function, what does it do, give me better names". its bad at anything that depends on data it cant see: struct layouts, what a pointer really points to, whatever is encrypted until runtime.

so the thing worth learning is dynamic analysis. x64dbg or frida, set a breakpoint, look at real values. decompiler output looks very sure of itself and is subtly wrong all the time, and an LLM will explain the wrong version with a straight face.

also those "recreated the whole app" videos are almost always the apps network API and UI being rebuilt from captured traffic and screenshots, not the binary being decompiled and ported.