Uses for Reverse Engineering: Debugging C Code with a Disassembler

One thing I like about C programming for the DOS prompt is that when there's a run time error, a whole collection of debugging information gets dumped to the console. This can be very useful in diagnosing errors, as opposed to the Unix command line, where all you get is a not-so-descriptive message like "Segmentation … Continue reading Uses for Reverse Engineering: Debugging C Code with a Disassembler

More Assembly Code Hacking: Deciphering the Program Setup

The "Hello World" program I started disassembling in the last article has a fuck-ton of subroutines, surprising considering that the source code only had one. I am now making an effort to decipher and document all of them and figure out the exact course of system calls made in the execution of a printf() statement. … Continue reading More Assembly Code Hacking: Deciphering the Program Setup

Reverse-Engineering a Windows PE Binary

I'm excited, guys! I just made my first real foray into the guts of an executable file à la reverse-engineering with the Interactive Disassembler (IDA) from Hex-Rays. I'm using the freeware version of IDA, which means I don't get any tech support, so I've had to mostly figure out how to do everything myself (although … Continue reading Reverse-Engineering a Windows PE Binary

Writing an Emulator for the MIX Architecture

I've been reading a lot of TAOCP lately (that's The Art of Computer Programming by Donald Knuth for you plebes out there 😛 ). This classic book series consists mainly of designing a lot of algorithms in machine language. The machine language used is that of the fictional MIX architecture, which Knuth created specifically for … Continue reading Writing an Emulator for the MIX Architecture