I’m delroth, or Pierre Bourdon. Originally from France, currently living in Zürich, Switzerland. I’m an open source developer, mainly contributing to NixOS these days. In the past, I was a core developer for the Dolphin Emulator, and I was the main infrastructure maintainer as well as treasurer for the project.
In my working life, I’ve worked for around 10 years as a Software Engineer at Google. I’ve spent around 3 years each specializing in site reliability, counter-abuse technologies, then infrastructure security. Along the way, I also became privacy reviewer for new infrastructure projects, as well as teacher/mentor for new C++ developers at the company.
I’m currently on a sabbatical leave, spending my free time learning more about the country I’ve lived in for 10 years, and finally learning the local language.
Hiking and cycling are almost the national hobby in Switzerland, and it would be a waste to not appreciate the amazing forests, hills, and mountains of the country. You can find an almost full list of the roads and trails I’ve hiked or biked on my Komoot profile.
I enjoy traveling around Switzerland, Europe, and the rest of the world. My favorite travel destination is by far Japan, where I’ve been almost every year since 2016 (minus COVID-19 pandemic years). I log my flights on my OpenFlights profile but I also travel by train more often than I fly.
I play a lot (too much?) video games. I’m really into story driven role playing games (Disco Elysium, The Witcher, Final Fantasy series, Divinity: Original Sin, OMORI), roguelites / deck builders of various genres (Slay the Spire, Against the Storm, Griftlands), and I like to think I’m decent at rhythm games (CHUNITHM whenever I’m traveling somewhere where it’s available, otherwise Project Sekai on my phone).
I watch a lot (also too much?) anime. I keep my Anilist mostly up to date with the series I’ve watched / I’m watching.
Talks and publications
I don’t really do academic stuff or very formal conference talks, but here are a few (in my opinion) interesting articles I’ve written on other people’s websites and talks I’ve given in the past in various places.
A dive into how audio processing is commonly done on two Nintendo consoles: the Gamecube and the Wii. This article explains why exactly audio processing is hard to emulate properly, why the previous implementation was lacking and the work I’ve done in a new implementation to solve these shortcomings.
(Oct 2012) Writeup: Zombies PPTP (Hacklu CTF 2012)
Writeup of an interesting challenge involving hash cracking and clever bruteforcing in order to recover the plaintext from a kind-of-MSCHAPv2 implementation.
How to transform a broken hash algorithm into a logic formula that can be solved in seconds using a SAT solver. Good example of why you should never try to write these kind of algorithms yourself.
(May 2012) PythonGDB Tutorial for Reverse Engineering
First and last article of a series that I planned to write on PythonGDB uses in my reverse engineering work, sadly I never found the motivation to write more (about topics like tracing automation, for example). Still, this is a pretty nice introduction to what’s possible with the PythonGDB API.
Taking an unknown binary compression format and staring at it long enough until it makes sense. This was a very fun experience for me since I never really knew much about compression before working on this reverse engineering work. This article should be very interesting if you’re interested in how reverse engineers think when confronted with a new problem they don’t know.
(Mar 2012) More Fun with the NDH2K12 Prequals VM
Escaping and exploiting a VM running with ASLR and NX enabled, using /proc/self/mem to bypass memory write protections (very cool trick that is unfortunately not that well known).
30th Chaos Communication Congress (2013, 30C3)
At university / LSE Week seminars
- Using SAT Solvers for Security Related Problems (slides)
- Reverse Engineering a DSP Firmware (slides)
- LSE Week 2012 Crackme Making-Of (slides)
- WPA2 Enterprise and Wi-Fi security (slides)
- Video Game Consoles Emulation: HOWTO? (slides)
- Security of Video Game Consoles (slides)
- Anti-debugging on Linux using vm86 (slides)
- Merkle Trees and Integrity Checking (slides)
- Reverse Engineering a Bytecode VM (slides)
- The Nintendo Wii Security Model (slides)
- 3D Programming With OpenGL (slides)
- Introduction to the Python Programming Language (slides)
In the past
At Prologin I ended up redesigning the whole software infrastructure used to host the competition’s finals (~100 contestants over ~48h, akin to a LAN Party environment but with slightly higher stakes). I was also the main author of the software used to run matches between AIs/actors written by the contestants.
I studied computer science at EPITA (Paris, France). I am an Ingénieur diplômé, which is roughly equivalent to a Professional Engineer status and is MSc equivalent.
During my studies I was a member of the LSE, the university’s Systems and Security research lab. There I worked on various low-level projects such as kernel and drivers development, hardware and firmware emulation, or reverse engineering tooling.
I was a part of the lab’s CTF team, which made it to a respectable 5th place CTFTime ranking in 2012.