<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Code Iterates, Minds Innovate</title>
    <link>https://ret0.dev/</link>
    <description>Recent content on Code Iterates, Minds Innovate</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 19 Mar 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://ret0.dev/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>From a One-Byte Type Error in DFG JIT to Arbitrary Memory Read/Write on iPhone</title>
      <link>https://ret0.dev/posts/dfg-jit-type-confusion-to-iphone-aar-aaw/</link>
      <pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://ret0.dev/posts/dfg-jit-type-confusion-to-iphone-aar-aaw/</guid>
      <description>The full exploitation journey of a type declaration error in WebKit&amp;#39;s JavaScriptCore DFG compiler — from a NodeResultInt32 (should be NodeResultJS) in the DFGNodeType.h macro table, through GC write barrier bypass triggering Use-After-Free, step by step to stable arbitrary memory read/write on a stock iPhone.</description>
    </item>
    <item>
      <title>macOS AMFI Bypass: ObjC Runtime Swizzle in Practice</title>
      <link>https://ret0.dev/posts/macos-amfi-bypass-objc-runtime-swizzle/</link>
      <pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://ret0.dev/posts/macos-amfi-bypass-objc-runtime-swizzle/</guid>
      <description>A deep dive into amfid injection on Apple Silicon and why call-through ObjC swizzling works when common injection methods fail.</description>
    </item>
    <item>
      <title>CVE-2026-20660: CFNetwork NSGZipDecoder Path Traversal to Arbitrary File Write</title>
      <link>https://ret0.dev/posts/cve-2026-20660/</link>
      <pubDate>Tue, 10 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://ret0.dev/posts/cve-2026-20660/</guid>
      <description>1-day analysis of CVE-2026-20660 — a path traversal vulnerability in Apple&amp;#39;s CFNetwork NSGZipDecoder that allows arbitrary file write via malicious gzip FNAME headers.</description>
    </item>
    <item>
      <title>A Clean &amp; Simple Guide to Using Python Virtual Environments with IDA Pro on macOS</title>
      <link>https://ret0.dev/posts/using-venv-with-ida/</link>
      <pubDate>Thu, 02 Oct 2025 00:00:00 +0000</pubDate>
      <guid>https://ret0.dev/posts/using-venv-with-ida/</guid>
      <description>&lt;p&gt;For any serious reverse engineer, keeping a clean and organized scripting environment is key. Using a Python virtual environment (&lt;code&gt;venv&lt;/code&gt;) for your IDA Pro projects is the best way to manage dependencies and avoid conflicts.&lt;/p&gt;
&lt;p&gt;Many online guides are outdated, recommending methods that no longer work. This post provides a single, modern, and straightforward solution to connect a Python &lt;code&gt;venv&lt;/code&gt; to IDA Pro on macOS using the official, built-in &lt;code&gt;IDAPythonrc&lt;/code&gt; startup script.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Use Frida to Find Block Parameters</title>
      <link>https://ret0.dev/posts/how-to-use-frida-hook-oc-block/</link>
      <pubDate>Sun, 11 May 2025 00:00:00 +0000</pubDate>
      <guid>https://ret0.dev/posts/how-to-use-frida-hook-oc-block/</guid>
      <description>&lt;p&gt;Have you ever wanted to peek inside an app on your iPhone or iPad to see exactly what data it&amp;rsquo;s processing, especially to understand what information it&amp;rsquo;s sending or receiving? Today, I&amp;rsquo;ll introduce you to a simple yet powerful method using Frida, which enables you to dynamically detect the parameters of a special piece of code called a &amp;ldquo;block&amp;rdquo; within iOS applications.&lt;/p&gt;
&lt;h2 id=&#34;first-what-exactly-is-a-block&#34;&gt;First: What Exactly is a Block?&lt;/h2&gt;
&lt;p&gt;In iOS programming, a block is a small, self-contained piece of code that you can pass around your app to be executed later. Imagine it as giving your phone number (the block) to a friend who can then call you when something important happens.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to build a PWN environment on Mac</title>
      <link>https://ret0.dev/posts/how-to-build-pwn-env-on-mac/</link>
      <pubDate>Tue, 15 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://ret0.dev/posts/how-to-build-pwn-env-on-mac/</guid>
      <description>&lt;ol&gt;
&lt;li&gt;Download UTM and install it. You can use command&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;brew install --cask utm
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;Download the image form &lt;a href=&#34;https://releases.ubuntu.com/22.04/&#34;&gt;https://releases.ubuntu.com/22.04/&lt;/a&gt; and install it.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Then install gdb server by running the command&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt install gdbserver
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;if you wan to debug some executable file for 32 bit, then you must run the command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo dpkg --add-architecture i386
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt install libc6:i386 libncurses5:i386 libstdc++6:i386
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;After the environment setup, you could use&lt;/p&gt;</description>
    </item>
    <item>
      <title>About</title>
      <link>https://ret0.dev/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://ret0.dev/about/</guid>
      <description>About this blog and its author</description>
    </item>
  </channel>
</rss>
