I, Claudius - Reverse Engineer

In graduate school I was a reverse engineer. My subspecialty was binary instrumentation and analysis - specifically dynamic binary instrumentation. For the unfamiliar, binary instrumentation is splicing code into executables. Dynamic binary instrumentation is splicing code into running executables. There are lots of reasons why you might want to do this. You may, for example, want to modify a program when you no longer have the source. Another example: you may want to temporarily add logging or profiling instrumentation.

If you want to instrument or splice code into a binary, it helps to know the structure of the binary: where functions and data tables are, for instance. Can't instrument the start of a function if you don't know where the function starts. Sometimes some of this useful info exists in the program's symbol table. However, so-called "stripped binaries" have missing symbol tables. Binaries are stripped to resist analysis and to reduce delivery sizes among other reasons. Commercial software is typically distributed as stripped binaries. I published this research: Practical Analysis of Stripped Binary Code describing techniques for reconstructing structural information for stripped binaries so you can instrument them.

Armed with a symbol table reconstructor and a binary instrumentor you can do all sorts of cool stuff to commercial software. For example, you can add instrumentation to analyze call graphs and find out exactly where programs do license checking. Then you can splice in code to skip or override the license checking functions and unlock features hidden behind trial gates or upgrade blockers. See: Security Avoidance in a Windows Application using Dynamic Instrumentation and Using Binary Code Rewrite to Bypass License Checks. I used these methods and the tooling to crack a lot of games and other commercial software (for research purposes only).

Now it's 2026. In one of the most fun applications of LLMs, GitHub user Philip Parkinson II pointed Claude Opus 4.6 at the binary for the game Disney Infinity. Claude did the reverse engineering, analysis and patching needed to unlock previously locked characters.

We live in the future.

← Back to posts