pwnable/Fuzzing 3

AFL++ LTO mode

AFL++에서 고오급 기능인 LTO 모드를 지원한다. 공식 문서에 따르면 LTO 모드를 사용하면 더 빠른 속도와 높은 커버리지를 가진다고 한다. LTO 모드를 사용하기 위해서는 llvm 11 버전 이상을 사용해야 한다. LTO 모드를 사용할 수 없으면 LLVM 모드를 사용하고, 이것도 불가능하면 GCC_PLUGIN 모드를 사용하고... 이런 식으로 점차 내려가게 된다. (https://github.com/AFLplusplus/AFLplusplus/blob/stable/docs/fuzzing_in_depth.md) stable 버전인 13버전을 설치하고 LTO 모드를 사용해보자. LLVM Install 다음 내용을 /etc/apt/sources.list.d에 적당히 추가해준다. 20.04(focal), 2..

pwnable/Fuzzing 2022.01.29

AFL Parallel fuzzing

AFL은 단일 코어로 돌기 때문에, 멀티 코어로 퍼징하려면 각 코어마다 노드를 실행시켜야 한다. 한 개의 main 노드와 여러 개의 secondary 노드로 구성하면 된다. 각 노드는 주기적으로 싱크 디렉토리를 스캔하며, 재밌어 보이는 테스트 케이스를 자기 퍼저로 가져와 퍼징한다. 퍼포먼스 이유로 main 노드만이 큐를 싱크 시키며, secondary 노드들은 main 노드로 부터 싱크를 받아온다. 한번의 main 노드가 도는 동안 secondary 노드는 여려번의 cycle을 수행한다. * 큐에 있는 모든 input이 퍼징될 때까지 반복하는 것이 하나의 cycle이다. Main node -M 옵션으로 main 노드 실행 afl-fuzz -i input -o output -M Main_fuzzer -- ..

pwnable/Fuzzing 2022.01.24