<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Nikolaos — Blue Team Engineer on Nikolaos Magopoulos — Blue Team Ronin</title><link>https://aur5lius.dev/</link><description>Recent content in Nikolaos — Blue Team Engineer on Nikolaos Magopoulos — Blue Team Ronin</description><generator>Hugo</generator><language>en-gb</language><lastBuildDate>Sun, 01 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://aur5lius.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>Recognizing C Control Flow in x86-64 Disassembly</title><link>https://aur5lius.dev/writing/recognizing-c-control-flow-in-x86-64-disassembly/</link><pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate><guid>https://aur5lius.dev/writing/recognizing-c-control-flow-in-x86-64-disassembly/</guid><description>&lt;p&gt;When you&amp;rsquo;re staring at a wall of disassembly in IDA Pro, the first skill that pays dividends is recognizing the &lt;em&gt;shape&lt;/em&gt; of common C control flow structures after the compiler has had its way with them.&lt;/p&gt;
&lt;h2 id="the-ifelse-pattern"&gt;The if/else Pattern&lt;/h2&gt;
&lt;p&gt;The most basic pattern: a conditional jump (&lt;code&gt;je&lt;/code&gt;, &lt;code&gt;jne&lt;/code&gt;, &lt;code&gt;jl&lt;/code&gt;, &lt;code&gt;jg&lt;/code&gt;, etc.) followed by two diverging code blocks that reconverge at a common point. The key tell is the unconditional &lt;code&gt;jmp&lt;/code&gt; at the end of the &amp;ldquo;true&amp;rdquo; branch that skips over the &amp;ldquo;false&amp;rdquo; branch.&lt;/p&gt;</description></item></channel></rss>