
AI Data Extraction Lab 2: A Generate-then-Rank Attack
Making an LLM regurgitate training data is easy. Proving it did is not: what actually works in an extraction attack, and what doesn't.

Making an LLM regurgitate training data is easy. Proving it did is not: what actually works in an extraction attack, and what doesn't.

The first lab in a series on data extraction attacks: how and when neural networks memorize their training data, with interactive widgets demonstrating memorization in a small transformer.

A survey of prompt injection defences for LLM applications, and the Prompt Injection Defence Atlas: alignment, isolation, information flow control, detection.

How a bug in Hermes's Quicksort can be exploited to run arbitrary code, and Doom, inside the JavaScript engine behind React Native.

Notes on the execution trace analysis work I did during my internship at Quarkslab, covering symbolic execution over traces, program synthesis and reverse engineering tooling.

Comparing data structures for associative arrays with symbolic keys in symbolic execution: why hash maps break down and how symbolic trees handle KLEE-style constraints.

A short farewell to the Twente Hacking Squad, the academic CTF team of the University of Twente, and some thoughts on playing CTFs as part of a team.

An overview of the RHme3 qualifier challenges, covering exploitation, whitebox crypto and side channel analysis, with links to my solutions and the original challenge files.

RHme3 qualifiers writeup for the Exploitation challenge: reverse engineering a silent binary, finding a use-after-free and building a working exploit.

How to debug exploits with Pwntools and Radare2 instead of GDB, attaching r2 to the target process and scripting the whole workflow on a ret2libc example.