The Carrot's Bloghttps://carrot.dev/icon.pngTotally Legal Content2024-02-06T01:22:41.600Zhttps://carrot.dev/Kevin DaiHexoA nasty bug and why assembly is for cool kidshttps://carrot.dev/2023/02/05/2023-asm/2023-02-05T23:22:49.000Z2024-02-06T01:22:41.600ZWhy 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!Reverse Engineering the MacOS AHCI Kernel Driverhttps://carrot.dev/2021/03/10/2021-appleahci/2021-03-10T01:13:25.000Z2024-02-06T01:22:41.600ZPatching the MacOS kernel drivers for fun. This was the story of untangling the inner workings of `AppleAHCIPort.kext`, by an amateur. Really, I don't know what I'm doing.Digital Circuits: The Incomplete Introductionhttps://carrot.dev/2020/12/26/2020-digital1/2020-12-26T03:36:21.000Z2024-02-06T01:22:41.536ZThis 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.Holst's The Cloud Messenger: Thematic Analysishttps://carrot.dev/2020/08/13/2020-holst1/2020-08-13T20:21:43.000Z2024-02-06T01:22:41.536ZI hope to shed some light on one of Holst's hidden gems; take some time to admire, analyze and discuss various aspects of this forgotten masterpiece of late-Romanticism.Cute Proofs: What's up with 0?https://carrot.dev/2020/08/11/2020-div0/2020-08-11T18:20:36.000Z2024-02-06T01:22:41.536ZA collection of small, fun and cute proofs that are quite small, fun and cute. Today, let's talk about dividing by zero (not exactly your garden-variety proof here).Exploiting Spidermonkey Part 1 (CVE-2019-9791)https://carrot.dev/2020/05/01/2020-firefox_part1/2020-05-01T05:28:36.000Z2024-02-06T01:22:41.536ZThis 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.Turing Adventures: Memory and GChttps://carrot.dev/2019/09/05/2019-turing/2019-09-05T20:05:33.000Z2024-02-06T01:22:41.536ZWelcome to the "Turing Adventures" series where I look back at my adventures with an educational language called "Turing" - which was widely used in the Ontario Computer Science 10 curriculum. Today, we'll attempt to add a garbage collector to a language that's pretty garbage.Hopper: Are your license checks secure?https://carrot.dev/2019/06/09/2019-hopper-part1/2019-06-09T18:50:30.000Z2024-02-06T01:22:41.536ZWe'll explore reverse engineering Hopper v4. We'll go through how they do their license checks and see if we can bypass that.