<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>The Carrot&#39;s Blog</title>
  <icon>https://carrot.dev/icon.png</icon>
  <subtitle>Totally Legal Content</subtitle>
  <link href="https://carrot.dev/atom.xml" rel="self"/>
  
  <link href="https://carrot.dev/"/>
  <updated>2024-02-06T01:22:41.600Z</updated>
  <id>https://carrot.dev/</id>
  
  <author>
    <name>Kevin Dai</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>A nasty bug and why assembly is for cool kids</title>
    <link href="https://carrot.dev/2023/02/05/2023-asm/"/>
    <id>https://carrot.dev/2023/02/05/2023-asm/</id>
    <published>2023-02-05T23:22:49.000Z</published>
    <updated>2024-02-06T01:22:41.600Z</updated>
    
    
    <summary type="html">Why should we learn assembly? In a quest to speed up code for my compilers course, I encountered quite a neat but nasty little critter. This is why you should learn some assembly!</summary>
    
    
    
    <category term="Systems Programming" scheme="https://carrot.dev/categories/Systems-Programming/"/>
    
    
  </entry>
  
  <entry>
    <title>Reverse Engineering the MacOS AHCI Kernel Driver</title>
    <link href="https://carrot.dev/2021/03/10/2021-appleahci/"/>
    <id>https://carrot.dev/2021/03/10/2021-appleahci/</id>
    <published>2021-03-10T01:13:25.000Z</published>
    <updated>2024-02-06T01:22:41.600Z</updated>
    
    
    <summary type="html">Patching the MacOS kernel drivers for fun. This was the story of untangling the inner workings of `AppleAHCIPort.kext`, by an amateur. Really, I don&#39;t know what I&#39;m doing.</summary>
    
    
    
    <category term="Reverse Engineering" scheme="https://carrot.dev/categories/Reverse-Engineering/"/>
    
    
  </entry>
  
  <entry>
    <title>Digital Circuits: The Incomplete Introduction</title>
    <link href="https://carrot.dev/2020/12/26/2020-digital1/"/>
    <id>https://carrot.dev/2020/12/26/2020-digital1/</id>
    <published>2020-12-26T03:36:21.000Z</published>
    <updated>2024-02-06T01:22:41.536Z</updated>
    
    
    <summary type="html">This is an overview of digital circuitry covering topics such as logic levels and the operation of transistors within integrated circuits from the perspective of hobbyists.</summary>
    
    
    
    <category term="Hardware" scheme="https://carrot.dev/categories/Hardware/"/>
    
    
  </entry>
  
  <entry>
    <title>Holst&#39;s The Cloud Messenger: Thematic Analysis</title>
    <link href="https://carrot.dev/2020/08/13/2020-holst1/"/>
    <id>https://carrot.dev/2020/08/13/2020-holst1/</id>
    <published>2020-08-13T20:21:43.000Z</published>
    <updated>2024-02-06T01:22:41.536Z</updated>
    
    
    <summary type="html">I hope to shed some light on one of Holst&#39;s hidden gems; take some time to admire, analyze and discuss various aspects of this forgotten masterpiece of late-Romanticism.</summary>
    
    
    
    <category term="Music Appreciation" scheme="https://carrot.dev/categories/Music-Appreciation/"/>
    
    
  </entry>
  
  <entry>
    <title>Cute Proofs: What&#39;s up with 0?</title>
    <link href="https://carrot.dev/2020/08/11/2020-div0/"/>
    <id>https://carrot.dev/2020/08/11/2020-div0/</id>
    <published>2020-08-11T18:20:36.000Z</published>
    <updated>2024-02-06T01:22:41.536Z</updated>
    
    
    <summary type="html">A collection of small, fun and cute proofs that are quite small, fun and cute. Today, let&#39;s talk about dividing by zero (not exactly your garden-variety proof here).</summary>
    
    
    
    <category term="Math" scheme="https://carrot.dev/categories/Math/"/>
    
    
  </entry>
  
  <entry>
    <title>Exploiting Spidermonkey Part 1 (CVE-2019-9791)</title>
    <link href="https://carrot.dev/2020/05/01/2020-firefox_part1/"/>
    <id>https://carrot.dev/2020/05/01/2020-firefox_part1/</id>
    <published>2020-05-01T05:28:36.000Z</published>
    <updated>2024-02-06T01:22:41.536Z</updated>
    
    
    <summary type="html">This long overdue post of a close look at a vulnerability within the Javascript engine of 64-bit Firefox 65 on Linux (Ubuntu 18.04). I have never written a single browser exploit, so this should be fun.</summary>
    
    
    
    <category term="Security" scheme="https://carrot.dev/categories/Security/"/>
    
    
  </entry>
  
  <entry>
    <title>Turing Adventures: Memory and GC</title>
    <link href="https://carrot.dev/2019/09/05/2019-turing/"/>
    <id>https://carrot.dev/2019/09/05/2019-turing/</id>
    <published>2019-09-05T20:05:33.000Z</published>
    <updated>2024-02-06T01:22:41.536Z</updated>
    
    
    <summary type="html">Welcome to the &quot;Turing Adventures&quot; series where I look back at my adventures with an educational language called &quot;Turing&quot; - which was widely used in the Ontario Computer Science 10 curriculum. Today, we&#39;ll attempt to add a garbage collector to a language that&#39;s pretty garbage.</summary>
    
    
    
    <category term="Systems Programming" scheme="https://carrot.dev/categories/Systems-Programming/"/>
    
    
  </entry>
  
  <entry>
    <title>Hopper: Are your license checks secure?</title>
    <link href="https://carrot.dev/2019/06/09/2019-hopper-part1/"/>
    <id>https://carrot.dev/2019/06/09/2019-hopper-part1/</id>
    <published>2019-06-09T18:50:30.000Z</published>
    <updated>2024-02-06T01:22:41.536Z</updated>
    
    
    <summary type="html">We&#39;ll explore reverse engineering Hopper v4. We&#39;ll go through how they do their license checks and see if we can bypass that.</summary>
    
    
    
    <category term="Reverse Engineering" scheme="https://carrot.dev/categories/Reverse-Engineering/"/>
    
    
  </entry>
  
</feed>
