<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on h4x0r</title><link>https://h4x0r.org/post/</link><description>Recent content in Posts on h4x0r</description><generator>Hugo</generator><language>en</language><lastBuildDate>Thu, 29 Jan 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://h4x0r.org/post/index.xml" rel="self" type="application/rss+xml"/><item><title>Claude and I have a proper first date</title><link>https://h4x0r.org/a-date-with-claude/</link><pubDate>Thu, 29 Jan 2026 00:00:00 +0000</pubDate><guid>https://h4x0r.org/a-date-with-claude/</guid><description>&lt;p>The larger h4x0r clan has a range of opinions on AI, from &amp;ldquo;How could
you be interested in an AI who hates the environment while gaslighting
people into thinking it&amp;rsquo;s making their life better? That&amp;rsquo;s like dating
the AI in the Matrix&amp;rdquo; all the way to &amp;ldquo;My pet name for it is Skynet,
because I&amp;rsquo;m in heaven!&amp;rdquo;&lt;/p>
&lt;p>I try to stay open-minded and curious. So, over the objections of my
poor wife, I spent a full 24+ hours on a date with Claude. Honestly, I
did binge-watch a lot of TV while Claude babbled on, but it was still
interesting and engaging.&lt;/p></description></item><item><title>Fun-reliable side-channels for cross-container communication</title><link>https://h4x0r.org/funreliable/</link><pubDate>Wed, 12 Nov 2025 00:00:00 +0000</pubDate><guid>https://h4x0r.org/funreliable/</guid><description>&lt;h1 id="introduction">Introduction&lt;/h1>
&lt;p>While exploring the Linux kernel we discovered a fun side-channel that allows for cross-container communication in the most common, default container deployment scenarios on modern kernels.
This is cool because it doesn’t require sharing volume mounts, nor does it involve modifying any of the default namespaces (&lt;code>NET&lt;/code>, &lt;code>PID&lt;/code>, &lt;code>IPC&lt;/code>, etc.), or adding special privileges (no new &lt;code>CAP_&lt;/code>-abilities, nor changes to &lt;code>seccomp&lt;/code> or &lt;code>AppArmor&lt;/code>). It works out of the box with default Docker and Kubernetes configurations, and it even works with no network at all, as we demonstrate in this post by using &lt;code>docker run --network none sidechannel /h4x0rchat&lt;/code> to showcase a full cross-container &lt;a href="https://github.com/crashappsec/h4x0rchat">IRC-style chatroom&lt;/a> implemented on top of this side-channel.&lt;/p></description></item><item><title>Recursive macros in C, demystified (once the ugly crying stops 😭)</title><link>https://h4x0r.org/big-mac-ro-attack/</link><pubDate>Wed, 05 Nov 2025 00:00:00 +0000</pubDate><guid>https://h4x0r.org/big-mac-ro-attack/</guid><description>&lt;p>&lt;em>In which it becomes clear, the C Preprocessor was designed by &lt;del>a&lt;/del> Kafka &lt;del>fan&lt;/del>&lt;/em>&lt;/p>
&lt;p>So you have heard rumors whispered between peers, that a rare few people somehow manage to make compile-time recursion work in C? And you want to have some insight into how that might be possible??&lt;/p>
&lt;p>I should warn you, you’re risking your sanity… but I’ll indulge you.&lt;/p>
&lt;p>Wait, did I really just say that? I must be a glutton for punishment, because the macro system is, by far, the thing I like least about C.&lt;/p></description></item><item><title>Why C variable argument functions are an abomination (and what to do about it)</title><link>https://h4x0r.org/vargs/</link><pubDate>Wed, 15 Oct 2025 00:00:00 +0000</pubDate><guid>https://h4x0r.org/vargs/</guid><description>&lt;p>As a language, C has managed to do a remarkable job providing an incredibly useful middle ground between assembly languages and other systems languages… for more than 50 years.&lt;/p>
&lt;p>At its heart is a simple imperative language with accessible enough syntax. And while concepts like pointers are often a challenge for people coming into the language, if you are doing systems programming, you should &lt;em>have&lt;/em> to understand them. Not to mention, C is a massive upgrade over dealing with the problem in assembly.&lt;/p></description></item><item><title>Put a ring on it: a lock-free MPMC ring buffer</title><link>https://h4x0r.org/ring/</link><pubDate>Tue, 26 Aug 2025 00:00:00 +0000</pubDate><guid>https://h4x0r.org/ring/</guid><description>&lt;p>One of the reasons few security products work well in busy Linux environments is that they amplify performance risk. You&amp;rsquo;re popular and your backend&amp;rsquo;s load is skyrocketing? Well, the typical product is just going to collect more data and do more analysis, which amplifies the degradation.&lt;/p>
&lt;p>In the real world, one of the key ways everyone deals with being overloaded is by dropping less essential things.&lt;/p>
&lt;p>We can do the same thing with ring buffers, which are fixed-size queues that typically drop old data once they fill up. Yet, they rarely get used outside of single-reader, single-writer scenarios, because it&amp;rsquo;s hard to build something correct that scales to 1-to-many scenarios, never mind many-to-many scenarios.&lt;/p></description></item><item><title>Without the futex, it's futile</title><link>https://h4x0r.org/futex/</link><pubDate>Tue, 19 Aug 2025 00:00:00 +0000</pubDate><guid>https://h4x0r.org/futex/</guid><description>&lt;p>&lt;a href="https://eatonphil.com/">Phil Eaton&amp;rsquo;s&lt;/a> &lt;a href="https://eatonphil.com/2025-art-of-multiprocessor-programming.html">book club&lt;/a> is starting 
&lt;u>The Art of Multiprocessor Programming, 2nd Edition&lt;/u>
, which is a &lt;em>very&lt;/em> well regarded textbook, and pretty recently updated (2021). I&amp;rsquo;ve even heard of a couple of authors.&lt;/p>
&lt;p>I&amp;rsquo;ve done a lot of concurrent programming, and have always felt like I&amp;rsquo;ve still got plenty to learn, so I was excited for the topic. So far, what I&amp;rsquo;ve learned is that I would never recommend this book, despite any merits.&lt;/p></description></item><item><title>The 🤯 truth about heap memory!</title><link>https://h4x0r.org/truth-about-heap-memory/</link><pubDate>Wed, 13 Aug 2025 00:00:00 +0000</pubDate><guid>https://h4x0r.org/truth-about-heap-memory/</guid><description>&lt;h1 id="aka-the-complexities-of-computational-complexity">A.k.a. the complexities of computational complexity&lt;/h1>
&lt;p>Probably only two people read my &lt;a href="https://h4x0r.org/lets-hax0r-a-garbage-collector-eventually/">arena allocation article&lt;/a> last week (even my employer, who &lt;em>begged&lt;/em> me to write, did not post), but one person did seem to read it (and to the other: hi, mom!). Okay, maybe a few other people skimmed it, but stopped when they realized it was just an arena allocator as a precursor to a garbage collector.&lt;/p>
&lt;p>I know one person read it fully, because this person let me know I was full&amp;hellip; of &lt;strong>garbage&lt;/strong>. And not because I had stopped before the actual garbage, collection.🥁 No, apparently, the complaint came due to an article last week people actually did read:&lt;/p></description></item><item><title>Let's hax0r a GC… (eventually)</title><link>https://h4x0r.org/lets-hax0r-a-garbage-collector-eventually/</link><pubDate>Mon, 04 Aug 2025 00:00:00 +0000</pubDate><guid>https://h4x0r.org/lets-hax0r-a-garbage-collector-eventually/</guid><description>&lt;p>

