<보안 study>/시스템

Win-AFL 퍼저 빌드과정

gosoeungduk 2022. 8. 11. 22:23
반응형

#퍼징 #AFL-FUZZ #Win-AFL


리눅스에서는 AFL-FUZZ 를 사용했듯이 윈도우 환경에서도 Win-AFL 을 통해 퍼징을 진행할 수 있다.

GUI 바이너리에도 가능하고, 커스텀해서 퍼징도 가능한듯..? 하다.

무엇보다도 단순 AFL-FUZZ 보다 확장된 기능이 있는데, Syzygy 를 통한 정적 명령어 삽입, DynamoRIO 를 이용한 동적분석 시 명령어 삽입, 하드웨어 트레이싱 등등... 이 있다고 한다.

일단은 빌드 부터 해보기로! 매우 쉽다.

1. CMAKE 설치

Win-AFL 을 빌드하는데에는 CMAKE 가 필요하다. DynamoRIO 기능을 cmake 를 통해 넣어주는 부분에서 필요한 것 같다.

https://cmake.org/download/

위 링크에 가서 자기한테 맞는 걸로 다운받으면 되겠다.

2. DynamoRIO 다운

DynamoRIO 는 동적 분석 시에 프로세스에 명령어를 주입해서 특정 행위를 하도록 할 수 있게하는 프레임워크이다. 이러한 성질을 이용해서 코드 커버리지 분석 시에 많이 사용되는 것 같다. (특정 코드 블럭에 로깅하는 명령어를 넣는다던지..?)

아무튼 DynamoRIO - Github DynamoRIO Github 의 Releases 탭에서 맞는 OS 의 DynamoRIO 를 받으면 된다. (cmake 폴더는 Windows 버전에만 들어있으니 유의)

3. Win-AFL 다운

Win-AFL - Github

Win-AFL 은 직접 빌드할거라서 Release 가 아닌 직접 소스코드를 clone 떠오면 된다.

여기까지 하면 준비는 완료 되었다.

4. 빌드하기

Visual Studio 를 설치하면 기본적으로 제공되는 개발자 쉘을 통해 빌드를 진행한다. 여기서 비트는 퍼징을 진행할 대상 바이너리의 비트에 따라 갈리게 되는데 저는 64 비트 대상으로 퍼징할거라 x64 bit shell 로 진행하겠습니다 ^^

일단은 쉘은 켜둔채로 냅두고

Win-AFL 폴더로 가서 이름 아무거나 좋으니까 빈 폴더를 만들어두자. 필자는 build64 로 정했다.

그리고 다시 VS 쉘로 돌아와서 cmake --help 명령어로 cmake build 시 사용할 수 있는 generator 를 살펴볼 수 있다.

여기서 본인의 Visual Studio 버전에 맞는 녀석을 기억해놓자.

그리고!! 아까 받아놓은 DynamoRIO 의 cmake 폴더 경로도 기억해두자.

마지막 단계만 남았다.

cmake -G"Visual Studio 15 2017 Win64" .. -DDynamoRIO_DIR=..\path\to\DynamoRIO\cmake -DINTELPT=1
cmake --build . --config Release

명령어 두개만 치면된다. Generator 와 DynamoRio 경로만 알아서 잘 바꿔주고 빌드하면 필자 기준으로는 \build64\bin\Releaseafl-fuzz.exe 로 빌드가 잘 되어있을 것이다.

끝이다!

반응형