Welcome to my personal repository of Reverse Engineering (RE), Binary Exploitation (Pwn), and Low-Level Assembly work. This repo houses writeups, custom scripts, source code, and keygens from various CTFs, wargames, and reversing challenges.
| Category | Solved | Status | Badges |
|---|---|---|---|
| ROP Emporium | 4 |
In Progress | |
| crackmes.one | 13 |
In Progress | |
| Reversing.kr | 1 |
In Progress | |
| pwnable.kr | 8 |
In Progress | |
| x86 Assembly | 7 |
In Progress |
🛠️ ROP Emporium
Return-Oriented Programming (ROP) challenges designed to master the craft of ROP chain construction on x86_64 architectures.
| Challenge | Objective / Exploit Technique | Writeup Link |
|---|---|---|
| ret2win | Stack overflow to control RIP and return directly to a hidden success function. | Writeup |
| split | Splitting execution flow to point registers and run arbitrary system commands. | Writeup |
| callme | Setting up registers to sequentially invoke multiple functions with precise multi-argument signatures. | Writeup |
| write4 | Utilizing arbitrary-write gadgets to write critical strings to writable sections (.data / .bss) before launching commands. |
Writeup |
Reverse engineering challenges focusing on static/dynamic analysis, cryptographic reversing, anti-debugging, and writing key generators.
| Challenge | Core Reversing Focus / Technique | Solved With | Solution / Writeup |
|---|---|---|---|
| Adversarial Mind | Bypassing AI-honeypot prompt injection traps to find the raw password. | IDA Pro | Writeup |
| keygenme | Reversing custom hashing and bit-shifting routines to write a key generator. | Ghidra & Python | Keygen / Writeup |
| CrackMeBaby2 | Deep-dive reverse engineering of multi-stage password checks. | Static Analysis | Writeup |
| FirstCrackMe | Basic password comparison logic checks. | Static Analysis | Writeup |
| lafarges_crackme_2 | Reversing Windows PE executables and checking internal structures. | Ghidra | Writeup |
| first golang crackme | Reversing Go's unique calling conventions, slice descriptors, and runtime. | Ghidra | Writeup |
| easy_reverse | Basic binary analysis and disassembly inspection. | GDB | Writeup |
| basik | Standard library string manipulation and comparison routines. | Radare2 | Writeup |
| CrackMe with password | Static string extraction and logic checking. | Strings / GDB | Writeup |
| EasiestEver | Basic control flow and password check bypass. | Static Analysis | Writeup |
| crackc_by_pride | Analyzing C-style string comparison flow. | Decompiler | Writeup |
| CrackMe_V3_Marquire | Logic reconstruction and memory comparison check. | Ghidra | Writeup |
| my first crackme | Reviewing static validation checks. | Static Analysis | Writeup |
Windows and Linux reversing challenges focusing on debugger-assisted static and dynamic analysis.
| Challenge | Core Reversing Focus / Technique | Solved With | Solution / Writeup |
|---|---|---|---|
| Easy Crack | Step-by-step memory inspection and API breakpoints (GetDlgItemTextA) |
x32dbg | Writeup |
Exploiting memory safety issues and logical errors on Linux-based CTF wargames.
| Challenge | Vulnerability / Exploit Focus | Solved With | Solution / Writeup |
|---|---|---|---|
| fd | Linux File Descriptors hijacking (stdin redirection) in C. |
C logic review | Writeup |
| collision | Hash collision vulnerability (calculating unsigned int sums in memory). | Python math | Writeup |
| bof | Stack buffer overflow overwriting adjacent local variable checks. | Python / pwntools | Writeup |
| flag | Decompressing and unpacking UPX-packed binaries to reverse statically-linked code. | UPX / GDB | Writeup |
| passcode | Memory corruption via GOT (Global Offset Table) overwrite. | GDB / pwntools | Writeup |
| random | Weak pseudo-random number generator exploiting predictable seeds. | C static analysis | Writeup |
| input | Argument parsing, piping stdin/stderr, socket programming, env variables, and signals. | Python socket / subprocess | Solve Script / Writeup |
| leg | Reading ARM assembly program counter (PC) register offsets. | ARM register math | Writeup |
Bare-metal x86 and x86_64 Assembly programs built from scratch.
| Project | Assembly Concepts covered | Primary File |
|---|---|---|
| Conditions-and-jumping | Branching logic and conditional jumps (cmp, je, jne, jg, jl). |
Source Code |
| calculator | Basic arithmetic registers, division, and system calls. | Source Code |
| exabyte | Register sizing, quadword manipulation, and byte ordering layouts. | Source Code |
| hello world | Boilerplate NASM file structure and write system call. | Source Code |
| kick | General register move instructions and execution flow control. | Source Code |
| move | Register-to-memory moving operations (mov). |
Source Code |
| project | NASM project configuration, custom debug outputs, and Makefiles. | Source Code |
These are the primary tools used throughout the solutions in this repository:
| Tool Category | Software / Libraries | Description |
|---|---|---|
| Decompilers / Disassemblers | Ghidra, IDA Pro, radare2 / Cutter | Static binary code analysis, structure recovery, and control flow analysis. |
| Debuggers | GDB + pwndbg / gef |
Dynamic analysis, stack tracing, memory inspection, and register tracking. |
| Exploitation | pwntools (Python 3) | Writing robust exploit scripts, interactively piping sockets, and shellcode packing. |
| Low-Level Tools | nasm, gcc, make, checksec, UPX | Writing, building, securing, and unpacking binaries. |