AF_PACKET bindings for Rust

I’ve finally gotten my AF_PACKET bindings in Rust working properly – this should allow people to start developing network sniffers, monitoring tools, and security-related software using Rust.  There’s a lot of clean-up ahead and I want to make the interface more controllable, but for now, it’s still pretty simple to use.  I need to write … Continue reading “AF_PACKET bindings for Rust”

Let’s Repair an Ancient Macintosh SE/30, part 1: Looks Like it’s Broken

This weekend I attended the 7th Vintage Computer Festival Southeast in Roswell, GA. Before going, I promised myself that I wouldn’t buy anything, but they happened to have an as-is Macintosh SE/30 for sale for $60, and I happened to have been looking at them all week, so I took a chance and bought it. … Continue reading “Let’s Repair an Ancient Macintosh SE/30, part 1: Looks Like it’s Broken”

Getting into the Pace 5268AC Router, part 2: Dumping the Flash Chip, Finding Keys

My attempt to crack the md5crypt hash found in /etc/shadow on the device had failed (due to someone unplugging the machine I was using in the middle of the job), and after poking around at test pads around the SOC and finding nothing immediately useful, I decided the next step would be to dump the … Continue reading “Getting into the Pace 5268AC Router, part 2: Dumping the Flash Chip, Finding Keys”

Getting into the Pace 5268AC Router, part 1: Terminals and Hashes

I got stuck on my Casio SK-1 project and needed to take a break, so I started on another project I’ve been meaning to do. I’ve had gigabit fiber service at my apartment in Atlanta for nearly two years through a major global telecom provider. The service itself has been pretty good, but one thing … Continue reading “Getting into the Pace 5268AC Router, part 1: Terminals and Hashes”

Reverse-Engineering the Casio SK-1, part 2: The ROM is now an Arduino

After some trial and error, I settled on adding some right-angle connectors to the board where the ROM lived. I staggered them so that the connectors would fit properly. I used the same pins on both sides that I’d used to dump the ROM, however, now the inputs and outputs are switched because we’re getting … Continue reading “Reverse-Engineering the Casio SK-1, part 2: The ROM is now an Arduino”

Reverse-Engineering the Casio SK-1, part 1: Dumping the ROM

When I was younger, I had a Casio SK-1 keyboard that I had a ton of fun with.  Of course, I found out about “Circuit Bending,” and in short order, my keyboard was no longer functional. The Casio SK-1 is famously modifiable, its simple electronics making all manner of sounds when fed unexpected data across … Continue reading “Reverse-Engineering the Casio SK-1, part 1: Dumping the ROM”

I Feel Personally Victimized by the Rust Lexer

I just spent way too long trying to figure out a missing comma. Say you have some code that looks like the following (note the missing comma between &self.srcaddr and &self.dstaddr)

What error would you expect the compiler to spit out? Something like expected token: ‘,’? What about invalid reference to argument ‘3’ (there … Continue reading “I Feel Personally Victimized by the Rust Lexer”