Recent articles

  1. Compiling with libtool on OmniOS

    I'm having issues compiling glib2.40.0 (a libtool compiled shared library) on Omnios.

    In particular, my shared library has a static initializer that does not get executed by the libtool linked library. I've reduced this to the test case below:

    #include <stdio.h>
    void __attribute__((constructor)) myctor() {
        printf("in …
    read more
  2. Ghost in the Shellcode 2014 - fuzzy

    tl;dr - fuzzy is a "super secure parsing engine", that includes a histogram function. The histogram ascii text uses a buffer on the stack, but will increment buckets past the end of the buffer if non ascii text is provided, allowing us to rop. Binary and exploit available here. Cross …

    read more
  3. Reading resumes

    Tonight, I sat down and read through every resume in the 2013 SCS senior resume book. Reading resumes for a company is really interesting, because I find myself looking at them very differently. As a student, I didn't really understand what sections of the resume are important. I thought it …

    read more
  4. Bash Performance Tricks

    My coworkers presented a silly programming interview style question to me the other day: given a list of words, find the largest set of words from that list that all have the same hash value. Everyone was playing around with a different language, and someone made the claim that it …

    read more
  5. My zsh theme

    I spent some time this week switching from bash to zsh (I really enjoy zsh - I treat it as bash with floating point arithmetic and other niceities) and making a theme for oh-my-zsh and prezto for myself. I'm not quite done, but I am pretty pleased with the results.

    It …

    read more
  6. A cross-platform monotonic timer

    I've been working on writing a memory bandwidth benchmark for a while and needed to use a monotonic timer to compute accurate timings. I have since learned that this is more challenging to do that I initially expected and each platform has a different way of doing it.

    read more
  7. Pai Mei on Mac OSX 10.8

    Pai Mei is an open source windows reverse engineering framework. At one point, it was ported to Mac OSX but the project is not very actively maintained and the current instructions are quite lacking. This post hopes to offer some guidance and reduce some of the frustration involved in installing …

    read more
  8. CS Theory with Make

    In this post, I play around with some make functions and eventually provide a constructive proof that the make syntax is turing complete via reduction to μ-recursion.

    First, we have to construct numbers. I used the representation of numbers as unary strings of the character 0: ie, the number 4 …

    read more