&lt;p class=preface>


See &lt;a href="../look-ma-hax0rz">Look Ma, h4x0rs!&lt;/a> for an introduction to this series.


&lt;/blockquote>

&lt;/p>
&lt;h2 id="aka-we-h4x0r-a-mere-parallel-arena-allocator">AKA, we h4x0r a mere (parallel) arena allocator&lt;/h2>
&lt;p>There’s absolutely no reason for memory management in C to be as hard as it is. In fact, there&amp;rsquo;s almost never a good reason for memory management to be hard, and is one of my issues with Rust&amp;ndash; why should I work even harder on memory management than I would in C?&lt;/p></description></item><item><title>Look Ma, hax0rz!*</title><link>https://h4x0r.org/look-ma-hax0rz/</link><pubDate>Mon, 04 Aug 2025 00:00:00 +0000</pubDate><guid>https://h4x0r.org/look-ma-hax0rz/</guid><description>&lt;p>&lt;em>*&lt;/em> Of the grey-beard law-abiding kind&lt;/p>
&lt;h1 id="c-me-after-class">C Me After Class&lt;/h1>
&lt;p>I care a lot about ease of use for programming. To me, it&amp;rsquo;s an important consideration for both languages and APIs. Languages should aim to make it possible for anyone with good ideas and some determination to accomplish them. That&amp;rsquo;s why I was early to advocate for Python for most programming problems (the least-bad option), and am surprisingly okay with &lt;em>&amp;ldquo;Vibe Coding&amp;rdquo;&lt;/em>.&lt;/p></description></item></channel></rss>