// THE_RE_WORKFLOW
A systematic approach to cracking binaries.
1. RECON
(File/Strings)
→
2. DYNAMIC
(Run/Fuzz)
→
3. STATIC
(Disasm/Decomp)
→
4. SOLVE
(Keygen/Patch)
1. Reconnaissance (Static Basics)
Before running anything, ask: What is this file?
- Command:
file binary.exe -> Tells you if it's 32-bit/64-bit,
Windows/Linux.
- Command:
strings binary.exe -> Dumps readable text. Often finds
passwords (mock flags!) and error messages.
2. Dynamic Analysis (Black Box)
Run the program and observe its behavior.
- Does it ask for a password?
- Does it create files?
- Idea: Try entering a super long string ("AAAAA...") to see if it crashes (Buffer
Overflow).
3. Static Analysis (Deep Dive)
Use tools like Ghidra, IDA Pro, or Binary Ninja.
- Disassembly: Reading the raw assembly instructions (CMP, JMP).
- Decompilation: Converting assembly back into readable C-like code.
- Control Flow Graph: Visualizing the decision tree (If/Else branches).
4. The Solve
Once you understand the logic, defeat it.
- Keygenning: Write a script (Python) to generate a valid key (reverse the math).
- Patching: Edit the binary to change a
JNZ (Jump if Not Zero) to
JMP (Jump Always). Bypass the check entirely!