About Me

My name is Tom and I currently work as a Senior Technical Support Engineer at VMware. As part of my job, I frequently analyze core dumps from kernels and, sometimes, from userworld processes. The main tool we use is GDB, as the cores typically come as ELF files. This blog is a way for me to share some of the cool things I have found and that have been shown to me by others about how software works.

Taking apart software is a fun way to learn about what really goes on under the hood. Though sometimes it feels like you’re going googly-eyed staring at hexdumps all day. And, let’s be honest, GDB is not the most user-friendly tool out there. If you look around the internet, you’ll find a lot of people complaining about it. GDB’s “interesting” UX philosophy is the namesake of this blog.

Despite its name, the blog will feature posts about (ab-)using programming languages like C to produce weird and unintended behaviors in a controlled way. We will analyze the disassembly of toy programs and their memory layout to find out how, for example, one function can pass data to another without passing any arguments, or how to print the Fibonacci sequence without using any variables. Here again, GDB has been a great help in figuring this stuff out.

Finally, I will also be sharing the GDB scripts I write to help automate some of the more cumbersome tasks. Most of the longer ones will be in Python, though there may be some shorter ones written in GDB’s built-in scripting language.

(Note that all of the opinions expressed here are mine and mine alone.)

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.