<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>C on Adam Hacks</title><link>https://hackeradam.com/blog/c/</link><description>Recent content in C on Adam Hacks</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Mon, 03 Feb 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://hackeradam.com/blog/c/index.xml" rel="self" type="application/rss+xml"/><item><title>Taking a Dive into Linux's /proc/kcore</title><link>https://hackeradam.com/blog/taking-a-dive-into-linux-proc-kcore/</link><pubDate>Mon, 03 Feb 2025 00:00:00 +0000</pubDate><guid>https://hackeradam.com/blog/taking-a-dive-into-linux-proc-kcore/</guid><description>&lt;p&gt;The Proc filesystem (&lt;code&gt;procfs&lt;/code&gt;) on Linux is quite an interesting thing to take a deep dive into. This virtual filesystem is generated on-the-fly by the Linux Kernel and contains all kinds of juicy information about the system. Two very interesting files that I recently found myself exploring are &lt;code&gt;/proc/kcore&lt;/code&gt; and &lt;code&gt;/proc/iomem&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Whilst poking around on a Linux system recently, I came across the &lt;code&gt;kccore&lt;/code&gt; file for the first time. Up until this point, I remained blissfully unaware of what it was, but on this day I had reason to dig into it. Through my research I discovered that it&amp;rsquo;s possible to access the entire memory of a Linux system via this file. Being that this is an interesting proposition, I went ahead and developed a proof-of-concept tool to dump the memory to a file on disk.&lt;/p&gt;</description></item><item><title>Solving seVeb's Crackme05</title><link>https://hackeradam.com/blog/solving-sevebs-crackme05/</link><pubDate>Sun, 23 Aug 2020 00:00:00 +0000</pubDate><guid>https://hackeradam.com/blog/solving-sevebs-crackme05/</guid><description>&lt;p&gt;I&amp;rsquo;ve recently found myself wanting to further my reverse engineering skills. One of the ways I’ll be doing this is by working on crackmes. This one in particular is from Crackmes.de user seVeb and is called &lt;strong&gt;&lt;a href="http://crackmes.cf/users/seveb/crackme05/"&gt;crackme05&lt;/a&gt;&lt;/strong&gt;. It’s marked as a C/C++ program compiled for Linux and is rated as being easy. Sounds like a perfect place to start!&lt;/p&gt;</description></item><item><title>The Dining Philosophers Problem</title><link>https://hackeradam.com/blog/the-dining-philosophers-problem/</link><pubDate>Fri, 21 Aug 2020 00:00:00 +0000</pubDate><guid>https://hackeradam.com/blog/the-dining-philosophers-problem/</guid><description>&lt;p&gt;The dining philosophers problem is a classic problem in the realm of computer science. If you’ve had any formal CS education you’ve more than likely seen the problem when learning about concurrent programming.&lt;/p&gt;
&lt;p&gt;Today we will take a look at the problem and look at an example of how we can solve it.&lt;/p&gt;</description></item><item><title>Let's Write a Simple Intel 8080 Disassembler</title><link>https://hackeradam.com/blog/lets-write-a-simple-intel-8080-disassembler/</link><pubDate>Mon, 03 Dec 2018 00:00:00 +0000</pubDate><guid>https://hackeradam.com/blog/lets-write-a-simple-intel-8080-disassembler/</guid><description>&lt;p&gt;Typically my weekends are spent &lt;a href="https://serialphotog.com/"&gt;hiking with my camera&lt;/a&gt;, but this past weekend I was knocked down by a pretty nasty cold. As a result, I found myself toying around with various programming projects I’ve had laying around. Here for a while, I’ve been curious how emulators work, so I took this opportunity to start venturing down that rabbit hole. During this excursion, I decided to start my foray into emulators by writing one for the game Space Invaders, which ran on an Intel 8080 microprocessor. It seemed only natural to get started by writing a disassembler for the 8080 to get things started.&lt;/p&gt;
&lt;p&gt;What I came up with is a pretty simple (albeit long) bit of C code to disassemble binary code compiled for the Intel 8080. So, without further ado, let’s jump on in and see how I did it!&lt;/p&gt;</description></item></channel></rss>