About
Experience & Education
Publications
-
Deobfuscation of VM based software protection
SSTIC
In this presentation we describe an approach which consists to automatically analyze virtual machine based software protections and which recompiles a new version of the binary without such protections. This automated approach relies on a symbolic execution guide by a taint analysis and some concretization policies, then on a binary rewriting using LLVM transition.
Other authorsSee publication -
How Triton can help to reverse virtual machine based software protections
CSAW SOS
The first part of the talk is going to be an introduction to the Triton framework to expose its components and to explain how they work together. Then, the second part will include demonstrations on how it's possible to reverse virtual machine based protections using taint analysis, symbolic execution, SMT simplifications and LLVM-IR optimizations.
Other authors -
-
Dynamic Binary Analysis and Obfuscated Codes
St'Hack 2016
At this presentation we will talk about how a DBA (Dynamic Binary Analysis) may help a reverse engineer to reverse obfuscated code. We will first introduce some basic obfuscation techniques and then expose how it's possible to break some stuffs (using our open-source DBA framework - Triton) like detect opaque predicates, reconstruct CFG, find the original algorithm, isolate sensible data and many more... Then, we will conclude with a demo and few words about our future work.
Other authorsSee publication -
How Triton may help to analyse obfuscated binaries
MISC magazine - 82
Binary obfuscation is used to protect software's intellectual property. There exist different kinds of obfucation but roughly, it transforms a binary structure into another binary structure by preserving the same semantic. The aim of obfuscation is to ensure that the original information is "drown" in useless information that will make reverse engineering harder. In this article we will show how we can analyse an ofbuscated program and break some obfuscations using the Triton framework.
Other authorsSee publication -
Triton: A Concolic Execution Framework
SSTIC 2015
This talk is about the release of Triton, a concolic execution framework based on Pin. It provides components like a taint engine, a dynamic symbolic execution engine, a snapshot engine, translation of x64 instruction to SMT2, a Z3 interface to solve constraints and Python bindings. Based on these components, Triton offers the possibility to build tools for vulnerabilities research or reverse-engineering assistance.
Other authors -
-
Dynamic Behavior Analysis Using Binary Instrumentation
St'Hack 2015
This talk can be considered like the part 2 of my talk at SecurityDay. In the previous part, I talked about how it was possible to cover a targeted function in memory using the DSE (Dynamic Symbolic Execution) approach. Cover a function (or its states) doesn't mean find all vulnerabilities, some vulnerability doesn't crashes the program. That's why we must implement specific analysis to find specific bugs. These analysis are based on the binary instrumentation and the runtime behavior analysis…
This talk can be considered like the part 2 of my talk at SecurityDay. In the previous part, I talked about how it was possible to cover a targeted function in memory using the DSE (Dynamic Symbolic Execution) approach. Cover a function (or its states) doesn't mean find all vulnerabilities, some vulnerability doesn't crashes the program. That's why we must implement specific analysis to find specific bugs. These analysis are based on the binary instrumentation and the runtime behavior analysis of the program. In this talk, we will see how it's possible to find these following kind of bugs : off-by-one, stack / heap overflow, use-after-free, format string and {write, read}-what-where.
-
Dynamic Binary Analysis and Instrumentation - Covering a function using a Dynamic Symbolic Execution approach
SecurityDayLille 2015
This talk is about binary analysis and instrumentation. We will see how it's possible to target a specific function, snapshot the context memory/registers before the function, translate the instrumentation into an intermediate representation,apply a taint analysis based on this IR, build/keep formulas for a Dynamic Symbolic Execution (DSE), generate a concrete value to go through a specific path, restore the context memory/register and generate another concrete value to go through another path…
This talk is about binary analysis and instrumentation. We will see how it's possible to target a specific function, snapshot the context memory/registers before the function, translate the instrumentation into an intermediate representation,apply a taint analysis based on this IR, build/keep formulas for a Dynamic Symbolic Execution (DSE), generate a concrete value to go through a specific path, restore the context memory/register and generate another concrete value to go through another path then repeat this operation until the target function is covered.
-
An introduction to the Return Oriented Programming and ROP-chain generation
Bordeaux University
This talk is about an introduction to the return oriented programming and its variants like JOP, SOP... It also describes some techniques and active works about ROP-chain generation based on backtracking or symbolic execution.
-
Introduction to the Return-Oriented Programming
MISC magazine - HS 09
This article is about an introduction to the return oriented programming. In this article we describe the Operating Systems' protections in detail and explains why the ROP exploitation is useful. We also provides a detailled step-by-step example of the ROP exploitation on the CVE-2011-1938 vulnerability.
-
Software testing and concolic execution
LSE Summer Week 2013
This talk is about an introduction to the concolic execution using Valgrind and Z3. Concolic execution is a technique that uses both symbolic and concrete execution. In this talk we introduce a little tool which breaks a dumb crackme.
Projects
-
Triton: A Dynamic Binary Analysis Library
-
Triton is a dynamic binary analysis library. You can build your own program analysis tools, automate your reverse engineering, perform software verification or just emulate code.
- Dynamic symbolic execution
- Dynamic taint analysis
- AST representation of the x86, x86-64, ARM32, AArch64 and RISC-V 32/64 ISA semantic
- Expressions synthesis
- SMT simplification passes
- Lifting to LLVM as well as Z3 and back
- SMT solver interface to Z3 and Bitwuzla
- C++ and Python…Triton is a dynamic binary analysis library. You can build your own program analysis tools, automate your reverse engineering, perform software verification or just emulate code.
- Dynamic symbolic execution
- Dynamic taint analysis
- AST representation of the x86, x86-64, ARM32, AArch64 and RISC-V 32/64 ISA semantic
- Expressions synthesis
- SMT simplification passes
- Lifting to LLVM as well as Z3 and back
- SMT solver interface to Z3 and Bitwuzla
- C++ and Python API
Source code: https://github.com/jonathansalwan/Triton
Website: https://triton-library.github.io
Other similar profiles
-
Antje Farnier, Ph.D.
Connect -
Thibaud Antignac
Manager | GDPR • Data protection • Digital identity • Biometrics • Cybersecurity • Technology • Privacy
Connect -
Muneeb Ullah Khan
Researcher at UTC
Connect -
Carme Gómez
Research Engineer at Catalan Institute of Nanoscience and Nanotechnology
Connect -
Nouha OUALHA
R&D Engineer
Connect -
David Meunier
Ingénieur de recherche
Connect -
kalpana singh
Connect -
Walther Akemann
Neuroscience
Connect -
Guilhem Pages
Research Engineer at French National Institute for Agriculture, Food and Environment
Connect -
Jeanne Treuttel
Research Engineer at Observatory of Paris
Connect
Explore top content on LinkedIn
Find curated posts and insights for relevant topics all in one place.
View top content