<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Reverse Society</title>
        <link>https://blog.reversesociety.co</link>
        <description>At Reverse Society, we are deeply focused on offensive security research and advanced reverse engineering, specifically across Apple platforms (iOS and macOS).</description>
        <lastBuildDate>Sun, 08 Mar 2026 23:57:01 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>Reverse Society</title>
            <url>https://blog.reversesociety.co/reversesociety-logo-black-rgb-2000px-w-72ppi.png</url>
            <link>https://blog.reversesociety.co</link>
        </image>
        <copyright>All rights reserved 2026, Reverse Society</copyright>
        <item>
            <title><![CDATA[Understanding and Experimenting with Apple's PAC on iOS]]></title>
            <link>https://blog.reversesociety.co/blog/2026/pointer-authentication-code-for-ios</link>
            <guid isPermaLink="false">2026/pointer-authentication-code-for-ios</guid>
            <pubDate>Thu, 05 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A hands-on exploration of Pointer Authentication Codes (PAC) on iOS. We'll understand how PAC works at a deep level, explore how PAC signing can be triggered programmatically.]]></description>
            <content:encoded><![CDATA[A hands-on exploration of Pointer Authentication Codes (PAC) on iOS. We'll understand how PAC works at a deep level, explore how PAC signing can be triggered programmatically.]]></content:encoded>
            <author>tonygorez@proton.me (Tony Gorez)</author>
            <category>ios</category>
            <category>arm</category>
            <category>pac</category>
            <category>pointer authentication</category>
            <category>security mitigation</category>
            <category>reverse engineering</category>
        </item>
        <item>
            <title><![CDATA[Predator iOS Malware: Building a Surveillance Framework - Part 1]]></title>
            <link>https://blog.reversesociety.co/blog/2025/predator-ios-malware-surveillance-framework-part-1</link>
            <guid isPermaLink="false">2025/predator-ios-malware-surveillance-framework-part-1</guid>
            <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[How does Predator spyware transform from running code into active surveillance? This technical deep-dive reverse-engineers the internal factory architecture that dynamically creates camera monitoring, VoIP interception, and keylogging modules through Unix socket commands revealing the infrastructure between exploitation and surveillance]]></description>
            <content:encoded><![CDATA[How does Predator spyware transform from running code into active surveillance? This technical deep-dive reverse-engineers the internal factory architecture that dynamically creates camera monitoring, VoIP interception, and keylogging modules through Unix socket commands revealing the infrastructure between exploitation and surveillance]]></content:encoded>
            <author>tonygorez@proton.me (Tony Gorez)</author>
            <category>ios</category>
            <category>reverse engineering</category>
            <category>malware</category>
            <category>implant</category>
            <category>spyware</category>
            <enclosure url="https://blog.reversesociety.co/posts/predator-pt1/cover.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Bypassing iOS Frida Detection with LLDB and Frida]]></title>
            <link>https://blog.reversesociety.co/blog/2025/8ksec-ios-ctf-writeup</link>
            <guid isPermaLink="false">2025/8ksec-ios-ctf-writeup</guid>
            <pubDate>Mon, 24 Nov 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A complete walkthrough of the 8ksec "FridaInTheMiddle" challenge: bypassing Frida detection, hooking Swift functions, and intercepting arguments on a jailbroken iPhone.]]></description>
            <content:encoded><![CDATA[A complete walkthrough of the 8ksec "FridaInTheMiddle" challenge: bypassing Frida detection, hooking Swift functions, and intercepting arguments on a jailbroken iPhone.]]></content:encoded>
            <author>tonygorez@proton.me (Tony Gorez)</author>
            <category>ios</category>
            <category>frida</category>
            <category>reverse engineering</category>
            <category>LLDB</category>
            <category>jailbreak</category>
        </item>
        <item>
            <title><![CDATA[Attacking macOS XPC Helpers: Protocol Reverse Engineering]]></title>
            <link>https://blog.reversesociety.co/blog/2025/how-to-attack-macos-application-xpc-helpers</link>
            <guid isPermaLink="false">2025/how-to-attack-macos-application-xpc-helpers</guid>
            <pubDate>Sat, 01 Nov 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[How to attack a macOS XPC Helper using a simple Objective-C script]]></description>
            <content:encoded><![CDATA[How to attack a macOS XPC Helper using a simple Objective-C script]]></content:encoded>
            <author>tonygorez@proton.me (Tony Gorez)</author>
            <category>macos</category>
            <category>xpc</category>
            <category>objective c</category>
            <category>red teaming</category>
        </item>
        <item>
            <title><![CDATA[Exploring macOS Sandbox Profiles: Pre-Defined Rules]]></title>
            <link>https://blog.reversesociety.co/blog/2025/how-to-find-pre-defined-rules-in-macos-sandbox-profiles</link>
            <guid isPermaLink="false">2025/how-to-find-pre-defined-rules-in-macos-sandbox-profiles</guid>
            <pubDate>Thu, 21 Aug 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[How to find pre defined macros in macOS system sandbox profiles?]]></description>
            <content:encoded><![CDATA[How to find pre defined macros in macOS system sandbox profiles?]]></content:encoded>
            <author>tonygorez@proton.me (Tony Gorez)</author>
            <category>macos</category>
            <category>sandbox</category>
            <category>reverse engineering</category>
        </item>
        <item>
            <title><![CDATA[How to reverse engineer a malicious macOS pkg installer?]]></title>
            <link>https://blog.reversesociety.co/blog/2025/how-to-reverse-engineer-malicious-macos-pkg-installer</link>
            <guid isPermaLink="false">2025/how-to-reverse-engineer-malicious-macos-pkg-installer</guid>
            <pubDate>Fri, 20 Jun 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[How to extract the content of a malicious macOS pkg installer and reverse engineer it?]]></description>
            <content:encoded><![CDATA[How to extract the content of a malicious macOS pkg installer and reverse engineer it?]]></content:encoded>
            <author>tonygorez@proton.me (Tony Gorez)</author>
            <category>macos</category>
            <category>pkg</category>
            <category>installer</category>
            <category>reverse engineering</category>
            <category>malware</category>
        </item>
        <item>
            <title><![CDATA[ptrace internals: How it prevents debugger attachment]]></title>
            <link>https://blog.reversesociety.co/blog/2024/anti-debugging-using-ptrace</link>
            <guid isPermaLink="false">2024/anti-debugging-using-ptrace</guid>
            <pubDate>Wed, 16 Oct 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Deep dive into ptrace internals, from syscall to kernel implementation, understanding how it prevents debugger attachment and how to bypass it.]]></description>
            <content:encoded><![CDATA[Deep dive into ptrace internals, from syscall to kernel implementation, understanding how it prevents debugger attachment and how to bypass it.]]></content:encoded>
            <author>tonygorez@proton.me (Tony Gorez)</author>
            <category>macos</category>
            <category>ios</category>
            <category>anti debugging</category>
            <category>lldb</category>
            <category>ptrace</category>
            <category>syscall</category>
            <category>dlsym</category>
        </item>
        <item>
            <title><![CDATA[Anti-debugging technique using dlsym and fork]]></title>
            <link>https://blog.reversesociety.co/blog/2024/anti-debugging-detection-with-fork</link>
            <guid isPermaLink="false">2024/anti-debugging-detection-with-fork</guid>
            <pubDate>Fri, 20 Sep 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[How to write an anti-debugging mechanism using fork and how to detect it!]]></description>
            <content:encoded><![CDATA[How to write an anti-debugging mechanism using fork and how to detect it!]]></content:encoded>
            <author>tonygorez@proton.me (Tony Gorez)</author>
            <category>macos</category>
            <category>ios</category>
            <category>anti debugging</category>
            <category>lldb</category>
            <category>fork</category>
            <category>dlsym</category>
        </item>
        <item>
            <title><![CDATA[Reverse Engineering Basics: Crack a License with LLDB]]></title>
            <link>https://blog.reversesociety.co/blog/2024/reverse-engineering-lldb-basics</link>
            <guid isPermaLink="false">2024/reverse-engineering-lldb-basics</guid>
            <pubDate>Thu, 18 Jul 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[This tutorial is designed for developers and security enthusiasts who want to approach LLDB, through a practical exercise.]]></description>
            <content:encoded><![CDATA[This tutorial is designed for developers and security enthusiasts who want to approach LLDB, through a practical exercise.]]></content:encoded>
            <author>tonygorez@proton.me (Tony Gorez)</author>
            <category>macos</category>
            <category>reverse engineering</category>
            <category>lldb</category>
        </item>
        <item>
            <title><![CDATA[Four Hours Later: How Removing Copy Constructors Could Have Saved My Day]]></title>
            <link>https://blog.reversesociety.co/blog/2024/how-removing-copy-constructors-could-have-saved-my-day</link>
            <guid isPermaLink="false">2024/how-removing-copy-constructors-could-have-saved-my-day</guid>
            <pubDate>Wed, 14 Feb 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[A single missing ampersand ('&') led me through a challenging four-hour debugging journey. This experience was a profound reminder of the critical importance of understanding C++'s copy semantics and object lifecycle management.]]></description>
            <content:encoded><![CDATA[A single missing ampersand ('&') led me through a challenging four-hour debugging journey. This experience was a profound reminder of the critical importance of understanding C++'s copy semantics and object lifecycle management.]]></content:encoded>
            <author>tonygorez@proton.me (Tony Gorez)</author>
            <category>c++</category>
            <category>memory</category>
        </item>
        <item>
            <title><![CDATA[From Binary to Source: Exploring Darwin's Open Source Code]]></title>
            <link>https://blog.reversesociety.co/blog/2024/how-to-find-darwin-binary-source-code</link>
            <guid isPermaLink="false">2024/how-to-find-darwin-binary-source-code</guid>
            <pubDate>Mon, 29 Jan 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[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.]]></description>
            <content:encoded><![CDATA[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.]]></content:encoded>
            <author>tonygorez@proton.me (Tony Gorez)</author>
            <category>open-source</category>
            <category>macos</category>
            <category>internals</category>
        </item>
        <item>
            <title><![CDATA[launchd essentials: Integrating XPC services in macOS application (part 2)]]></title>
            <link>https://blog.reversesociety.co/blog/2024/integrating-xpc-service-in-macos-app</link>
            <guid isPermaLink="false">2024/integrating-xpc-service-in-macos-app</guid>
            <pubDate>Wed, 03 Jan 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[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.]]></description>
            <content:encoded><![CDATA[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.]]></content:encoded>
            <author>tonygorez@proton.me (Tony Gorez)</author>
            <category>macos</category>
            <category>launchd</category>
        </item>
        <item>
            <title><![CDATA[How to set a fixed window size for a macOS application with SwiftUI?]]></title>
            <link>https://blog.reversesociety.co/blog/2023/set-fixed-window-size-macos-app-swiftui</link>
            <guid isPermaLink="false">2023/set-fixed-window-size-macos-app-swiftui</guid>
            <pubDate>Wed, 06 Dec 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Understand how to constrain window sizes in macOS applications using SwiftUI.]]></description>
            <content:encoded><![CDATA[Understand how to constrain window sizes in macOS applications using SwiftUI.]]></content:encoded>
            <author>tonygorez@proton.me (Tony Gorez)</author>
            <category>macos</category>
            <category>swiftui</category>
        </item>
        <item>
            <title><![CDATA[launchd essentials: Building your first macOS agent step by step (part 1)]]></title>
            <link>https://blog.reversesociety.co/blog/2023/build-your-first-macos-agent-with-launchd</link>
            <guid isPermaLink="false">2023/build-your-first-macos-agent-with-launchd</guid>
            <pubDate>Thu, 23 Nov 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[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.]]></description>
            <content:encoded><![CDATA[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.]]></content:encoded>
            <author>tonygorez@proton.me (Tony Gorez)</author>
            <category>macos</category>
            <category>launchd</category>
        </item>
        <item>
            <title><![CDATA[Complete Guide to Notarizing macOS Apps with `notarytool`]]></title>
            <link>https://blog.reversesociety.co/blog/2023/notarization-for-macos-app-with-notarytool</link>
            <guid isPermaLink="false">2023/notarization-for-macos-app-with-notarytool</guid>
            <pubDate>Tue, 18 Jul 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[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.]]></description>
            <content:encoded><![CDATA[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.]]></content:encoded>
            <author>tonygorez@proton.me (Tony Gorez)</author>
            <category>macos</category>
            <category>notarization</category>
        </item>
        <item>
            <title><![CDATA[Testing C++ callback based APIs]]></title>
            <link>https://blog.reversesociety.co/blog/2023/testing-cpp-callback-based-apis-a-step-by-step-guide-for-javascript-developers</link>
            <guid isPermaLink="false">2023/testing-cpp-callback-based-apis-a-step-by-step-guide-for-javascript-developers</guid>
            <pubDate>Wed, 17 May 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Discover how to test callback-based APIs in C++ as a JavaScript developer. Learn to set up GoogleTest, use std::promise for async callbacks, and write robust test cases, bridging your JavaScript expertise to C++ testing scenarios.]]></description>
            <content:encoded><![CDATA[Discover how to test callback-based APIs in C++ as a JavaScript developer. Learn to set up GoogleTest, use std::promise for async callbacks, and write robust test cases, bridging your JavaScript expertise to C++ testing scenarios.]]></content:encoded>
            <author>tonygorez@proton.me (Tony Gorez)</author>
            <category>c++</category>
            <category>testing</category>
        </item>
        <item>
            <title><![CDATA[From JavaScript to C++: Understanding the Power and Limitations of constness]]></title>
            <link>https://blog.reversesociety.co/blog/2023/from-js-to-cpp-power-and-limitations-of-constness</link>
            <guid isPermaLink="false">2023/from-js-to-cpp-power-and-limitations-of-constness</guid>
            <pubDate>Thu, 09 Mar 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[As a JavaScript developer, you are probably familiar with the const keyword used to declare variables whose value cannot be changed. However, diving into C++ programming, you may notice some differences in how const works compared to JavaScript. In this post, we'll explore the nuances of const in C++ and how it differs from const in JavaScript.]]></description>
            <content:encoded><![CDATA[As a JavaScript developer, you are probably familiar with the const keyword used to declare variables whose value cannot be changed. However, diving into C++ programming, you may notice some differences in how const works compared to JavaScript. In this post, we'll explore the nuances of const in C++ and how it differs from const in JavaScript.]]></content:encoded>
            <author>tonygorez@proton.me (Tony Gorez)</author>
            <category>c++</category>
            <category>js</category>
        </item>
        <item>
            <title><![CDATA[Demystifying Code Signing in macOS: A Step-by-Step Tutorial for CLI Applications with CMake]]></title>
            <link>https://blog.reversesociety.co/blog/2023/demystifying-code-signing-macos-cli-cmake-xcode</link>
            <guid isPermaLink="false">2023/demystifying-code-signing-macos-cli-cmake-xcode</guid>
            <pubDate>Wed, 01 Mar 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[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.]]></description>
            <content:encoded><![CDATA[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.]]></content:encoded>
            <author>tonygorez@proton.me (Tony Gorez)</author>
            <category>macos</category>
            <category>codesign</category>
            <category>cmake</category>
            <category>cli</category>
        </item>
        <item>
            <title><![CDATA[Facing 'User interaction is not allowed' when using 'xcrun notarytool store-credentials' on CircleCI]]></title>
            <link>https://blog.reversesociety.co/blog/2023/user-interaction-not-allowed-notarytool-circleci</link>
            <guid isPermaLink="false">2023/user-interaction-not-allowed-notarytool-circleci</guid>
            <pubDate>Mon, 20 Feb 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[In this post, we discuss how to resolve the 'User interaction is not allowed' error when using xcrun notarytool store-credentials on CircleCI.]]></description>
            <content:encoded><![CDATA[In this post, we discuss how to resolve the 'User interaction is not allowed' error when using xcrun notarytool store-credentials on CircleCI.]]></content:encoded>
            <author>tonygorez@proton.me (Tony Gorez)</author>
            <category>macos</category>
            <category>notarization</category>
            <category>circleci</category>
        </item>
        <item>
            <title><![CDATA[Define CPU architecture in C++ with pre-processor]]></title>
            <link>https://blog.reversesociety.co/blog/2023/define-cpu-architecture-in-cpp</link>
            <guid isPermaLink="false">2023/define-cpu-architecture-in-cpp</guid>
            <pubDate>Sun, 29 Jan 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[How to defined CPU architecture in you C++ code?]]></description>
            <content:encoded><![CDATA[How to defined CPU architecture in you C++ code?]]></content:encoded>
            <author>tonygorez@proton.me (Tony Gorez)</author>
            <category>c++</category>
            <category>cpu</category>
        </item>
        <item>
            <title><![CDATA[Spawning a basic curl command in C++]]></title>
            <link>https://blog.reversesociety.co/blog/2023/spawn-basic-curl-command-in-cpp</link>
            <guid isPermaLink="false">2023/spawn-basic-curl-command-in-cpp</guid>
            <pubDate>Fri, 20 Jan 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[How to spawn process in C or C++?]]></description>
            <content:encoded><![CDATA[How to spawn process in C or C++?]]></content:encoded>
            <author>tonygorez@proton.me (Tony Gorez)</author>
            <category>c++</category>
            <category>spawn</category>
            <category>posix_spawn</category>
            <category>c</category>
        </item>
    </channel>
</rss>