How I Started Learning Reverse Engineering (and What I Wish I Knew First)

I spent my first month with Ghidra staring at assembly I didn’t understand, convinced I was too stupid for this. Here’s the honest version of how I got from ‘what is a register’ to solving CTF reversing challenges, and the mistakes that cost me weeks.

August 29, 2026 · 7 min · Hanh Pham

Anti-Debugging Tricks: When the Binary Fights Back

Some binaries detect that you’re debugging them and crash, change behavior, or hide the flag. This post covers the common anti-debugging techniques and how to bypass them.

August 27, 2026 · 4 min · Hanh Pham

Custom VMs in CTF: When the Binary Speaks Its Own Language

Some CTF reversing challenges hide the flag behind a custom virtual machine: a program that interprets its own bytecode. This post shows you how to spot them, reverse the instruction set, and write a solver.

August 25, 2026 · 6 min · Hanh Pham

Your First Crackme: A Walkthrough from strings to Flag

A crackme is a small binary that asks for a password and checks your input. This post walks through solving one, from downloading the binary to extracting the flag, with every tool click explained so you can follow along.

August 22, 2026 · 6 min · Hanh Pham

Ghidra in 30 Minutes: Reading Assembly Without Hating It

Ghidra’s decompiler turns machine code into something that looks like C. But the output is full of strange variable names, weird casts, and functions that look nothing like what you’d write. Here’s how to read it anyway.

August 18, 2026 · 6 min · Hanh Pham