Peach的pit文件含有至少一个DataModel,并且经常含有多个DataModel。 DataModel描述的数据包括类型信息,关系(如大小,数量,偏移量等)以及其他能使模糊器进行智能变化的信息。
DataModel可被其他的DataModel复用或重用,从而允许将复杂的数据定义分解成多个可读部分。
Relations用于连接两个在大小,数量或偏移量上存在关系的元素。一个简单的例子就是使用一个length字段来指定接下来的data的长度。在Peach中您可以通过将Relation元素附加到length字段中并将其链接到需要size的元素即可建模该关系。 另一个例子就是数组中元素的个数。 为了建模该关系,可将一个Relation元素添加到数据元素中,该元素包含将其链接到数组元素的计数(count)。
Fixups用于基于其他一个或多个元素的值来生成数据元素值(data element value)。生成CRC32码就是一个例子。
Transformers用于操作数据元素的当前值,执行单向或双向操作,如Base64或ZIP压缩。这样数据元素的值在编码之前可以被模糊。
一旦模型被破解(将数据解析),Placement就用于将元素移动到DataModel中的不同位置。在解析复杂的数组结构时,这非常有用。 Placement通常与偏移关系一起使用。