• 🧰 macOS virtual memory management APIs usage demo

    This is a short post about using vm_* (vm_read, vm_write, vm_protect) APIs on macOS to patch a process at runtime.

  • Extracting and decrypting audiobooks 📚 from an iOS app

    Disclaimer: I do not support piracy. In this post, I’m not gonna share any real encryption keys or even the name of the app. The primary purpose of this project was to improve my reverse engineering skills.

  • Working with USB through IOKit on a jailbroken iOS 📱

    Some time ago, as part of a new hobby, I bought a telescope 🔭 (Newtonian reflector), and some additional eyepieces… and filters… and a motor drive for the mount… and an astronomy USB camera 😬. Hey, you need all this stuff, seriously! For the whole setup to be more or less portable, I needed something to capture the pictures (or have a simple live view) other than a laptop. iPhone is a great choice! Unfortunately, it’s not possible to connect any arbitrary USB device without a special MFI chip. But that is not a problem if you have a jailbroken device. Luckily I have a couple 😅.

  • Running arm64 code on your Intel Mac 🖥 using Unicorn emulator

    Unicorn is a lightweight multi-platform, multi-architecture CPU emulator framework™ - official website. How is it useful? I’ve used it to trace and analyze heavily obfuscated and deeply nested code parts in iOS arm64 binaries. So it can be a very nice tool to help with some dynamic code analysis. You can run the code compiled for architecture that differs from your host computer and instantly see the results.

  • Bypassing simple jailbreak detection with a Cydia Substrate patch

    In this post I will describe how one can write a custom Cydia Substrate run-time patch to modify the behavior of an iOS app.

  • Debugging 3rd party apps, part II: Android

    This is the second part of my step-by-step tutorial on debugging 3rd party apps. In this part, I will focus on Android. The first part, on iOS, can be found here.

  • Debugging 3rd party apps, part I: iOS

    Recently I’ve done a talk about debugging 3rd party apps on both platforms: iOS and Android, also made a step-by-step demo. After the talk, I decided to write a blog post about the same topic, so here it is. This part will focus on iOS, and in the next one, I will continue with Android.