<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Reverse-Engineering on Hanh Pham's Blog</title><link>https://hanh.me/tags/reverse-engineering/</link><description>Recent content in Reverse-Engineering on Hanh Pham's Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 23 Oct 2026 09:53:53 +0700</lastBuildDate><atom:link href="https://hanh.me/tags/reverse-engineering/index.xml" rel="self" type="application/rss+xml"/><item><title>REA: An Introduction, and the Game-Reversing Scene It Arrived In</title><link>https://hanh.me/posts/rea-capability-review/</link><pubDate>Thu, 15 Oct 2026 15:00:00 +0700</pubDate><guid>https://hanh.me/posts/rea-capability-review/</guid><description>Every result the tool returns carries its own confidence, its authority, and its limits, which is the discipline a claim about a shipped game needs. What REA is, and what people are using it for, from a PC-98 bullet pattern to PS5 executables relinked into native ports.</description></item><item><title>Under the Hood of REA: Evidence Ids, Refusals, and a Four-Gigabyte Ceiling</title><link>https://hanh.me/posts/rea-under-the-hood/</link><pubDate>Thu, 15 Oct 2026 09:00:00 +0700</pubDate><guid>https://hanh.me/posts/rea-under-the-hood/</guid><description>The refusal was more useful than the analysis would have been. Inside REA: how an evidence id is computed so two machines agree, why a zero can mean the question was never asked, and the 3 MB file that exhausted Node&amp;rsquo;s default heap.</description></item><item><title>The Reachable Surface: WebKit and the App Layer</title><link>https://hanh.me/posts/ios-webkit-and-app-layer/</link><pubDate>Sat, 10 Oct 2026 09:30:00 +0700</pubDate><guid>https://hanh.me/posts/ios-webkit-and-app-layer/</guid><description>WebKit and the app layer are the Apple surfaces you can actually study without a research device. How the browser&amp;rsquo;s processes are isolated from each other, what crosses between them, and where a third-party app&amp;rsquo;s own checks sit relative to the server&amp;rsquo;s.</description></item><item><title>Read the Fix First: A Patch-Margin Method for XNU Research</title><link>https://hanh.me/posts/xnu-patch-margin-research/</link><pubDate>Fri, 09 Oct 2026 09:30:00 +0700</pubDate><guid>https://hanh.me/posts/xnu-patch-margin-research/</guid><description>A source-first method for Apple kernel research: diff consecutive XNU tags, mine the regression tests that ship with the fixes, map sibling call sites, and rank candidates by how well they survive Memory Integrity Enforcement. Four evidence gates, a safe workflow, and the stop conditions that keep this work honest.</description></item><item><title>Reading iOS Without a Jailbreak: Mach-O, dyld, and Shared Cache Topology</title><link>https://hanh.me/posts/ios-reversing-mach-o-dyld-shared-cache/</link><pubDate>Fri, 09 Oct 2026 09:00:00 +0700</pubDate><guid>https://hanh.me/posts/ios-reversing-mach-o-dyld-shared-cache/</guid><description>iOS system libraries ship inside one dyld shared cache instead of on disk, and a fat Mach-O will happily hand you the wrong architecture without an error. Here is the static workflow that reads headers, metadata, and topology before you open a decompiler.</description></item><item><title>iOS Is Not One Boundary: From App Sandbox to Secure Enclave</title><link>https://hanh.me/posts/ios-architecture-from-sandbox-to-secure-enclave/</link><pubDate>Wed, 07 Oct 2026 10:00:00 +0700</pubDate><guid>https://hanh.me/posts/ios-architecture-from-sandbox-to-secure-enclave/</guid><description>A boundary-first map of the iOS stack, from app sandbox and XPC through XNU subsystems to PAC, SPTM, and the Secure Enclave, with the evidence gates I use before calling anything a finding.</description></item><item><title>How I Started Learning Reverse Engineering (and What I Wish I Knew First)</title><link>https://hanh.me/posts/how-i-started-learning-reverse-engineering/</link><pubDate>Sat, 29 Aug 2026 15:00:00 +0700</pubDate><guid>https://hanh.me/posts/how-i-started-learning-reverse-engineering/</guid><description>I spent my first month with Ghidra staring at assembly I didn&amp;rsquo;t understand, convinced I was too stupid for this. Here&amp;rsquo;s the honest version of how I got from &amp;lsquo;what is a register&amp;rsquo; to solving CTF reversing challenges, and the mistakes that cost me weeks.</description></item><item><title>Anti-Debugging Tricks: When the Binary Fights Back</title><link>https://hanh.me/posts/anti-debugging-tricks/</link><pubDate>Thu, 27 Aug 2026 11:00:00 +0700</pubDate><guid>https://hanh.me/posts/anti-debugging-tricks/</guid><description>Some binaries detect that you&amp;rsquo;re debugging them and crash, change behavior, or hide the flag. This post covers the common anti-debugging techniques and how to bypass them.</description></item><item><title>Custom VMs in CTF: When the Binary Speaks Its Own Language</title><link>https://hanh.me/posts/custom-vms-in-ctf/</link><pubDate>Tue, 25 Aug 2026 10:00:00 +0700</pubDate><guid>https://hanh.me/posts/custom-vms-in-ctf/</guid><description>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.</description></item><item><title>Your First Crackme: A Walkthrough from strings to Flag</title><link>https://hanh.me/posts/your-first-crackme-walkthrough/</link><pubDate>Sat, 22 Aug 2026 14:00:00 +0700</pubDate><guid>https://hanh.me/posts/your-first-crackme-walkthrough/</guid><description>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.</description></item><item><title>Ghidra in 30 Minutes: Reading Assembly Without Hating It</title><link>https://hanh.me/posts/ghidra-in-30-minutes/</link><pubDate>Tue, 18 Aug 2026 11:00:00 +0700</pubDate><guid>https://hanh.me/posts/ghidra-in-30-minutes/</guid><description>Ghidra&amp;rsquo;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&amp;rsquo;d write. Here&amp;rsquo;s how to read it anyway.</description></item></channel></rss>