<?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>Security Notes</title>
    <link>https://blog.omiilgo.com/</link>
    <description>Recent content on Security Notes</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 20 Sep 2026 10:00:00 +0800</lastBuildDate>
    <atom:link href="https://blog.omiilgo.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Welcome to Security Notes</title>
      <link>https://blog.omiilgo.com/posts/welcome/</link>
      <pubDate>Sun, 20 Sep 2026 10:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/welcome/</guid>
      <description>Lab notes: dumps, disassembly, sanitized crashes. Network, binary, Android, iOS, OS internals.</description>
    </item>
    <item>
      <title>TLS Handshake Notes for Defenders</title>
      <link>https://blog.omiilgo.com/posts/network-tls-handshake-notes/</link>
      <pubDate>Fri, 18 Sep 2026 14:30:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/network-tls-handshake-notes/</guid>
      <description>Lab openssl s_client -msg against a loopback nginx: handshake record dump, redacted CN, alert on a bad name — not a MITM cookbook.</description>
    </item>
    <item>
      <title>ELF Symbols and Relocations, a Full `readelf` Session</title>
      <link>https://blog.omiilgo.com/posts/elf-symbol-and-relocation-basics/</link>
      <pubDate>Tue, 15 Sep 2026 09:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/elf-symbol-and-relocation-basics/</guid>
      <description>Toy PIE: readelf -s / -r / -d / -S in one sitting. .dynsym UND vs .symtab, JUMP_SLOT vs RELATIVE, how a stripped copy still names puts. gdb bind check.</description>
    </item>
    <item>
      <title>Windows Token Privileges: A Field Checklist</title>
      <link>https://blog.omiilgo.com/posts/windows-token-privilege-checklist/</link>
      <pubDate>Thu, 10 Sep 2026 16:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/windows-token-privilege-checklist/</guid>
      <description>Lab whoami /priv dump, OpenProcess notes on a process we own, integrity vs enabled privileges — no token-steal PoC.</description>
    </item>
    <item>
      <title>Financial Apps: Concurrency Bugs vs Authorization Flaws</title>
      <link>https://blog.omiilgo.com/posts/financial-apps-concurrency-vs-authz/</link>
      <pubDate>Sat, 11 Apr 2026 09:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/financial-apps-concurrency-vs-authz/</guid>
      <description>Lab SQLite ledger: UPDATE without a version column vs WITH version, plus an IDOR that is not a race — no money-drain client.</description>
    </item>
    <item>
      <title>Container Escape Class Lessons (CVE-2022-0185-Era Themes)</title>
      <link>https://blog.omiilgo.com/posts/container-escape-class-lessons/</link>
      <pubDate>Fri, 13 Feb 2026 10:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/container-escape-class-lessons/</guid>
      <description>Lab capsh &amp;ndash;print and docker inspect seccomp/AppArmor, dropped caps, failed mount — no escape exploit.</description>
    </item>
    <item>
      <title>PostgreSQL Privilege Boundaries and Extension Trust</title>
      <link>https://blog.omiilgo.com/posts/postgresql-privilege-boundaries/</link>
      <pubDate>Sat, 29 Nov 2025 12:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/postgresql-privilege-boundaries/</guid>
      <description>Lab \du dump, a safe SECURITY DEFINER function, failed GRANT, search_path notes — no superuser exploit.</description>
    </item>
    <item>
      <title>Tabnabbing, target=_blank, and Related XSS Edges</title>
      <link>https://blog.omiilgo.com/posts/tabnabbing-and-target-blank/</link>
      <pubDate>Fri, 12 Sep 2025 11:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/tabnabbing-and-target-blank/</guid>
      <description>Lab HTML: target=_blank without rel, opener check in the opened tab, rel=noopener fix, harmless location rewrite — no phishing kit.</description>
    </item>
    <item>
      <title>Java XXE Data Exfiltration Paths</title>
      <link>https://blog.omiilgo.com/posts/java-xxe-exfiltration-paths/</link>
      <pubDate>Wed, 16 Jul 2025 15:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/java-xxe-exfiltration-paths/</guid>
      <description>Lab DocumentBuilder/TransformerFactory features to disable, tiny file:// entity to a lab file, parser throws or ignores — no FTP exfil.</description>
    </item>
    <item>
      <title>Swift Mangling vs ObjC methname: Recovering Names After Strip</title>
      <link>https://blog.omiilgo.com/posts/ios-swift-vs-objc-name-recovery/</link>
      <pubDate>Fri, 21 Mar 2025 13:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/ios-swift-vs-objc-name-recovery/</guid>
      <description>Lab Swift class LabVault: $s… mangled names, xcrun swift demangle, nm before/after strip, the one @objc method that survives in __objc_methname. class-dump, lldb, ASAN. cryptid=1 stops the lab.</description>
    </item>
    <item>
      <title>NDK .so Session: readelf, llvm-objdump -d, JNI_OnLoad</title>
      <link>https://blog.omiilgo.com/posts/android-native-library-re-notes/</link>
      <pubDate>Sat, 04 Jan 2025 10:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/android-native-library-re-notes/</guid>
      <description>One lab APK, one arm64-v8a .so. file/readelf/llvm-objdump through JNI_OnLoad, Java_* exports, GetStringUTFChars, a 32-byte stack copy, tombstone and ASAN. Frida logs length and prefix only.</description>
    </item>
    <item>
      <title>YAML Parser Footguns Across Languages</title>
      <link>https://blog.omiilgo.com/posts/yaml-parser-footguns/</link>
      <pubDate>Sat, 30 Nov 2024 12:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/yaml-parser-footguns/</guid>
      <description>Lab PyYAML: yaml.safe_load vs yaml.load, implicit typing, billion-laughs-sized crash — no os.system gadget via YAML tags.</description>
    </item>
    <item>
      <title>Symbolicating a Lab Crash When UIKit Lives in the dyld Shared Cache</title>
      <link>https://blog.omiilgo.com/posts/ios-dyld-shared-cache-symbolication/</link>
      <pubDate>Mon, 19 Aug 2024 15:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/ios-dyld-shared-cache-symbolication/</guid>
      <description>Lab crash on a self-signed LabSession: dwarfdump -u, atos against the dSYM, why UIKit frames are not in nm of the app, crash report with [REDACTED] paths. No DSC extraction. cryptid=1 stops the lab.</description>
    </item>
    <item>
      <title>Android Kernel LPE Classes, at Invariant Level, Plus a Userspace TOCTOU Lab</title>
      <link>https://blog.omiilgo.com/posts/android-kernel-lpe-classes/</link>
      <pubDate>Thu, 20 Jun 2024 10:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/android-kernel-lpe-classes/</guid>
      <description>Futex, perf_event, and get_user-era Android kernel LPE classes as broken invariants. No kernel exploit code. A toy C file-TOCTOU analog, a planted strcpy, ASAN output.</description>
    </item>
    <item>
      <title>Chrome Version Fingerprinting Notes</title>
      <link>https://blog.omiilgo.com/posts/chrome-version-fingerprinting-notes/</link>
      <pubDate>Mon, 25 Mar 2024 11:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/chrome-version-fingerprinting-notes/</guid>
      <description>Lab UA / UA-CH request headers, navigator.userAgentData mock dump, nginx log_format for defenders — no exploit targeting.</description>
    </item>
    <item>
      <title>AIDL Lab Service: Parcel Layout and Native onTransact</title>
      <link>https://blog.omiilgo.com/posts/android-binder-parcel-reversing/</link>
      <pubDate>Fri, 16 Feb 2024 09:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/android-binder-parcel-reversing/</guid>
      <description>Self-built AIDL service com.lab.binder. dumpsys and logcat Binder, Parcel bytes for writeInterfaceToken + int + string, ARM64 BnEcho::onTransact. No privilege escalation.</description>
    </item>
    <item>
      <title>Frida: Java Wrapper vs JNI Interceptor on the Same Call</title>
      <link>https://blog.omiilgo.com/posts/android-frida-jni-trace-lab/</link>
      <pubDate>Mon, 04 Sep 2023 11:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/android-frida-jni-trace-lab/</guid>
      <description>Lab APK com.lab.jni.trace. Hook NativeBridge.nInit in Java.perform and the Java_* export with Interceptor.attach, then compare argument length and prefix. Console output redacted.</description>
    </item>
    <item>
      <title>Why DES and RC4 Still Matter in AD Crypto Discussions</title>
      <link>https://blog.omiilgo.com/posts/des-in-active-directory-crypto/</link>
      <pubDate>Tue, 08 Aug 2023 11:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/des-in-active-directory-crypto/</guid>
      <description>Lab klist encryption types, supported-etype table, GPO &amp;lsquo;Configure encryption types allowed for Kerberos&amp;rsquo; — inventory, not cracking.</description>
    </item>
    <item>
      <title>Web Race Conditions: Coupons, Balances, and Workflows</title>
      <link>https://blog.omiilgo.com/posts/web-race-conditions-notes/</link>
      <pubDate>Fri, 19 May 2023 15:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/web-race-conditions-notes/</guid>
      <description>Lab Go counter without a mutex, then with one; HTTP coupon handler; lost-update logs — no inventory-drain exploit script.</description>
    </item>
    <item>
      <title>Entitlements and the Simulator Sandbox on a Lab iOS App</title>
      <link>https://blog.omiilgo.com/posts/ios-entitlements-and-sandbox/</link>
      <pubDate>Thu, 06 Apr 2023 10:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/ios-entitlements-and-sandbox/</guid>
      <description>codesign -d &amp;ndash;entitlements on a self-signed LabSession: get-task-allow, redacted application-identifier, container paths on the simulator, sandbox-exec, deny logs when a file read walks outside the container. cryptid=1 stops the lab.</description>
    </item>
    <item>
      <title>Kerberos Ticket Times and Checksums for Forensics</title>
      <link>https://blog.omiilgo.com/posts/kerberos-ticket-times-and-checksums/</link>
      <pubDate>Tue, 14 Mar 2023 14:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/kerberos-ticket-times-and-checksums/</guid>
      <description>Lab klist dump, field-by-field decode of times and checksum types, clock-skew 401 — no ticket-forging steps.</description>
    </item>
    <item>
      <title>V8 Security Surface Notes for Defenders</title>
      <link>https://blog.omiilgo.com/posts/v8-security-surface-notes/</link>
      <pubDate>Tue, 17 Jan 2023 12:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/v8-security-surface-notes/</guid>
      <description>d8 toy typed-array lab, LAB_ASSERT bounds throw, optional &amp;ndash;allow-natives-syntax DebugPrint — a crash, not an exploit.</description>
    </item>
    <item>
      <title>apktool Smali: if-eqz Chains That Want to Be a switch</title>
      <link>https://blog.omiilgo.com/posts/android-smali-control-flow-notes/</link>
      <pubDate>Tue, 08 Nov 2022 14:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/android-smali-control-flow-notes/</guid>
      <description>Lab APK with packed-looking if-eqz obfuscation around a 5-way dispatch. apktool smali, jadx Java, reconstruct a packed-switch, plus a planted stack copy crash. Not a commercial packer unpack.</description>
    </item>
    <item>
      <title>Print Spooler LPE Class Lessons for Operators</title>
      <link>https://blog.omiilgo.com/posts/print-spooler-lpe-class-lessons/</link>
      <pubDate>Tue, 27 Sep 2022 10:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/print-spooler-lpe-class-lessons/</guid>
      <description>Lab spooler service ACL and RPC interface dump, Point-and-Print registry, 7036/808 logs — no spool exploit.</description>
    </item>
    <item>
      <title>Walking .init_array on a Toy Packed ELF</title>
      <link>https://blog.omiilgo.com/posts/packed-elf-init-array-dump/</link>
      <pubDate>Mon, 18 Jul 2022 09:30:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/packed-elf-init-array-dump/</guid>
      <description>Lab stub that mprotects RWX, XOR-decodes a 32-byte .text blob, restores r-x, then returns into real code. readelf of .init_array and PT_GNU_STACK, gdb break on mprotect, dump of the r-x region.</description>
    </item>
    <item>
      <title>Apache HTTP Path Confusion Notes (CVE-2021-41773 Class)</title>
      <link>https://blog.omiilgo.com/posts/apache-http-path-confusion-notes/</link>
      <pubDate>Sat, 11 Jun 2022 13:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/apache-http-path-confusion-notes/</guid>
      <description>Lab Apache Alias map: raw vs normalized paths as text, Require/Alias mismatch, 403/404 artifacts — no working traversal into /etc.</description>
    </item>
    <item>
      <title>NTLM Relay Defense Notes: Signing, EPA, and SMB/LDAP Controls</title>
      <link>https://blog.omiilgo.com/posts/ntlm-relay-defense-notes/</link>
      <pubDate>Mon, 09 May 2022 16:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/ntlm-relay-defense-notes/</guid>
      <description>Lab registry/GPO signing dumps, Wireshark NTLM field names, failed-auth 4625 — no relay tool command line that fires.</description>
    </item>
    <item>
      <title>Dirty Pipe Class Analysis for Defenders</title>
      <link>https://blog.omiilgo.com/posts/dirty-pipe-class-analysis/</link>
      <pubDate>Thu, 03 Mar 2022 10:30:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/dirty-pipe-class-analysis/</guid>
      <description>Toy splice/pipe lab on a temp file we own, uname -r vs CVE-2022-0847, SIGSEGV on a PROT_READ map — not a setuid hijack.</description>
    </item>
    <item>
      <title>Lessons from the JNDI / Log4Shell Class of Bugs</title>
      <link>https://blog.omiilgo.com/posts/jndi-injection-class-lessons/</link>
      <pubDate>Fri, 28 Jan 2022 10:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/jndi-injection-class-lessons/</guid>
      <description>Lab Java snippet that logs a lookup string, how to disable JNDI/message lookups, sanitized crash on a bad URL — no LDAP exploit server.</description>
    </item>
    <item>
      <title>sAMAccountName Impersonation Class (CVE-2021-42278 / CVE-2021-42287)</title>
      <link>https://blog.omiilgo.com/posts/samaccountname-impersonation-class/</link>
      <pubDate>Sat, 11 Dec 2021 12:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/samaccountname-impersonation-class/</guid>
      <description>Lab event 4742/4768 samples redacted, computer-account naming checks, patch verification — no noPac exploit.</description>
    </item>
    <item>
      <title>Reversing objc_msgSend on a Self-Signed arm64 Mach-O</title>
      <link>https://blog.omiilgo.com/posts/ios-objc-msgsend-reversing/</link>
      <pubDate>Wed, 27 Oct 2021 16:40:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/ios-objc-msgsend-reversing/</guid>
      <description>otool load commands, class-dump selectors, lldb break on objc_msgSend, recover IMP for -[LabSession startWithToken:], redacted argument log. FairPlay-encrypted App Store bins are out of scope.</description>
    </item>
    <item>
      <title>Binary Auditing Checklist, Filled on a Toy ELF</title>
      <link>https://blog.omiilgo.com/posts/binary-auditing-checklist/</link>
      <pubDate>Sat, 21 Aug 2021 16:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/binary-auditing-checklist/</guid>
      <description>First-pass checklist actually filled: checksec + readelf + objdump on a 60-line toy with gets/sprintf/printf(user). One-pager of mitigations, sinks, and the ASan crash.</description>
    </item>
    <item>
      <title>Finding Hidden JNI Methods: RegisterNatives in a Lab APK</title>
      <link>https://blog.omiilgo.com/posts/android-jni-registernatives-lab/</link>
      <pubDate>Wed, 09 Jun 2021 14:10:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/android-jni-registernatives-lab/</guid>
      <description>APK where nm -D shows no Java_* exports. Walk JNI_OnLoad, recover the JNINativeMethod table, map Java names to ARM64 IMPs, Frida-trace the native with arguments redacted.</description>
    </item>
    <item>
      <title>Windows Delegation Edge Cases: Constrained, Unconstrained, and RBCD</title>
      <link>https://blog.omiilgo.com/posts/windows-delegation-edge-cases/</link>
      <pubDate>Mon, 17 May 2021 15:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/windows-delegation-edge-cases/</guid>
      <description>Lab klist/setspn dumps redacted, unconstrained vs constrained vs RBCD text diagrams — flags and ACLs, not an abuse chain.</description>
    </item>
    <item>
      <title>DOM XSS and DOM Clobbering as Trust Problems</title>
      <link>https://blog.omiilgo.com/posts/dom-xss-and-dom-clobbering/</link>
      <pubDate>Wed, 14 Apr 2021 16:20:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/dom-xss-and-dom-clobbering/</guid>
      <description>Lab HTML+JS page: location.hash into innerHTML, name=form clobber of a config object, harmless redacted payload, CSP as the fix.</description>
    </item>
    <item>
      <title>Recovering a C&#43;&#43; Vtable From ARM64/x64 Disassembly</title>
      <link>https://blog.omiilgo.com/posts/cpp-vtable-recovery-from-disassembly/</link>
      <pubDate>Thu, 11 Mar 2021 10:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/cpp-vtable-recovery-from-disassembly/</guid>
      <description>Two-class toy hierarchy, virtual dtor plus two methods. objdump/readelf of the compiler vtable, ctor writing the vptr, virtual call through [x0,#16], gdb print of the slot.</description>
    </item>
    <item>
      <title>ROP vs ret2libc: Classifying `ret` Sites on a Toy Binary</title>
      <link>https://blog.omiilgo.com/posts/rop-versus-ret2libc-mental-model/</link>
      <pubDate>Tue, 09 Feb 2021 14:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/rop-versus-ret2libc-mental-model/</guid>
      <description>Mental model plus objdump of a toy: ret2libc is whole-function reuse, ROP is fragment reuse. Classify epilogue rets vs pop;ret vs leave;ret. Overflow crash with RIP=0x4141… — no system(&amp;quot;/bin/sh&amp;quot;) chain.</description>
    </item>
    <item>
      <title>Active Directory Recon Notes: What Enumerations Reveal</title>
      <link>https://blog.omiilgo.com/posts/active-directory-recon-notes/</link>
      <pubDate>Tue, 10 Nov 2020 13:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/active-directory-recon-notes/</guid>
      <description>Fake lab DC ldapsearch and PowerView-style listings, 4662/1644/4624 event IDs — inventory, not an attack playbook.</description>
    </item>
    <item>
      <title>Command Injection Taxonomy for Code Review</title>
      <link>https://blog.omiilgo.com/posts/command-injection-taxonomy/</link>
      <pubDate>Sat, 05 Sep 2020 14:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/command-injection-taxonomy/</guid>
      <description>Lab Python ping wrapper: subprocess shell=True vs argv list, dangerous call, the fix, ASAN-irrelevant crash on a C popen helper — no reverse shell.</description>
    </item>
    <item>
      <title>AArch64 Calling Convention, as Read in IDA</title>
      <link>https://blog.omiilgo.com/posts/arm64-calling-convention-for-reversers/</link>
      <pubDate>Mon, 03 Aug 2020 13:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/arm64-calling-convention-for-reversers/</guid>
      <description>AAPCS64 as it shows up in IDA: x0–x7, x29/x30, 16-byte SP, PACIBSP. Toy function with nine integer args so the ninth is on the stack. objdump of prologue and epilogue.</description>
    </item>
    <item>
      <title>Reading RELRO, GOT, and PLT on a PIE Lab Binary</title>
      <link>https://blog.omiilgo.com/posts/relro-got-plt-reading-notes/</link>
      <pubDate>Mon, 15 Jun 2020 09:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/relro-got-plt-reading-notes/</guid>
      <description>Partial vs Full RELRO measured on one toy: readelf FLAGS/GNU_RELRO, objdump of puts@plt, gdb GOT slot before and after bind, /proc maps of .got.plt. Companion to the lazy-binding lab.</description>
    </item>
    <item>
      <title>ELF GOT/PLT Lazy Binding, Read From a PIE Lab Binary</title>
      <link>https://blog.omiilgo.com/posts/elf-got-plt-lazy-binding-lab/</link>
      <pubDate>Wed, 22 Apr 2020 11:20:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/elf-got-plt-lazy-binding-lab/</guid>
      <description>Lab walkthrough of lazy PLT binding on a PIE: readelf, objdump, GOT slot before/after the first call, Partial vs Full RELRO.</description>
    </item>
    <item>
      <title>Kerberos Constrained Delegation Map for Analysts</title>
      <link>https://blog.omiilgo.com/posts/kerberos-constrained-delegation-map/</link>
      <pubDate>Tue, 17 Mar 2020 11:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/kerberos-constrained-delegation-map/</guid>
      <description>Lab klist and setspn dumps redacted, constrained-delegation allow-list map — no ticket forging, no S4U abuse.</description>
    </item>
    <item>
      <title>SQL Injection Probing Methodology for Analysts</title>
      <link>https://blog.omiilgo.com/posts/sql-injection-probing-methodology/</link>
      <pubDate>Tue, 18 Feb 2020 09:30:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/sql-injection-probing-methodology/</guid>
      <description>Lab Flask+SQLite app: concatenated vs parameterized queries, SQL logs, WAF noise, ASAN-irrelevant crash on the concat path — no production DB dump.</description>
    </item>
    <item>
      <title>Walking Mach-O Load Commands on a Self-Signed arm64 Lab Binary</title>
      <link>https://blog.omiilgo.com/posts/ios-macho-load-commands-lab/</link>
      <pubDate>Thu, 16 Jan 2020 11:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/ios-macho-load-commands-lab/</guid>
      <description>Full otool -l walk of a self-signed LabSession: mach_header_64, LC_SEGMENT_64 __TEXT/__DATA, LC_LOAD_DYLIB, LC_CODE_SIGNATURE, LC_ENCRYPTION_INFO_64 cryptid=0. size -x, nm, class-dump, lldb. cryptid=1 stops the lab.</description>
    </item>
    <item>
      <title>JNI_OnLoad vs Java_* Name Mangling on a Lab APK</title>
      <link>https://blog.omiilgo.com/posts/android-jni-onload-name-mangling/</link>
      <pubDate>Mon, 02 Dec 2019 10:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/android-jni-onload-name-mangling/</guid>
      <description>Self-built APK where javah-style Java_com_lab_onload_Bridge_* exports sit next to a RegisterNatives table. readelf -s, ARM64 JNIEnv GetObjectClass, crash on an unbounded UTF copy.</description>
    </item>
    <item>
      <title>ASLR, PIE Bias, and a Lab Pointer Leak</title>
      <link>https://blog.omiilgo.com/posts/aslr-and-information-leaks/</link>
      <pubDate>Wed, 20 Nov 2019 11:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/aslr-and-information-leaks/</guid>
      <description>/proc/self/maps across runs, gdb measurement of PIE load bias, a toy %p leak of a text pointer. Entropy is what remains after the leak — no exploit chain.</description>
    </item>
    <item>
      <title>Linux LKM and Syscall Hooking Concepts for Defenders</title>
      <link>https://blog.omiilgo.com/posts/linux-lkm-and-syscall-hooking-concepts/</link>
      <pubDate>Sat, 14 Sep 2019 10:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/linux-lkm-and-syscall-hooking-concepts/</guid>
      <description>Lab LKM that logs openat on a VM, insmod/rmmod, dmesg artifacts — module does not hide files or hook the table for concealment.</description>
    </item>
    <item>
      <title>JWT Failure Modes Defenders Still See</title>
      <link>https://blog.omiilgo.com/posts/jwt-failure-modes-for-defenders/</link>
      <pubDate>Mon, 22 Jul 2019 11:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/jwt-failure-modes-for-defenders/</guid>
      <description>Lab JWT verifier in Go: decoded header/payload dumps, alg=none rejected, wrong aud rejected, HS256 with a lab secret — no forged production tokens.</description>
    </item>
    <item>
      <title>Format String Lab: Leak, Crash, and the %s Patch</title>
      <link>https://blog.omiilgo.com/posts/format-string-vulnerability-patterns/</link>
      <pubDate>Wed, 08 May 2019 15:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/format-string-vulnerability-patterns/</guid>
      <description>Toy printf(user) lab: gdb dump of stack words matching a %p leak (canary included conceptually), SIGSEGV from %s, ASan on a sprintf companion, patched printf(&amp;quot;%s&amp;quot;, user).</description>
    </item>
    <item>
      <title>HTTP Request Smuggling: A Defender Mental Model</title>
      <link>https://blog.omiilgo.com/posts/http-request-smuggling-mental-model/</link>
      <pubDate>Tue, 12 Mar 2019 10:00:00 +0800</pubDate>
      <guid>https://blog.omiilgo.com/posts/http-request-smuggling-mental-model/</guid>
      <description>Lab walkthrough of HTTP/1.1 framing disagreement: raw frames, nginx vs Python http.server parse notes, sanitized logs, hop-boundary hardening.</description>
    </item>
    <item>
      <title>About</title>
      <link>https://blog.omiilgo.com/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://blog.omiilgo.com/about/</guid>
      <description>About Jose Adalberto Gutierrez Ochoa</description>
    </item>
  </channel>
</rss>
