Recently, I’ve been looking at some existing tools to efficiently find bugs in the Julia language implementation: American Fuzzy Lop (AFL) for fuzzing the compiler, and C-Reduce for reducing test cases. In this post, I’ll detail the set-up and use of these tools. Skip to the bottom of this post for a demonstration. American Fuzzy Lop Fuzzing Julia used to be impractical due to the…
Last week in Berkeley, there was the annual JuliaCon where I gave a couple of talks on the GPU infrastructure I have been working on. Here’s the material from those talks: CUDAnative.jl talk (high-level): slides CUDAnative.jl workshop (hands-on): notebook ( HTML , slides ) LLVM.jl lightning talk: notebook ( HTML , slides )
Address sanitizer is a useful tool for debugging various memory problems, from invalid accesses to mismanagement or leaks. It is similar to Valgrind’s memcheck , but uses compile-time instrumentation to lower the cost. In this post I’ll explain how to use Clang’s address sanitizer (or ASAN) with Julia. This is somewhat tricky, as the Julia compiler uses LLVM for code generation…
When dealing with disk images, the bmap-tool project is a godsend for writing said images to a physical device. Relying on an accompanying bmap file, bmaptool skips unused data when copying an image. Sadly, only few image providers bundle their images with the necessary bmap information. Even though using bmaptool with plain images still pays off (writing to devices is notably faster than a…
I’ve recently been spending some time on building an enclosure for my Raspberry Pi-based sound system, replacing the ModMyPi case and micro-USB charger while upgrading the audio quality by using a dedicated DAC. I started from a nice-looking example I found online, which features an inexpensive aluminum enclosure from eBay and a compact switching power supply to get rid of the external…
sudo is a popular program for executing commands as a substitute user, most of the times root . For the purpose of user-friendliness, sudo caches the right to elevate for several minutes. By hooking user-level library calls using LD_PRELOAD and waiting until the user unlocks sudo , we can abuse this caching mechanism and gain elevated access. For this exploit, I am assuming local user access where…
iptables doesn’t like torrent traffic. More specifically, its connection tracker (dubbed conntrack ) easily gets confused by connections to and from the swarm. In order to get all traffic through, I decided to bypass connection tracking for BitTorrent traffic, which has significantly improved my up- and downloading speeds! The most common problem with tracking BitTorrent connections is the…
Nowadays, classroom performance systems seem to be all the rage. Likewise at my uni, where I came across the Turning Technologies RCRF-03 clicker. Having read Travis Goodspeed’s hack of the RCRF-01 , I decided to have a go at the newer model. The goal of this hack is to extract and reverse-engineer the executed code, and subsequently sniff or forge votes ( spoiler : I failed). Hardware…
For the few last months, I have been working on CUDA support for the Julia language . It is now possible to write kernels in Julia and without much hassle execute them on a NVIDIA GPU, but there are still many limitations. Note from 2018 : Much has happened since 2015, and as a result this blog post has become pretty stale. Check-out CUDAnative.jl for more details about the current state of…
After switching my SSH server over from some random high port to tcp/22 , I have been seeing loads of brute-force activity trying to gain access. Even though those attempts are futile, I don’t like the attention. Besides, who knows what vulnerabilities may crop up yet. In search for a good protection measure, I decided to avoid exposure of critical services through a layer of port knocking .…
I recently found about Pushbullet , a service and set of applications which allows you to share notifications and other text messages between your devices. They also provide a convenient API, making it easy to send notifications from scripts or other programs. In a quest to secure my personal server, I wanted to get a notification for each SSH login. I found some solutions online, but they…
Once again, I decided to move my blog over to a new home. Making use of the opportunity, I’ve switched technologies to what all the cool kids seem to be using: Jekyll , a Ruby application for generating static HTML sites. By forking an existing theme, all the boilerplate was already taken care of. I picked Lanyon for its looks and simplicity, and managed to get a basic blog up and running in…