Colin Xiao
AndroidiOSPCTagsAbout

iOS

iOS and macOS reverse engineering: jailbreak detection, code signing, Objective-C/Swift, tweaks, and protocol analysis.

44 articles

  • From Device-Side Risk Detection to a Policy Closed Loop - Designing a Risk-Control SDK, Scoring Engine, and Investigation Agent

    From device-side risk detection to a policy closed loop: designing a risk-control SDK, scoring engine, and investigation agent end to end, with the setup and commands all covered.

    • iOS
    • risk-control
    • anti-fraud
    • jailbreak-detection
    • hook-detection
    • cloud-phone-detection
    • scoring-engine
    • feature-engineering
    • graph-analysis
    • policy
    • agent
    • Swift
    • Python
  • De-obfuscating an OLLVM CFF MBA BDD dylib - Reconstructing 167 Hooks Behind 223 Trampolines

    De-obfuscating an OLLVM CFF and MBA/BDD dylib, reconstructing 167 hooks hidden behind 223 trampolines to recover the real logic, with the setup and commands all covered.

    • iOS
    • OLLVM
    • control-flow-flattening
    • MBA
    • binary-decision-diagram
    • de-obfuscation
    • IDA
    • MobileSubstrate
    • hooking
    • reverse-engineering
    • ARM64
  • Swift Reverse Engineering - String Memory Layout to Recovering ChaCha20Poly1305 Plaintext, Key, and Nonce

    Swift reverse engineering from string memory layout to recovering ChaCha20-Poly1305 plaintext, key, and nonce from a running app, with the algorithm recovered in detail.

    • Swift
    • iOS
    • reverse-engineering
    • ChaCha20Poly1305
    • LLDB
    • swift-demangle
    • memory-layout
    • String
    • Data
    • CryptoKit
    • IDA
  • ιldb: A Command-Line Scripting Layer for LLDB Debugging

    ιldb, a command-line scripting layer for LLDB debugging, adding scripting and automation on top of the debugger for faster workflows, and the code traced down to the core.

    • ios
    • lldb
    • debugging
    • tooling
    • reverse-engineering
  • Reverse Engineering an iOS Device-Registration Request: Tracing Every Fingerprint Parameter

    Reverse engineering an iOS device-registration request, decoding the parameters the device sends during enrollment to register with a service, with the algorithm recovered in detail.

    • ios
    • reverse-engineering
    • frida
    • device-fingerprinting
    • risk-control
    • anti-fraud
    • objective-c
  • Analyzing the mtop Device Risk-Control SDK - Jailbreak Detection, a VMP Layer, and Multi-Stage Encryption

    Analyzing the mtop device risk-control SDK: its jailbreak detection, VMP layer, and multi-stage encryption, broken down end to end, with every step broken down clearly.

    • iOS
    • reverse-engineering
    • risk-control
    • mtop
    • device-fingerprinting
    • jailbreak-detection
    • VMP
    • encryption
    • IDA
    • Frida
  • Obfuscation Pass Analysis — Flattening

    Analyzing the control-flow flattening obfuscation pass, explaining how it breaks the CFG into a dispatcher loop and what it looks like in decompiled code.

    • ios
    • ollvm
    • llvm
    • obfuscation
    • control-flow-flattening
    • pass
    • source-analysis
    • reverse-engineering
  • Packet Capturing on iOS with Charles, Clash, and Shadowrocket

    Packet capturing on iOS with Charles, Clash, and Shadowrocket, comparing VPN-based capture setups and how to route around SSL pinning, including the pitfalls and the fix.

    • ios
    • charles
    • clash
    • shadowrocket
    • vpn
    • packet-capture
    • ssl-pinning
    • reverse-engineering
  • Hikari Source Analysis — AntiDebug

    Source analysis of Hikari's AntiDebug LLVM pass, how it injects randomized ptrace-based anti-debugging checks into iOS binaries at compile time, and the internals laid out in detail.

    • ios
    • hikari
    • llvm
    • anti-debug
    • pass
    • source-analysis
    • ptrace
    • reverse-engineering
  • Hikari Source Analysis — AntiHook

    Source analysis of Hikari's AntiHook LLVM pass, how it detects inline hooks, blocks fishhook rebinding, and guards the Objective-C runtime, for anyone reversing similar targets.

    • ios
    • hikari
    • llvm
    • anti-hook
    • inline-hook
    • fishhook
    • pass
    • source-analysis
    • reverse-engineering
  • Hikari Source Analysis — AntiClassDump

    Source analysis of Hikari's AntiClassDump LLVM pass, showing how it rewrites Objective-C method lists to defeat class-dump tooling entirely, with every step broken down clearly.

    • ios
    • hikari
    • llvm
    • obfuscation
    • anti-class-dump
    • objective-c
    • pass
    • source-analysis
    • reverse-engineering
  • Analyzing the Login Protocol of a Fitness App

    Analyzing a fitness app's login protocol, reversing its MD5, SHA1, and AES layers with Frida to reconstruct the sign and password scheme, with the algorithm recovered in detail.

    • ios
    • login
    • sign
    • md5
    • sha1
    • aes
    • frida
    • cccrypt
    • cc_md5
    • reverse-engineering
  • Analyzing an iOS App's Login `_sign` and `userpwd` Parameters

    Analyzing an iOS app's login to reverse its _sign and userpwd parameters, tracing CC_MD5 with Frida and IDA to rebuild the exact request, with the result and caveats spelled out.

    • ios
    • login
    • sign
    • md5
    • frida
    • cc_md5
    • ida
    • parameter-analysis
    • reverse-engineering
  • Reversing a Modified AES in a Mobile App - Reconstructing Bangcle laes with Frida Stalker

    Reversing a modified AES in a mobile app, reconstructing Bangcle's white-box laes cipher with Frida Stalker and IDA on ARM64 to recover the original algorithm.

    • iOS
    • reverse-engineering
    • AES
    • modified-AES
    • Bangcle
    • white-box
    • Frida
    • Stalker
    • trace
    • ARM64
    • IDA
  • Jailbreak Detection in iOS and Bypassing It with Frida

    How iOS apps detect jailbreaks and how to bypass every check with Frida, hooking stat, dyld, canOpenURL, and fork to hide the jailbreak entirely, with the analysis method shown end to end.

    • ios
    • jailbreak-detection
    • frida
    • hook
    • stat
    • dyld
    • canopenurl
    • fork
    • reverse-engineering
  • iOS App Decryption: Four Tools, My Experience

    Comparing four iOS app decryption tools, Clutch, dumpdecrypted, CrackerXI, and frida-ios-dump, with hands-on experience on when each one works best, for anyone reversing similar targets.

    • ios
    • clutch
    • dumpdecrypted
    • crackerxi
    • frida-ios-dump
    • decrypt
    • reverse-engineering
  • Configuring iOS WiFi and Proxy with Frida

    Configuring iOS Wi-Fi and proxy settings directly with Frida, driving SpringBoard's WiFikit APIs to script device network setup without ever touching the UI.

    • ios
    • frida
    • wifi
    • proxy
    • wifikit
    • springboard
    • reverse-engineering
  • A First Look at a Connected-Car App Hardened with a Commercial Packer

    A first look at a connected-car app wrapped in a commercial packer, mapping its control-flow obfuscation and SSL pinning with Frida, Objection, and Stalker.

    • ios
    • frida
    • objection
    • ssl-pinning
    • control-flow-obfuscation
    • stalker
    • reverse-engineering
  • Reverse Engineering an iOS Rhythm Game: Binary Patching, Cert-Pinning Bypass, and Mutual-TLS Interception

    Reverse engineering an iOS rhythm game: binary patching with IDA, bypassing TrustKit cert pinning, and intercepting mutual-TLS traffic to capture its API.

    • ios
    • ida
    • binary-patching
    • cert-pinning
    • trustkit
    • mutual-tls
    • lldb
    • packet-capture
    • reverse-engineering
  • Hooking objc_msgSend to Capture Objective-C Method Arguments

    Hooking objc_msgSend to capture every Objective-C method argument on ARM64, using FishHook and inline hooks to intercept message dispatch right at its core.

    • ios
    • objc_msgsend
    • objective-c
    • fishhook
    • inline-hook
    • arm64
    • reverse-engineering
  • Analyzing the Network Protocol of Mir4, a Blockchain Game

    Analyzing the network protocol of the blockchain game Mir4, digging into its Unreal Engine build to decode the Protobuf messages exchanged with the server.

    • ios
    • mir4
    • unreal-engine
    • ue4
    • protobuf
    • network-protocol
    • reverse-engineering
    • frida
    • ida
  • Anti-Disassembly on ARM64

    Anti-disassembly tricks on ARM64: building data blocks that decode as bogus instructions, and using B and DCQ to confuse IDA while keeping the code runnable.

    • arm64
    • ios
    • anti-disassembly
    • inline-assembly
    • dcq
    • bogus-control-flow
    • br
    • ret
    • ida
    • reverse-engineering
  • Locating the SM4 Encryption Key (iOS ARM64)

    Locating the SM4 encryption key in an iOS ARM64 binary, tracing the key schedule and cipher calls through the disassembly to recover the secret material.

    • ios
    • arm64
    • sm4
    • encryption
    • key-recovery
    • reverse-engineering
    • cryptography
  • A Universal iOS Anti-Anti-Debugging Tweak

    Building a universal iOS tweak that lets you tick any app in settings and bypass its anti-debugging, integrating AppList and PreferenceLoader with Dobby and HookZz.

    • ios
    • anti-debugging
    • svc
    • dobby
    • hookzz
    • mshookfunction
    • preferenceloader
    • applist
    • reverse-engineering
  • iOS Reverse Engineering End-to-End - Jailbreak Dumping and Hooking a Chat App Dice Roll

    An end-to-end iOS reversing journey: jailbreak, dump the FairPlay-encrypted binary, then hook a chat app's dice roll with method swizzling and inline hooks.

    • iOS
    • reverse-engineering
    • jailbreak
    • FairPlay
    • dumping
    • frida
    • lldb
    • IDA
    • Objective-C
    • method-swizzling
    • inline-hook
    • NSProxy
    • cycript
    • Cydia-Substrate
  • Calling iTunesStored's kbsync Remotely with A64Dbg ADCpp

    Using A64Dbg's ADCpp to call iTunesStored's kbsync remotely over LLDB, invoking an Objective-C method on-device from outside the running process, with a full walkthrough of the technique.

    • ios
    • a64dbg
    • adcpp
    • itunesstored
    • kbsync
    • remote-call
    • lldb
    • objective-c
    • reverse-engineering
  • Bypassing Anti-Debugging in an iOS App

    Bypassing an iOS app's layered anti-debugging: well-timed initialization checks, combined ptrace and svc guards, and periodic re-checks, defeated with targeted hooks.

    • ios
    • anti-debugging
    • frida-ios-dump
    • monkeydev
    • svc
    • keypatch
    • fishhook
    • reverse-engineering
  • Reversing a Messaging App on iOS (Jailbreak-Free): Red Packets, Message Revoke, and Step Count

    Reversing a messaging app jailbreak-free with MonkeyDev, hooking red packets, message revoke, and step-count spoofing without ever having to jailbreak the device.

    • ios
    • monkeydev
    • theos
    • hook
    • red-packet
    • message-revoke
    • step-count
    • reverse-engineering
  • CVE-2019-8605: From UAF to TFP0

    From use-after-free to kernel task port: a full exploit walkthrough of CVE-2019-8605, with the heap spraying and Mach ool-message tricks that turn a socket UAF into TFP0.

    • cve-2019-8605
    • ios
    • xnu
    • kernel
    • use-after-free
    • tfp0
    • socket
    • heap-spraying
    • iosurface
    • mach-ool-message
    • vulnerability-research
    • exploit-development
  • CVE-2020-27950: Kernel Memory Leak via an Uninitialized Mach Message Trailer

    A root-cause analysis of CVE-2020-27950, an iOS kernel memory leak from an uninitialized Mach message trailer, including the full PoC send and receive flow.

    • cve-2020-27950
    • ios
    • xnu
    • kernel
    • memory-leak
    • mach-message
    • bindiff
    • vulnerability-research
    • reverse-engineering
  • Reverse Engineering a Commercial Anti-Bot SDK's VMP (SGAVMP)

    Reverse engineering SGAVMP, a commercial anti-bot SDK's virtual machine: breaking its anti-F5 decompilation, string encryption, and the signature scheme it protects.

    • ios
    • vmp
    • virtual-machine-protection
    • anti-bot
    • arm64
    • ida
    • signature
    • reverse-engineering
  • iOS App Decryption with dumpdecrypted

    A practical guide to decrypting iOS apps with dumpdecrypted, covering the Mach-O injection, the codesign fix, and the otool verification steps needed to dump a clean binary.

    • ios
    • dumpdecrypted
    • decrypt
    • mach-o
    • codesign
    • otool
    • reverse-engineering
  • iOS Reverse Engineering: Environment Setup and Cracking an App's Sign Algorithm with Frida

    Setting up an iOS reverse-engineering environment from scratch, then cracking an app's sign algorithm by tracing CCCrypt and CC_MD5 with Frida to recover the key material.

    • ios
    • frida
    • frida-trace
    • cccrypt
    • cc_md5
    • md5
    • aes
    • shell-smashing
    • frida-ios-dump
    • environment-setup
    • reverse-engineering
  • Exploring the Low-Level Implementation of FishHook

    A source-level exploration of FishHook, walking the Mach-O load commands and the symbol and string tables to show exactly how it rewrites lazy GOT pointers to hook functions.

    • ios
    • fishhook
    • got
    • lazy-symbol
    • mach-o
    • symbol-table
    • hook
    • reverse-engineering
  • iOS Game Localization: Reusing Translations and Hook-Based Text Replacement

    Localizing an iOS game without touching its source code: reuse the bundled translations and drive hook-based text replacement through a dylib to swap in-game strings on the fly.

    • ios
    • localization
    • hook
    • dylib
    • translation
    • resource-patching
    • reverse-engineering
  • Bypassing Anti-Debugging in a Short-Video App on iOS

    Bypassing a short-video app's iOS anti-debugging from scratch, working through its ptrace and sysctl checks with MonkeyDev and IDA so the process stays debuggable during analysis.

    • ios
    • anti-debugging
    • ptrace
    • monkeydev
    • ida
    • sysctl
    • reverse-engineering
  • A First Look at Swift Runtime: Building an Alamofire Packet Capture Tool with Frida

    A first look at the Swift runtime by building a Frida-based packet capture tool that hooks Alamofire's request flow and defeats SSL pinning on a real device.

    • ios
    • swift
    • swift-runtime
    • frida
    • alamofire
    • ssl-pinning
    • packet-capture
    • foundation-data
    • reverse-engineering
  • Apple GSA Login — the SRP6a Variant

    Reverse engineering Apple's GSA login to document the SRP6a variant it uses, tracing the PBKDF2 key derivation and the AES steps behind Apple ID authentication straight from the binary.

    • ios
    • apple
    • gsa
    • srp6a
    • authentication
    • cryptography
    • pbkdf2
    • aes
    • reverse-engineering
  • Injecting a theos Tweak to Modify a Game's Avatar Upload and Serve an Animated GIF

    Injecting a theos tweak into an iOS game to hijack its avatar upload, swapping the request so the server serves an animated GIF instead of a static image.

    • ios
    • theos
    • tweak
    • hook
    • hopper
    • flex
    • packet-capture
    • reverse-engineering
  • iOS Code Signing, Part 2: Resource Rules, mobileprovision, and Re-signing

    Part two of the iOS code-signing deep dive: resource rules, mobileprovision, entitlements, and the exact steps to re-sign an IPA with codesign or ldid.

    • ios
    • code-signing
    • resource-rules
    • mobileprovision
    • codesign
    • ldid
    • entitlements
    • reverse-engineering
  • iOS Code Signing, Part 1: Third-Party Distribution and Signing Internals

    Part one of a two-part deep dive into iOS code signing: how FairPlay DRM, SC_Info, and CodeResources fit together and what third-party distribution means under the hood.

    • ios
    • code-signing
    • ipa
    • fairplay
    • sc_info
    • coderesources
    • jtool
    • reverse-engineering
  • Frida in Practice: Combining the API Resolver with the Interceptor

    Combining Frida's API resolver with its Interceptor to hook Objective-C methods reliably, plus method swizzling and file-monitoring tricks from a real iOS session.

    • ios
    • frida
    • apiresolver
    • interceptor
    • hook
    • objective-c
    • method-swizzling
    • file-monitoring
    • reverse-engineering
  • Frida in Practice: Intercepting sub_xxxx Functions

    A hands-on Frida tutorial on intercepting stripped sub_xxxx functions on iOS, covering NativeFunction and NativeCallback to hook targets that have no symbol names.

    • ios
    • frida
    • interceptor
    • sub_xxxx
    • nativefunction
    • nativecallback
    • reverse-engineering
  • Quickly Printing Block Parameter Signatures in Objective-C Methods with LLDB

    How to print Objective-C block parameter signatures straight from LLDB, speeding up iOS reverse engineering by recovering block types without digging through class-dump output.

    • ios
    • lldb
    • objective-c
    • block
    • class-dump
    • zlldb
    • reverse-engineering

Independent reverse engineer, available for contract work. Reach me onX (@colinxiao_lab) orTelegram (@ColinXiao666).

Published for educational and defensive purposes.