<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Programming on Locus Solus | Nagi's Blog</title><link>https://x-nagi.com/categories/programming.html</link><description>Recent content in Programming on Locus Solus | Nagi's Blog</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Mon, 22 Nov 2021 11:01:50 +0800</lastBuildDate><atom:link href="https://x-nagi.com/categories/programming/index.xml" rel="self" type="application/rss+xml"/><item><title>Introduction to Intel AES-NI</title><link>https://x-nagi.com/post/aesni.html</link><pubDate>Mon, 22 Nov 2021 11:01:50 +0800</pubDate><guid>https://x-nagi.com/post/aesni.html</guid><description>&lt;div class="admonition info"&gt;&lt;p class="admonition-title"&gt;Notice&lt;/p&gt;&#10;&lt;p&gt;This article was originally published on Anquanke: &lt;a href="https://www.anquanke.com/post/id/260323"&gt;original article&lt;/a&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/AES_instruction_set"&gt;AES-NI&lt;/a&gt; is Intel&amp;rsquo;s x86-64 SIMD extension for accelerating &lt;a href="https://en.wikipedia.org/wiki/Advanced_Encryption_Standard"&gt;AES&lt;/a&gt;. Anyone familiar with &lt;a href="https://en.wikipedia.org/wiki/SIMD"&gt;SIMD&lt;/a&gt; probably knows it exists, but AES&amp;rsquo;s asymmetric structure and AES-NI&amp;rsquo;s unusual design require considerable detail and theory to use correctly. Using &lt;code&gt;easyRE&lt;/code&gt; from &lt;a href="https://ctf2021.nu1l.com/"&gt;N1CTF 2021&lt;/a&gt; as an example, this article summarizes my understanding; corrections are welcome.&lt;/p&gt;</description></item><item><title>An Introduction to Reversing mruby Bytecode</title><link>https://x-nagi.com/post/mruby.html</link><pubDate>Mon, 27 Sep 2021 21:17:11 +0800</pubDate><guid>https://x-nagi.com/post/mruby.html</guid><description>&lt;div class="admonition info"&gt;&lt;p class="admonition-title"&gt;Notice&lt;/p&gt;&#10;&lt;p&gt;This article was originally published on Anquanke: &lt;a href="https://www.anquanke.com/post/id/253572"&gt;original article&lt;/a&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;h1 id="introduction-to-mruby"&gt;Introduction to mruby&lt;/h1&gt;&#10;&lt;p&gt;&lt;a href="https://mruby.org/"&gt;mruby&lt;/a&gt; is a lightweight implementation of Ruby. It works much like CPython: Ruby source is compiled to bytecode, which is then interpreted by a virtual machine.&lt;/p&gt;&#10;&lt;p&gt;I first encountered mruby bytecode in the DEF CON 2021 Finals. The barb-metal challenge used mruby bytecode to run simulated IoT firmware. A few months later, another mruby reversing challenge appeared in the Fifth Space online competition, so I decided to summarize the characteristics of mruby bytecode.&lt;/p&gt;</description></item></channel></rss>