I/O Multiplexing, Explained Visually: select, poll, and epoll
How one thread can wait on thousands of sockets at once — animated diagrams, a working epoll server, and the pitfalls that bite in production.
Databases, Operating Systems & Security
I write about databases, operating systems, distributed systems, and security — practical notes from things I learn, build, and break.
How one thread can wait on thousands of sockets at once — animated diagrams, a working epoll server, and the pitfalls that bite in production.
Run a malware sample in a controlled lab and trace its behavior with Wireshark, Procmon, and INetSim.
Inspect a suspicious binary without executing it using hashes, strings, FLOSS, PEview, and PEStudio.
Abuse SeBackup and SeRestore to dump the SAM and SYSTEM hives and escalate to Administrator.
A tour of x86 execution modes, from real-address and protected mode to SMM and long mode.
Use msconfig's auto-elevation to get a high-integrity shell without triggering a UAC prompt.
A walkthrough of classic shellcode injection with OpenProcess, VirtualAllocEx, WriteProcessMemory, and CreateRemoteThread.
Create and disguise a malicious Windows service to keep access across reboots.
Hijack a shortcut file so a user's click quietly launches a backdoor first.
Hide Windows API calls behind dynamically resolved function pointers to frustrate static analysis.
Local, remote, and dynamic SSH tunnels explained with practical pivoting examples.
Request service tickets for accounts with SPNs and crack their passwords offline — a classic Active Directory attack.
Encrypt shellcode with a simple XOR routine, then decrypt it at runtime to frustrate signature-based detection.
Place a shellcode byte array in the .text or .data section of a PE, then load and execute it from a small C++ harness.
A side-by-side look at Intel and AT&T assembly syntax, and how to read the same instructions in both.
A practical collection of GDB commands for breakpoints, stepping, memory inspection, and debugging.