Address Sanitizer와 함께 빌드하기 GCC와 CLANG로 빌드 시 Adress sanitizer를 구성하는 예시이다. 오브젝트 코드 주소를 소스 코드 행 번호와 파일 이름으로 변환하려면 ASAN_OPTIONS=symbolize=1 옵션이 필요하다. GCC 사용 시 권장 방법은 -static-libasan 을 사용하여 ASAN에 정적으로 링크하는 것이다. ( ldd 명령어를 이용하여 이를 확인해보자.) ldd ldd(List Dynamic Dependencies)는 프로그램이나 공유 라이브러리들이 요구하는 공유 라이브러리(shared libraries)를 출력하는 명령 행(Command Line)프로그램이다. –version : ldd의 버전을 출력한다. -v, –verbose : 심볼 버전 정도등 모든 정보를 출력한다. -d, –data-relocs -r, –function-relocs –help : 사용방법을 출력한다. 출처 : joinc - ldd main.cpp 다음은 스택 오버플로우 취약점이 있는 간단한 소스코드이다. int main( int argc, char **argv) { int stack_array[ 100 ]; stack_array[ 1 ] = 0 ; return stack_array[argc + 100 ]; // BOOM } Makefile . PHONY: using -gcc using -gcc -static using -clang using -gcc : g ++- 4.8 -o main -gcc -lasan -O -g -fsanitize = address -fno -omit -frame -pointer main . cpp && \ ASAN_OPTIONS = symbolize = 1 ASAN_SYMBOLIZER_PATH = $(shell which llvm -s...