Sunday, April 11, 2010

Reverse Engineering

To start off I'd like to point at a fellow student
who is doing some really good work, John.

Read about his Universal Decompiler project here

Get the source code here


AND for more RCOS projects be sure to visit this link
================================================


He's also been working on a different kind of reverse engineering.

Years ago I saw a presentation at Hope 2008 by Karsten Nohl on reversing chips. Using some space alien technologies such as "Sandpaper" and "MATLAB" they were able to break proprietary RFID cryptography. Wow! Most hackers would have just called up a secretary or something.

Read Karsten Nohl, Starbug, Henryk Plötz, and David Evans fascinating USENIX paper here.

And another nice presentation was given at cansecwest

While the skilled might be able to read www.siliconzoo.org like a coloring book,
I can not. I'm sure that maybe to VLSI CAD researchers and others it's a breeze. But a blog post over at flylogic left me equally confused. I needed something easier for a newbie like me. I kept getting my parallels vs series pretty darn wrong. So I emailed Dr. Nohl who kindly responded.

So once you see it, it's pretty magical. Sort of. I haven't worked my way through all of the zoo just yet.

Enjoy this educational visual inspection of 2-input CMOS NOR and NAND gates.

Whoaaa

Hello from one year in the future.

I have not worked on RCOS-Binstat since last April. When we left off I realized I did not have enough formal background. I had implemented incomplete disassemblers for x86 and MIPS with basic value propagation for constant folding, some simple SSA, and rudimentary analysis for doing things such as resolving function arguments. Just that alone was actually useful for finding real life bugs.

That code is still available here: http://github.com/adc/rcos-binstat

It sucks.

Hopefully I will get back to it soon. Currently I'm searching around for a language with good features and no bad ones. Something painfully simple and powerful with a low learning curve.

The next thing is to analyze the tremendous amount of projects that have advanced and been created and released to the public in this past year alone.

So what have I been doing in all my free-time? I spent the summer with some very good friends in the land of pirates.

Then stuff happened when I got back to school. My computer engineering classes have picked up, landing me an infinite well of excuses. And just when I thought it got better, the club started teaching a class: www.cs.rpi.edu/academics/courses/spring10/csci4971/.

At least last Fall I finally learned what a transistor is. After all, the university I attend once digested and emitted Teddy Hoff, the father of the microprocessor and Intel employee #12.

I also got some significant appreciation for Shannon's work on boolean logic. A Jean-Claude vs Claude deathmatch will obviously show Shannon as one mighty dude.

Someone should report back on Shannon's work with genetic computing.