반응형
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
* Relation
* Seek
* String
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 |