본문 바로가기

취약점 분석/PeachFuzzer

[종합] Peach Fuzzer Tutorial - Write Peach Pit

[피치 퍼저 튜토리얼 - Pit 파일 만들기]


피치 퍼저 커뮤니티 - http://community.peachfuzzer.com/v3/PeachPit.html



Peach 3 Pit Files

Peach Pit은 퍼징을 돌리기 위해 필요한 정보를 담고 있는 XML 파일을 말한다.

피치 핏은 다음과 같은 항목들을 포함한다. 클릭하면 원문으로 이동한다.

 * General Configuration

 * Data Modeling

 * State Modeling

 * Agents and Monitors

 * Test Configuration

하나씩 살펴보자.


General Configuration

Include : 다른 Peach Pit 파일의 data model과 data sets을 재사용하고자 특정 namespace로 import한다. namespace(이하 ns)로 include된 pit 파일을 참조할 때에는 ns와 colon(:)를 사용한다.

    <Include ns="foo" src="file:foo.xml" /> -(file:'파일명')                
                                                                             
    <DataModel name="NewDataModel" ref="foo:TheDataModel"> -(ns:'참조항목') 
                                                                             
    </DataModel>                                                             

src에는 Source URL이 들어가는데, 파일이름은 "file:" prefix를 둔다.


Defaults : 엔디안과 같은 default 속성들을 설정한다.


PythonsPath : 파이썬 모듈을 위한 추가적인 paths를 명시한다. - default로 local directory가 포함된다. Peach를 확장하거나 custom code의 위치를 include하는 데 사용된다.

    <PythonPath path="c:/peach/mycode">  -- include custom code


Import : Pit 파일에서 사용할 커스텀 파이썬 모듈 혹은 코드를 import한다. 파이썬의 import 키워드처럼 동작한다.

    <Import import="MyCode" />



Data Modeling

: Pit 파일은 적어도 하나 이상의 DataModel을 포함하며, 여러개도 포함 가능하다.

Smart한 Fuzzing을 수행하는데 필요한 정보들을 기술한다. (including type information, relationships(size, count, offsets) etc.

데이터 모델은 재사용되거나 참조될 수 있다.

Data Modeling Elements

* DataModel

* Blob

* Block

* Choice

* Custom  -- 미구현 상태

* Flag

* Flags

* Number

* Padding

* String

* XmlAttribute

* XmlElement

Relations

* Relation

Fixups and Transformers

* Fixup

* Transformer

Placement

* Placement


State Modeling


Agents


Test










'취약점 분석 > PeachFuzzer' 카테고리의 다른 글

[참조]PeachFuzzer - Flag  (0) 2017.12.06
[참조]PeachFuzzer - Choice  (0) 2017.12.06
[참조]PeachFuzzer - Block  (0) 2017.12.06
[참조]PeachFuzzer - Blob  (0) 2017.12.06
[참조] PeachFuzzer - DataModel  (0) 2017.12.06