Introduction to Reverse Engineering

Instead of doing academic research in grad school, I spent most of my time studying practical computer security and reverse engineering. It wasn't a conscious choice. It just sort of happened, but it worked out well for me. As part of that, I worked on a HOWTO on reverse engineering software with Nasko Oskov. We eventually left school and got jobs before finishing the HOWTO. At one point, we actively tried to find a publisher to finish up a print version, but they ended up passing since Reversing: Secrets of Reverse Engineering was just released covering the same material in much the same way. That'll teach us for being open. (Though our premature slashdotting did land me my current job.)

Building Linux Beowulf Clusters

Back in 2000, I was employed by Illinois Genetic Algorithms Lab to build a beowulf cluster for them, after having built one for the NCSA Automated Learning
. Frustrated with the vague, incomplete, and/or overly verbose and rambling documentation online (and especially in print), I decided to document things myself. Some things have changed somewhat since then, but not terribly so, and the document still is on the first page of Google queries for beowulf clusters, so I figured I'd keep it up.

Linux Shared Memory HOWTO

I wrote this HOWTO on the various ways to use shared memory on Linux almost 10 years ago, and its still the #1 site on google for "Linux Shared Memory", so I suppose it has stood the test of time. The document describes BSD mmap and System V IPC, with several examples, and a section on creating a toy malloc debugger (which later actually morphed into NJAMD.

Syndicate content