XNU IPC - Introduction to OOL data

This is the third article in the series covering my learnings and experiments with the Interprocess Communication mechanisms in XNU. This time we’ll continue exploring APIs related to complex messages and see how to use them to transfer out-of-line data.

XNU IPC - bidirectional Mach messages

This is the second article in the series covering my learnings and experiments with the Interprocess Communication mechanisms in XNU. In this part I’ll walk you through some new Mach messages APIs and cover:

  • Bidirectional communication.
  • Complex Mach messages with type descriptors.
  • Smaller Mach API extensions along the way.

XNU IPC - Mach messages

This is the first part in a series of articles covering my learnings and experiments with the Interprocess Communication mechanisms in XNU.

Uncovering what's __hidden#

  • There are __hidden# symbols in my crash logs. What do I do?
  • Set Enable Bitcode option for your build target to NO.

Looking even online for traces of __hidden# in crash logs reveals that many iOS developers at some point had a similar exchange. This article will recap the App Store distribution, provide some background for the crash logs problem, and cover an alternative solution.

Finding offsets for cicuta_virosa

10 Feb 2021 @ModernPwner dropped a surprise on the iOS jailbreak community by sharing an
open source PoC1 of a kernel-level LPE exploit, dubbed cicuta_virosa, based on a vulnerability patched only recently in iOS 14.4. Here I’ll share how I adapted the PoC to work iPhone X on iOS 14.0.1.

Behind SwiftUI Previews @ Guardsquare

A new feature of Xcode 11, SwiftUI Previews, provides visualization and seamless editing of SwiftUI views in various environments without recompiling or re-running the application. In this blog, we look under the hood of Previews and discuss the added language features that made it possible.

Swift native method swizzling @ Guardsquare

Swift 5.1 introduces its native version of method swizzling that does not rely on Objective-C’s message passing. In this blog, we cover various aspects of the feature, starting from the language syntax to analyzing the generated code.

KVO, RxSwift, NotificationCenter - observer pattern in Swift

Observer pattern is used for one-to-many communication. Subject-object automatically notifies its observers about given state change or an event. The pattern gives a possibility to seamlessly track changes in the state of the observed entity. For instance, given a numeric property, one would be notified whenever the stored value’s been changed.