macOS posts

← Back to blog

Deep dive into ptrace internals, from syscall to kernel implementation, understanding how it prevents debugger attachment and how to bypass it.

How to write an anti-debugging mechanism using fork and how to detect it!

This tutorial is designed for developers and security enthusiasts who want to approach LLDB, through a practical exercise.

Suppose you want to reverse-engineer some of Darwin's binary source code. I want to show you the technique I used to find the binary source code quickly.

In the previous post, we discussed building a basic macOS agent with launchd. But we are still far from how a software engineer could interact with and do with a real-world application. In this post, we will try to contextualize the usage of agents in a GUI macOS application.

Understand how to constrain window sizes in macOS applications using SwiftUI.

Launchd is responsible for starting, stopping, and managing background processes in macOS. In this blog post, we will build a macOS agent with launchd trying to understand the fundamentals.

In this comprehensive guide, we delve into the process of notarizing macOS applications using Apple's notarytool. We will demystify the concept of notarization, and explore the critical commands necessary to navigate this essential step in preparing your applications for distribution.

Discover the process of code signing macOS CLI applications using CMake in this step-by-step tutorial. Learn the importance of code signing, how it works, and how to create a basic macOS CLI app and sign it using your Apple Developer ID Application certificate.

In this post, we discuss how to resolve the 'User interaction is not allowed' error when using xcrun notarytool store-credentials on CircleCI.