当前位置: 首页 > 工具软件 > Peach Fuzzer > 使用案例 >

Peach Fuzzer - DataModeling

饶滨海
2023-12-01

Data Modeling

Peach的pit文件含有至少一个DataModel,并且经常含有多个DataModel。 DataModel描述的数据包括类型信息,关系(如大小,数量,偏移量等)以及其他能使模糊器进行智能变化的信息。

DataModel可被其他的DataModel复用或重用,从而允许将复杂的数据定义分解成多个可读部分。

Data Modeling Elements

  • DataModel
  • Blob
  • Block
  • Choice
  • Custom
  • Flag
  • Flags
  • Number
  • Padding
  • String
  • XmlAttribute
  • XmlElement

Relations

Relations用于连接两个在大小,数量或偏移量上存在关系的元素。一个简单的例子就是使用一个length字段来指定接下来的data的长度。在Peach中您可以通过将Relation元素附加到length字段中并将其链接到需要size的元素即可建模该关系。 另一个例子就是数组中元素的个数。 为了建模该关系,可将一个Relation元素添加到数据元素中,该元素包含将其链接到数组元素的计数(count)。

Fixups and Transformers

Fixups用于基于其他一个或多个元素的值来生成数据元素值(data element value)。生成CRC32码就是一个例子。

  • Fixup

Transformers用于操作数据元素的当前值,执行单向或双向操作,如Base64或ZIP压缩。这样数据元素的值在编码之前可以被模糊。

  • Transformer

Placement

一旦模型被破解(将数据解析),Placement就用于将元素移动到DataModel中的不同位置。在解析复杂的数组结构时,这非常有用。 Placement通常与偏移关系一起使用。

  • Placement
 类似资料:

相关阅读

相关文章

相关问答