Address Sanitizer Internals
Prerequisite
For this article, you’ll need the following knowledge:
Basic C understanding (Memory, Stack, Heap, Syscall).
(Optional) x86_64 Assembly
Preamble
Xavier Login is a freshly employee who got his internship in a big company.
On his first days, he was asked to do a little program to validate an input by verifying that a magic byte was set.
So this was the first attempt of Xavier:
magic_checker.c
1
2
3
4
5
6
7
8
9
int is_magic_byte_valid(char *buffer) {
return buffer[10] == 'A';
}
int mai...
Read more at blog.gistre.epita.fr