Robin David

dblp:162/3665 · DBLP profile ↗
← Back
8ranked-venue papers
2as first author
3since 2021 · last 2026
0009-0008-8214-875XORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Security and privacy · 3 · 2 since 2021Software engineering, systems software and programming languages · 3 · 2 first-authorArtificial intelligence and machine learning · 2 · 1 since 2021Theory of computation · 1
YearPublicationVenuePosition
2026 Deobfuscation as a GNN-Based Graph-Edit Problem by Reinforcement Learning
abstract
Obfuscation is a software protection technique that transforms a program's binary code to conceal its behavior and to hinder analysis.Conversely, deobfuscation is an adversarial process that seeks to partially or fully remove the applied obfuscation in order to recover the original, unobfuscated code.This work introduces the first deobfuscation framework based on Reinforcement Learning (RL).It models an obfuscated function's binary code using a novel graph representation integrating both data and control-flow.The graph is then progressively simplified through a sequence of graph-edit operations, selected iteratively by a Graph Neural Network (GNN)-based agent operating within a RL pipeline.Experiments demonstrate promising results on Mixed Boolean Arithmetic (MBA) obfuscation, where multiple variants of diverse expressions can successfully be simplified into valid deobfuscated variants.* This work was partially
Roxane Cohen, Robin David, Samuel Hangouët, Florian Yger, Fabrice Rossi
ESANN2
2025 Experimental Study of Binary Diffing Resilience on Obfuscated Programs
Roxane Cohen, Robin David, Riccardo Mori, Florian Yger, Fabrice Rossi
DIMVA (1)2
2022 Building a Commit-level Dataset of Real-world Vulnerabilities
abstract
While CVE have become a de facto standard for publishing advisories on vulnerabilities, the state of current CVE databases is lackluster. Yet, CVE advisories are insufficient to bridge the gap with the vulnerability artifacts in the impacted program. Therefore, the community is lacking a public real-world vulnerabilities dataset providing such association. In this paper, we present a method restoring this missing link by analyzing the vulnerabilities from the AOSP, an aggregate of more than 1,800 projects. It is the perfect target for building a representative dataset of vulnerabilities, as it covers the full spectrum that may be encountered in a modern system where a variety of low-level and higher-level components interact. More specifically, our main contribution is a dataset of more than 1,900 vulnerabilities, associating generic metadata (e.g. vulnerability type, impact level) with their respective patches at the commit granularity (e.g. fix commit-id, affected files, source code language). Finally, we also augment this dataset by providing precompiled binaries for a subset of the vulnerabilities. These binaries open various data usage, both for binary only analysis and at the interface between source and binary. In addition of providing a common baseline benchmark, our dataset release supports the community for data-driven software security research.
Alexis Challande, Robin David, Guénaël Renault
CODASPY2
2018 Arrays Made Simpler: An Efficient, Scalable and Thorough Preprocessing
abstract
The theory of arrays has a central place in software verification due to its ability to model memory or data structures. Yet, this theory is known to be hard to solve in both theory and practice, especially in the case of very long formulas coming from unrolling-based verification methods. Standard simplification techniques à la read-over-write suffer from two main drawbacks: they do not scale on very long sequences of stores and they miss many simplification opportunities because of a crude syntactic (dis-)equality reasoning. We propose a new approach to array formula simplification based on a new dedicated data structure together with original simplifications and low-cost reasoning. The technique is efficient, scalable and it yields significant simplification. The impact on formula resolution is always positive, and it can be dramatic on some specific classes of problems of interest, e.g. very long formula or binary-level symbolic execution. While currently implemented as a preprocessing, the approach would benefit from a deeper integration in an array solver.
Benjamin Farinier, Robin David, Sébastien Bardin, Matthieu Lemerre
LPAR2
2017 Backward-Bounded DSE: Targeting Infeasibility Questions on Obfuscated Codes
abstract
Software deobfuscation is a crucial activity in security analysis and especially in malware analysis. While standard static and dynamic approaches suffer from well-known shortcomings, Dynamic Symbolic Execution (DSE) has recently been proposed as an interesting alternative, more robust than static analysis and more complete than dynamic analysis. Yet, DSE addresses only certain kinds of questions encountered by a reverser, namely feasibility questions. Many issues arising during reverse, e.g., detecting protection schemes such as opaque predicates, fall into the category of infeasibility questions. We present Backward-Bounded DSE, a generic, precise, efficient and robust method for solving infeasibility questions. We demonstrate the benefit of the method for opaque predicates and call stack tampering, and give some insight for its usage for some other protection schemes. Especially, the technique has successfully been used on state-of-the-art packers as well as on the government-grade X-Tunnel malware - allowing its entire deobfuscation. Backward-Bounded DSE does not supersede existing DSE approaches, but rather complements them by addressing infeasibility questions in a scalable and precise manner. Following this line, we propose sparse disassembly, a combination of Backward-Bounded DSE and static disassembly able to enlarge dynamic disassembly in a guaranteed way, hence getting the best of dynamic and static disassembly. This work paves the way for robust, efficient and precise disassembly tools for heavily-obfuscated binaries.
Sébastien Bardin, Robin David, Jean-Yves Marion
IEEE Symposium on Security and Privacy2
2016 Specification of concretization and symbolization policies in symbolic execution
abstract
Symbolic Execution (SE) is a popular and profitable approach to automatic code-based software testing. Concretization and symbolization (C/S) is a crucial part of modern SE tools, since it directly impacts the trade-offs between correctness, completeness and efficiency of the approach. Yet, C/S policies have been barely studied. We intend to remedy to this situation and to establish C/S policies on a firm ground. To this end, we propose a clear separation of concerns between C/S specification on one side, through the new rule-based description language CSml, and the algorithmic core of SE on the other side, revisited to take C/S policies into account. This view is implemented on top of an existing SE tool, demonstrating the feasibility and the benefits of the method. This work paves the way for more flexible SE tools with well-documented and reusable C/S policies, as well as for a systematic study of C/S policies.
Robin David, Sébastien Bardin, Josselin Feist, Laurent Mounier, Marie-Laure Potet, Thanh Dinh Ta, Jean-Yves Marion
ISSTA1
2016 BINSEC/SE: A Dynamic Symbolic Execution Toolkit for Binary-Level Analysis
abstract
When it comes to software analysis, several approaches exist from heuristic techniques to formal methods, which are helpful at solving different kinds ofproblems. Unfortunately very few initiative seek to aggregate this techniques in the same platform. BINSEC intend to fulfill this lack of binary analysis platform by allowing to perform modular analysis. This work focusses on BINSEC/SE, the new dynamic symbolic execution engine (DSE) implemented in BINSEC. We will highlight the novelties of the engine, especially in terms of interactions between concrete and symbolic execution or optimization of formula generation. Finally, two reverse engineering applications are shown in order to emphasize the tool effectiveness.
Robin David, Sébastien Bardin, Thanh Dinh Ta, Laurent Mounier, Josselin Feist, Marie-Laure Potet, Jean-Yves Marion
SANER1
2015 Sound and Quasi-Complete Detection of Infeasible Test Requirements
abstract
In software testing, coverage criteria specify the requirements to be covered by the test cases. However, in practice such criteria are limited due to the well-known infeasibility problem, which concerns elements/requirements that cannot be covered by any test case. To deal with this issue we revisit and improve state-of-the-art static analysis techniques, such as Value Analysis and Weakest Precondition calculus. We propose a lightweight greybox scheme for combining these two techniques in a complementary way. In particular we focus on detecting infeasible test requirements in an automatic and sound way for condition coverage, multiple condition coverage and weak mutation testing criteria. Experimental results show that our method is capable of detecting almost all the infeasible test requirements, 95% on average, in a reasonable amount of time, i.e., less than 40 seconds, making it practical for unit testing.
Sébastien Bardin, Mickaël Delahaye, Robin David, Nikolai Kosmatov, Mike Papadakis, Yves Le Traon, Jean-Yves Marion
ICST3