New things in clang land (5.0.0)

LLVM 5.0.0 was already released back in September, but I still would like to mention a couple interesting things I encountered while using clang 5. This will not cover all the new things there are, please check the release notes of the respective LLVM components for that. More aggressive optimizations I could not find a mention of this in the release … Read More

Hardening C/C++ Programs Part II – Executable-Space Protection and ASLR

In the first part of this series we discussed the mechanics of an exploit, the general concept of hardening, and the stack protector hardening technique in particular. Some of the concepts explained there will be used here, too, so you might want to read at least the first few paragraphs. Executable-space protection As mentioned in the first part, exploits often … Read More

Hardening C/C++ Programs Part I – Stack Protector

When C, C++ and the Internet were conceived, they were mostly used by academics. Attacks on computer systems were rare, since there was not much incentive to it, so there did not have to be a focus on security and robustness. Nowadays these designs haunt us: The past two decades have uncovered a lot of security vulnerabilities in C/C++ programs, … Read More