0x0000 · Domaine
Fondamentaux de la mémoire
Impossible de raisonner sur une corruption mémoire sans savoir où vivent les données. Ce domaine couvre l'espace d'adressage virtuel d'un processus, la construction et la destruction des cadres de pile, la manière dont l'allocateur distribue les blocs du tas, et les segments ELF inscriptibles ou exécutables.
Guides de ce domaine
A defender's tour of a Linux process's address space: ELF segments, the stack and calling conventions, the heap, mmap, and why permissions and randomization matter.
Les guides sont publiés d'abord en anglais. Les traductions suivront.
Autres domaines
Classes de vulnérabilités
Débordements, use-after-free, double free, bugs d'entiers et de chaînes de format, et comment les repérer.
Mitigations d'exploitation
Canaris, NX/DEP, ASLR/PIE, RELRO, FORTIFY_SOURCE, CFI, CET et PAC, et comment les vérifier.
Trouver les bugs
AddressSanitizer, UBSan et fuzzing guidé par la couverture avec libFuzzer et AFL++.
Triage des crashs
Lire signaux, backtraces, rapports de sanitizers et core dumps, et décider quoi corriger en premier.
Développement sécurisé
Langages sûrs pour la mémoire, C++ plus sûr et une stratégie de migration réaliste.
Parcours d'apprentissage
Un parcours légal et progressif, du C et de l'assembleur aux épreuves pwn de CTF et aux métiers de la sécurité.