본문 바로가기

취약점 분석/PeachFuzzer

[참조]PeachFuzzer - Block

반응형

Block

: Block element는 DataModel 혹은 Block의 child이다. Block들은 하나 이상의 Number 혹은 String과 같은 data element들을 논리적 구조체로 통합시키는 데 사용된다. (Block으로 묶인다고 생각하면 이해가 쉽다.)

Block과 DataModel은 매우 유사하며 location이 유일한 차이점이다. DataModel은 top level element고, Block은 DataModel의 child이다. 당연히 Block도 DataModel처럼 다른 Block 혹은 DataModel의 template으로 쓰일 수 있다.


<Block name="HelloWorld">
  <String value="Hello world!" />
</Block>  --- DataModel로 치환하더라도 문제 없다.


Attributes

Required로 명시한 것을 제외하고는 모두 optional하다.

* name : block 이름

* ref : template으로 쓸 DataModel을 참조

* minOccures : 최소 발생 횟수

* maxOccurs : 최대 발생 횟수

* mutable : data element의 가변성 (기본 값 : true)


Valid Child-Elements

* Blob

* Block

* Choice

* Custom

* Fixup

* Flag

* Flags

* Number

* Padding

* Placement

* Relation

* Seek

* String

* Transformer

* XmlAttribute

* XmlElement


Example

<DataModel name="BlockExample2">  
 <Block name="HeaderDef"> -- 이름을 붙여주면 가독성, debug 시 이점.
  <String name="Header" />
  <String name="Colon" value=":"/>
  <String name="Val"/>
 <Block> -- 논리적인 구조를 가진다. HeaderDef Block으로 묶임.

 <Block name="DataDef">
   <Number name="Type"  size="8" value="4"/>
   <Number name="Data" size="8" value="32"/>
 </Block> -- 논리적인 구조2 -- DataDef Block으로 묶임.
 </DataModel>



반응형

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

[참조]PeachFuzzer - Flag  (0) 2017.12.06
[참조]PeachFuzzer - Choice  (0) 2017.12.06
[참조]PeachFuzzer - Blob  (0) 2017.12.06
[참조] PeachFuzzer - DataModel  (0) 2017.12.06
[종합] Peach Fuzzer Tutorial - Write Peach Pit  (0) 2017.12.06