Looking Towards Summer: Concolic Execution, Fuzzy Panda, and More

It’s always bothered me that MIT or MIT Lincoln Lab didn’t submit anything to DARPA’s Cyber Grand Challenge. With all the smart people, such as my advisor, Armando Solar-Lezama, working on program analysis and formal methods (which I currently know nothing about), I would have expected that we could create a strong Cyber Reasoning System worthy of CGC.

That’s sort of what I will be working on this summer at Lincoln and probably writing my thesis on. But I’m very new to the field and have just started diving in.

I will primarily be engineering on panda, LL’s dynamic analysis platform. I will first need to implement record-replay for PowerPC, because that’s what a lot of embedded devices are still programmed in.

More on this later…

Anyways, I’ve decided that I’m going to take 6.035 again in Fall, but this time in Haskell. The fall version will have a language much simpler semantics but is going to be very optimization-heavy. I’d like to get the experience in functional programming, as well as implement the optimizations that I didn’t get to this semester.

I still want to get better at Rust, though, so I will continue working on this Spring’s version of 035, the MITScript dynamic language. I would like to get the code generator fully working and integrate a generational GC. Thank goodness I have JustAPerson around to help me debug Rust.

For the sake of learning Haskell and LLVM, I’ll try to follow the Kaleidoscope tutorial. JustAPerson seems to think I won’t be able to handle 6.035 in Haskell unless I spend the whole summer practicing.

Fortenforge and I will also be finishing the Matasano Crypto Challenges and working on a packet analysis framework for Lab RATs to use at DEF CON this summer.

Many things to do!