I am so fscking 1337 XD

1) My desktop server tunnel broke, so being in a DMZ, there was no way for me to get from my server to the desktop. Then I remembered I'd lent my crossover cable to a friend and ended up plugging all the boxes into the same switch. Seeing as I needed to keep the server's DMZ connection up to be connected to it, and connect to the LAN to get at the desktop, with one network card and one cable, one may think I was screwed; not so! Linux allows you to create virtual network interfaces, and be connected to several networks over one cable

2) I was told to check out the Ever17 demo; I did, and I found that it crashed when loading, every time. Always looking for ways to try out my latest toys, I figured I'd see what was up. 15 minutes later I was pretty sure of what was going wrong (buffer overrun smashing a pointer) and how to fix it in theory (check the pointer is valid), but there was still a problem -- unlike regular languages, you can't just insert code anywhere into a binary file, as the offsets are hard coded into it. Thankfully, the compiler aligned functions to 16 byte boundaries, leaving some padding at the end of each -- I could jump to part of the padding, run the code that I'd replaced with a jump, run my new code, and jump back \o/ But 16 byte alignment means 16 bytes free *at most*, which still isn't enough for all I want to do /o\ Orignally I ended up chaining several padding spaces together, but then I figured I could shuffle the pointer check around and do it in one less byte, which would fit \o/

Images: before and after

Ed: lock for spam

2006-01-14 06:58:43 -0600
Previous Index Next