Tag: LLVM

10 articles
Date Mon 02 September 2019
Author Melchior de Roquefeuil
Category Programming

In this article I describe my two-months summer internship project at Quarkslab: obfuscating Java bytecode using the [Epona] Code Obfuscator. This article explains our approach, its advantages and limitations.

Date Wed 01 February 2017
Author Serge Guelton
Category Programming

While building an LLVM-based obfuscator, we explore some unexpected code areas. For instance, what happens when you try to optimize a single function that holds millions of instructions? Some LLVM passes start to suffer, including an unexpected one: Global Dead Code Elimination. Let's investigate!

Date Wed 05 October 2016
Author Serge Guelton
Category Programming

Quarkslab was present at CppCon 2016, presenting general thoughts on the C++ optimization process and how much the so-called zero-cost abstraction relied on the compiler implementation, and not on the standard. Now comes a humble report from this great event!

Date Mon 28 March 2016
Author Serge Guelton
Category Programming

HOW-TO: Implementing a custom directive processor in clang to drive the compilation process of our LLVM-base code obfuscator, while maintaining backward-compatibility if another compiler is used. What a good opportunity for a journey in the first compiler stages!

Date Thu 07 January 2016
Authors Serge Guelton, Adrien Guinet
Category Programming

While improving the documentation (d'oh!) of our home grew obfuscator based on LLVM, we wrote a cheat sheet on clang's hardening features, and some of ld ones. It turns out existing hardening guides generally focus on GCC, while Clang also has an interesting set of hardening features. So let's share it in this blog post!

Date Tue 03 November 2015
Authors Serge Guelton, Adrien Guinet
Category Programming

LLVM developer Meeting report

Date Tue 27 October 2015
Authors Serge Guelton, Adrien Guinet
Category Programming

Quarkslab's compiler crew is going to LLVM developer Meeting in CA!

Date Mon 01 June 2015
Author Adrien Merlini
Category Programming

Where a simple xor gets transformed beyond what it ever thought

Date Mon 02 February 2015
Author Adrien Merlini
Category Programming

A "hands-on" introduction to LLVM passes through obfuscation.

Date Fri 27 June 2014
Author Serge Guelton
Category Programming

Why does some memset calls get optimized away by the compiler? Let's investigate!