Hi there

SYS: ONLINE / > DISTRIBUTED SYSTEMS & BINARY REVERSING / ⚡ REVERSING & CLOUD-NATIVE DEEP DIVES

Continuous learning and adapting.

zsh: hanh@home (tty1) interactive
hanh@home:~$ whoami
hanh
hanh@home:~$ cat aboutme.md
Notes on Go, reverse engineering, and distributed systems.
hanh@home:~$
hanh@home 📁 ~/blog/posts ⎇ main ❯ ls -la

Design for Daily, Measure Delivery

Baidu wants Daily Active Agents to replace DAU. The instinct is right, the number is not, and the difference is the denominator.

October 31, 2026 · 6 min · Hanh Pham

How to Trust a Coding Agent: Read the Logs, Not the Summary

A monitor said nothing to notify for six days while the thing it watched was down, and it was technically right: a repeat is not news. Coding agents compress work into claims the same way, which is why trust is the cost of the check that would catch the claim being wrong.

October 31, 2026 · 10 min · Hanh Pham

The Narrow Pool

A reported ten-million-yuan salary for a 29-year-old researcher is not a celebrity story. It is a price signal from a market with very few sellers.

October 30, 2026 · 5 min · Hanh Pham

My IDE-less Coding Workflow

Five editors, one demo that broke at the worst moment, and the workflow that replaced the one I spent years configuring.

October 29, 2026 · 10 min · Hanh Pham

Flare-On 13 Part 5: A Wasm Pratt Certificate and a Monkey-Patched V8

Two runtimes I did not control: a garble-obfuscated Go WebAssembly module gated by a canonical Pratt primality certificate that has to be rebuilt byte for byte, and a Tauri 2.0 binary that ships its own V8 and replaces Array.sort, Math.min and String.replaceAll with native hooks.

October 29, 2026 · 14 min · Hanh Pham

The Year AI Broke the Internet

A $200 subscription and about ten hours of agent time produced a pre-authentication SQL injection and a full RCE chain in WordPress core. Two of the three shells this year have a published account of machine help behind them, and the third was found by a person, which is the part a headline about AI usually gets wrong.

October 28, 2026 · 13 min · Hanh Pham

Inside FlareCalc: 1,035 Encrypted ASN.1 Entries and a 32-Step Labyrinth

Challenge 07 of Flare-On 13 keeps 1,035 encrypted ASN.1 entries in the PE overlay: seven layers of decoys, an x86 stall loop whose million iterations cancel algebraically, and a 32-step walk over 700 near-identical stubs that ends in an XTEA decryption.

October 28, 2026 · 11 min · Hanh Pham

ThreatInvaders: A Patched CoreCLR JIT and a C2 Stream That Never Re-keys

The implant in Flare-On 13’s sixth challenge is not in the C# at all: it is a patched ICorJitCompiler::compileMethod that hooks five methods by 64-bit polynomial hash, driving a 64-bit LCG stream whose state never resets between HTTP requests.

October 27, 2026 · 12 min · Hanh Pham

Flare-On 13 Part 2: A Patched SHA-256d, a Vanity Volume Serial, and a Hand-Rolled Huffman Decoder

A 32-round SHA-256 whose Ch and Maj functions were rewritten, keyed off a 32-bit volume serial that spells ICE COLD in leetspeak, and a 264-byte RC4 keystream reused as a two-time pad before five JPEGs come back out of a custom canonical Huffman bitstream.

October 26, 2026 · 13 min · Hanh Pham

Flare-On 13 Part 1: Polyglots, Hidden Streams, and In-Memory Traps

The first three Flare-On 13 challenges keep the flag in the container rather than the code: a right-click timer over an alternating XOR stream, an NTFS alternate data stream behind a seven-day uptime gate, and a 12 MB polyglot whose five layers only come apart once you strip the CD sector geometry.

October 25, 2026 · 15 min · Hanh Pham