Two engineers from QuarksLab had talks accepted at CppCon this year:
two tools presentation, Easy::jit, and Frozen; and a general introduction to
format. It's hard to cope with the 9 hours of jet-lag, but it is definitively
worth the effort, so here is our conf report!
Easy::jit is a library that brings just-in-time compilation to C++ codes.
It allows developers to jit-compile some functions and specializing (part of) their parameters.
Just-in-time compilation is done on-demand and controlled by the developer.
The project is available on github .
This blog post introduces major changes in LIEF 0.9 as well as work in progress features that will be integrated in further releases. Changelog is available here.
A new version of Frozen, an open source, header-only library that provides fast, immutable,
constexpr-compatible implementation of std::search, std::set, std::map,
std::unordered_map and std::unordered_set to C++14 users. That's a follow up to the
previous post !
What happens if one builds up on the Spectre vulnerability to
implement a convoluted version of memcpy? From an obfuscator
point-of-view, it unleashes a wide range of opportunities, which turn
a definite bug into a fun[nk]y feature.
This blog post introduces new features of LIEF as well as some uses cases.
An open source, header-only library that provides fast, immutable,
constexpr-compatible implementation of std::set, std::map,
std::unordered_map and std::unordered_set to C++14 users. It can be
used as an alternative to gperf.
QuarksLab is open-sourcing LIEF, a library to parse and manipulate
ELF, PE and Mach-O binary formats. This blog post explains the
purpose of this project and some parts of its architecture.
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!
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!