http://theelectronjungle.com/2015/02/15/use-after-free-in-vlc-2.1.x文中,对vlc的uaf漏洞进行分析,其中采用了AddressSanitizer对漏洞进行分析。下面为AddressSanitizer的简单使用。
1. 准备
官网:https://code.google.com/p/address-sanitizer/wiki/AddressSanitizer
版本要求: LLVM3.1 或者gcc4.8(我选择的linux发行版为ubuntu14.04)
sudo apt-get install clang-3.3
Ubuntu14.04的默认gcc版本为4.8
2. 使用
编写有漏洞的代码uaf.c:
#include <stdlib.h>
int main() {
char *x = (char*)malloc(10 * sizeof(char*));
free(x);
return x[5];
}
2.1 clang编译命令:
clang -fsanitize=address -O1-fno-omit-frame-pointer -g uaf.c
2.2 gcc编译命令:
gcc -fsanitize=address -O1-fno-omit-frame-pointer -g uaf.c