#4.BFF Fuzzer Option.
#1.동작 방식.
1.SeedFile을 읽어와서 옵션에 맞게 바이너리를 무작위하게 설정.
2.옵션의 cmdline_template에 따라 퍼징 대상 실행.
3.WinDbg로 디버깅 하면서 제한 시간 내 크래시가 나는지 분석.
4.크래시가 일어났다면 msec 모듈로 크래시 분석.
5.로그로 저장.
6.minimize 수행.
7.반복.
#2 각 옵션 설명...2.7 Version.Windows.
1.Campaign Options.
Id => results에 저장될 프로젝트 폴더 이름.
Keep helsenbugs => 후킹으로 발견된 테스트 케이스를 계속 크래시를
발생시키되, 디버거를 통해 실행중일 때는 제외하고, XP가 아니면 무시된다.
Use buttonclicker => 버튼을 클릭하는 프로그램을 실행.
2.Target Options.
Program => 퍼징할 프로그램 절대 경로.
Cmdline Template => 프로그램 명령 줄 호출을 지정하는데 사용된다.
3.Directories used by BFF.
Seedfile dir => 시드 파일 유지.
Working dir => FOE에서 사용하는 임시 공간 렘 메모리를 쓰는 것이 오버헤드를 줄인다.
Results dir => 결과 파일 위치.
4.Runner Options.
Hideoutput => 프로그램의 출력을 숨김.
Runtimeout => 프로그램 시간을 제한.
Watchcpu => 사용률이 0이 되면 중지.
5.Debugger Options.
Debugheap => 프로그램이 debug heap를 사용하게 한다.
Max handled exceptions => 예외를 계속 진행할 최대 횟수.
6.Run Options.
First iteration => 반복 시작 숫자를 지정. 기본값은 0.
Seed interval => 새로운 시드 파일과 돌연변이 범위를 지정하기 저에 수행할 반복 횟수. 기본값은 1.
Minimize => 크래시가 나지만 해시가 같도록 시드 파일과 차이가 적은 파일을 만든다. 기본값은 TRUE.
Minimizer timeout => Timeout minimization이 BFF에서 최대로 할당 가능한 시간.
Keep unique faddr => 충돌 해시의 일부로서 예외 오류 주소 값을 고려.
Keep all duplicates => 모든 중복 충돌의 경우를 유지.
Recycle_crashers => 퍼징할 시드 파일 풀에 특이 크래시 케이스를 재활용.
7.Fuzzer Options. (Only 하나의 퍼저만 선택이 가능).
Bytemut => 임의의 값으로 바이트를 교체.
Swap => 인접한 바이트를 교환.
Wave => 순차적으로 모든 가능한 단일 바이트 값을 순환.
Drop => 각 파일마다 바이트 하나를 제거.
Insert => 각 파일마다 임의의 값 하나를 추가.
Truncate => 파일의 끝 바이트 제거.
Crmut => 임의의 값으로 캐리지 리턴 바이트를 교체.
Crlfmut => 임의의 값으로 캐리지 리턴, 줄 바꿈 바이트 교체.
Nullmut => 임의의 값으로 NULL 바이트 교체.
Verify => 파일을 돌연변이하지 않는다. 즉 충돌 테스트 케이스 확인용.
Fuzz zip container => Zip 파일 내용을 퍼징하지 않고, Zip 자체를 퍼징.
'#Fuzzer' 카테고리의 다른 글
#7.Vulnerabilities exploited using FOE. (0) | 2018.05.25 |
---|---|
#6.FOE Fuzzer Windows Additional Information. (0) | 2018.05.25 |
#5.FOE Fuzzer. (0) | 2018.05.25 |
#2.Types of Fuzzer. (0) | 2018.05.22 |
#1.Fuzzer. (0) | 2018.05.22 |