Recommended reading : ownership , unsafe Rust Introduction 🔗 This blog post covers my adventure in fixing a bug in the Rust bindings for the Capstone C library , a disassembly library that supports several CPU architectures. The capstone-rs crate attempts to provide a Rusty, object-oriented interface. You do not necessarily need previous experience in C code or foreign function (FFI) bindings to…
Note: This post assumes some familiarity with Rust, in particular traits . Introduction 🔗 It is useful to be able to write code that is generic over multiple types, such as integer types. The Rust standard library originally had the unstable (deprecated since release 1.11.0) traits Zero and One that could partially help, but these required the nightly compiler. Since then, the num crate has moved…
I previously released a Python module, fuzzybit , that can be used to inspect the bit-level entropy of an observed history of values. I am now open-sourcing some example code I wrote for examining the section load address entropy. The example code can be found in the examples/vmmap_entropy directory of the fuzzybit source. The example code has the following files: calc_vmmap_entropy.py : Python…
This is a writeup/walkthrough for a binary exploitation challenge I wrote for a CTF competition at the University of Michigan that was hosted by Facebook . This article assumes that you are familiar with GDB and basic binary exploitation techniques such as return to libc attacks . You can download the problem and solution from GitHub . Note: When this blog was originally written, pwntools was the…
The article Smashing the Stack for Fun and Profit by Aleph One is the seminal work in bringing the method of stack-based buffer overflows to the masses. However, a problem with Smashing the Stack is that it was published in 1996—modern defenses (which are enabled by default) frustrate would be hackers who try to follow the tutorial, only to find that the examples do not work. As the 20 th…
We designed and implemented Umbra (available on GitHub ), an application-layer firewall that targets embedded web interfaces. Umbra is designed to be simple for manufacturers to configure and add to existing embedded systems. Umbra works by acting as a friendly man-in-the-middle that enforces a set security policy. Umbra can protect against attacks such as cross-site request forgery (CSRF),…
I recently switched to the i3 window manager . This was not my first time using a tiling window manager---I have previously used xmonad . My gripe with xmonad was that even though I am familiar with functional programming (specifically OCaml), I did not understand the Haskell configuration script at all, and it seems like I'm not the only one . For me, i3 wins over xmonad in terms of configuration…
We investigated the security of Estonia's Internet elections assuming a state-level adversary. I wrote the proof-of-concept client malware that is able to silently steal votes. The project website is https://estoniaevoting.org/ . You can see read our peer-reviewed paper at https://estoniaevoting.org/findings/paper/ . BibTeX: 🔗 @InProceedings{ivoting-ccs2014, author = {Drew Springall and Travis…