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.)

NJAMD: Malloc Debugger

NJAMD (Not Just Another Malloc Debugger) was a project I started after I realized memory issues in C were my biggest source of program bugs and the current solution at the time (Electric Fence) didn't have all the features I wanted. It eventually made it into RedHat, Debian, and a few other distributions, but fell by the wayside once Valgrind came on the scene. My last effort with the project was to rewrite it in C++, just to prove you could write something that low level successfully in C++ and have it still be just as fast, portable, and flexible as plain C. Unfortunately, I never polished or released the C++ code, but you can check it out of sourceforge.

Zummy: It's Alive!

Zummy is an IRC Q&A bot that used to answer FAQs in the EFnet IRC channel #LinuxOS near the end of the last millennium. He can learn from linking-verb based statements in a channel and subsequently answer questions using those definitions. He also has a keyword-based system that can be programmed by channel ops. Believe it or not, Zummy was actually even quoted in a publication as a consultant, thus passing an unofficial Turing test.

Abast Mateys, PCMAX off the i2c bow!

Back in about 2002, I wrote a Linux 2.4.x device driver for a neat solvenian company in exchange for some of their equipment. You see, back in my more maverick and idealistic days, I was in to pirate radio. (I suppose by admitting this, I just blew my chances at getting an FCC license, but I don't foresee ever appling for one anyways). The prose below represents an idealism that to me now feels almost pointlessly quixotic (and I say this while volunteering to preserve Internet privacy! HAH!), but it was a lot of fun at the time, and still is quite informative for anyone who feels like tinkering with this stuff. It is a rare surviving excerpt from the fscked.org of 2002.

Perhaps the most amusing part of this whole project was when I interviewed at Microsoft for an internship. My last interviewer was a real clean-cut, stodgy, almost military-looking guy who didn't ask me any technical questions at all. Instead, he just grilled me about this project: why I did it, what it was for, if I thought it was a good idea, etc etc. I recall doing my best to answer his questions without getting into too many specifics. Whatever I said must have done the trick, because they actually gave me the job.

Syndicate content