SOFTWARE OBFUSCATION · REVERSE ENGINEERING

Breaking and Building Defenses: Software Security and Code Obfuscation

I work in a continuous loop: breaking protections to build better, automated solutions. To achieve this, I balance my time between reverse engineering and software protection engineering.

RESEARCH

Protection, analysis, tooling, and publication as one continuous research loop.

Research areas

  • Obfuscation engineering
  • Deobfuscation & reversing
  • Mobile RASP
  • Agentic Binary Tooling

BUILD / BREAK / LEARN

Protection gets better when the offensive and defensive work side-by-side.

On the defensive side, I created the open-obfuscator projects including tools like O-MVLL & dProtect. On the offensive side, I reverse-engineer commercial protection stacks to uncover their underlying architectures, assumptions, and limitations

I'm also the author and core developer of LIEF, the cross-platform library that makes executable formats easy to parse, inspect, modify, and rebuild from C++, Python, Rust, and more.

CORE RESEARCH

Obfuscation: Both Sides.

I build protections to understand the constraints, and I reverse protections deployed in the wild to learn where they bend or break.

01 / DEFENSIVE

Contributions

open-obfuscator provides a free and easy way to get started with protection on mobile

  • O-MVLL for LLVM-based native code protection
  • dProtect for Android Java and Kotlin bytecode
  • Open designs following known protections

Non-public work

  • Architected an innovative, non-intrusive IR-based obfuscation pipeline that integrates seamlessly across Android, iOS, and Windows toolchains.
  • Engineered a stealthy Android packer designed to provide robust anti-tampering protection for mobile video games.

PUBLICATIONS

Blog Posts

Deep dives into obfuscation, deobfuscation, program analysis, and software protections.

BUILT FOR AUTOMATION

Tooling

Open-source tools, private components, and the systems behind an agentic reverse-engineering workflow.

All projects
LIEF cross-platform executable format architecture

Flagship project

LIEF

Parse, inspect, modify, and build ELF, PE, Mach-O, DEX, and more through one consistent C++, Python, Rust, Java, or C API.

  • ELF
  • PE
  • Mach-O
  • DEX
  • multi-language
Closed source LIEF Extended

MCStone

A clean, high-performance assembler and disassembler built on LLVM's MC layer for engineering and reverse-engineering workflows.

  • LLVM MC
  • assembler
  • disassembler
Closed source LIEF Extended

Lypid

A user-friendly library for inspecting DWARF and PDB debug information, and generating DWARF.

  • DWARF
  • PDB
  • debug information
Closed source

Hooky

A modern C++ hooking framework for x86-64, ARM64, and RISC-V64, with cross-platform detours and function replacement.

  • hooking
  • x86-64
  • ARM64
  • RISC-V64
Closed source

DynaMIR

A modern dynamic binary instrumentation engine for x86-64, ARM64, and RISC-V64, built around a custom MLIR-based IR.

  • DBI
  • MLIR
  • x86-64
  • ARM64
  • RISC-V64
Closed source

BinLift

A user-friendly binary lifter built on QBDL, with DWARF-aware types and native or instrumented function calls.

  • binary lifting
  • QBDL
  • QBDI
  • DWARF
Closed source

CLayout

A Clang-powered analyzer for C and C++ layouts that resolves target-specific records, field offsets, sizes, methods, and types.

  • Clang
  • C++
  • type layout
Closed source LIEF Extended

iCDump

A modern, cross-platform Objective-C class dump that reconstructs declarations from Mach-O metadata with LIEF and LLVM.

  • Objective-C
  • Mach-O
  • LIEF Extended

OPEN SOURCE

Public research tools

Source-available projects, proofs of concept, and reusable research infrastructure.

Publications.

Conference talks, white papers, and technical publications.

Browse all publications

TRAINING / WORKSHOP

Reverse Engineering Workshop

This workshop introduces the main concepts to get started in reverse engineering

4 hours Engineers/Students Beginners
Explore the workshop

SIDE CHANNELS

PoC

Small experiments [...]

EXPERIMENT

QString

QString object layout from Qt 5.11.2

EXPERIMENT

QList

QList object layout from Qt 5.11.2