How Frida Works?
Stop just using dynamic instrumentation tools. Learn how to build them from scratch.
We are incredibly excited to announce the presale for our newest Fuzzsociety deep-dive: How Frida and Debuggers Work: Building a Lua-Based Injector, led by Antonio Nappa.
In this ~10-hour intensive course, we are pulling back the curtain on how tools like Frida actually function under the hood. You won’t just study the theory—you will build a complete, working Lua-based injector from the ground up using C.
Here is exactly what you will build and learn:
Phase 1: Debugger Internals and Primitives
- Master
ptraceand OS-level debugging APIs. - Implement software/hardware breakpoints and single-stepping.
- Lab: Write a minimal debugger in C from scratch.
Phase 2: Code Injection in C
- Explore
LD_PRELOAD, manual mapping, and trampoline hooks. - Master GOT/PLT hijacking directly at the C level.
- Lab: Write a function hook without relying on any external frameworks.
Phase 3: Deconstructing Frida
- Reverse engineer Frida’s core architecture: GumJS, QuickJS, Stalker, and Interceptor.
- Map the agent/host channel model to see exactly how Frida injects and communicates on live targets.
Phase 4 and 5: Building Your Custom Scripting Engine
- Learn Lua embedding fundamentals and manage the C API/stack model.
- Expose your native C instrumentation primitives (hooks, memory, registers) to Lua.
- Lab: Build the complete injector architecture (loader, C runtime core, Lua script host) and write instrumentation scripts against a real target.
Who is this for?
Vulnerability researchers and engineers with intermediate C programming, familiarity with process memory layouts, and x86/x64 assembly experience. (Lab environment runs on Ubuntu 22.04 LTS).