Lecture Content (Paste this into the Gutenberg Editor):
[SYSTEM BRIEFING]
TARGET: DATA REPRESENTATION
INTEL TYPE: LOW-LEVEL ABSTRACTION
CLEARANCE: TIER 01
To a computer, everything is a switch: ON (1) or OFF (0). As a Reverse Engineer, you rarely look at bits. You look at Hexadecimal, the shorthand language of memory. If you cannot “read” Hex, you are blind in the world of binaries.
0x01: The Hexadecimal Shorthand
Why do we use Hex (Base-16) instead of Decimal (Base-10)? Because 1 Byte (8 bits) can be represented by exactly two Hex characters.
- Binary:
1111 1111(Hard to read) - Decimal:
255(Doesn’t align with memory) - Hex:
0xFF(Clean, precise, professional)
0x02: Memory Visualization
When you open a file in a Hex Editor (like HxD or 010 Editor), you see a grid of numbers. This is a snapshot of the machine’s “brain.”
- Left Column: The Offset (The “Address” where data lives).
- Middle Column: The Hex Dump (The raw instructions/data).
- Right Column: The ASCII String (Human-readable text hidden in the binary).
0x03: The Endianness Problem
One of the most common “bugs” for beginners is Endianness. It’s the order in which bytes are stored in memory.
- Big-Endian: Standard “Human” order.
- Little-Endian: x86/x64 systems (Intel/AMD) store the least significant byte first.
Example: The value
0x12345678is stored as78 56 34 12in your RAM. If you don’t know this, you will misread every memory address you find.
The Mission Checkpoint (With “Explain” Logic)
Paste this into a Custom HTML block at the bottom. This challenge tests their ability to do basic Hex-to-Decimal conversion—a skill they will use every single day in the lab.
TERMINAL_CHALLENGE // p1.1
Convert the following Hexadecimal value to Decimal: 0x10
In Hex (Base-16), digits go 0-9 and then A-F (10-15).
The position of the ‘1’ in ’10’ represents the 16s place.
Calculation: (1 * 16^1) + (0 * 16^0) = ?
