peach fuzz笔记

DataMOde

DataModel 是用来定义数据结构的元素,我们可以在里面定义哪些结构需要进行Fuzz,哪些结构不需要进行
在这里插入图片描述在这里插入图片描述
一个xml可以有多个DataModel 如果有多个 但是该元素在xml最外层 则会这样
在这里插入图片描述
你可以用Peach根元素包含该元素
1)属性:
Name—必须的。当引用模型或者调试时,友好的DataModel名字是非常有用的。
Ref—可选的。引用一个DataModel模板。
Mutable—可选的,默认为真。该元素是否可变异。
Constraint—可选的。确定一个表达式,它帮助Peach确定数据元素是否已被适当的消耗。
(2)子元素:
Block、Choice、Custom、Flag、Flags、Number、Padding、String、XmlAttribute、XmlElement、Relation、Fixup、Transformer、Placement

String

在这里插入图片描述在这里插入图片描述

Block

在这里插入图片描述
(1)属性(除非声明,所有的属性都是可选的):
Name—Block的名字。
Ref—引用一个数据模型来作为Block的模板。。
minOccurs—该Block必须发生变化的最小次数。
maxOccurs–该Block可以发生变化的最大次数。
Mutable—元素是否可变异,默认为真。
(2)子元素:
Blob、block、Choice、Custom、Fixup、Flag、Flags、Number、Padding、Placement、Relation、Seek、String、Transformer、XmlAttribute、XmlElement。

在这里插入图片描述在这里插入图片描述这里有点意思 像c语言的结构体一样
在这里插入图片描述引用一个Block。引用的内容将被复制,并作为基础来创建新的Block。新Block中的任何子元素将覆盖那些已经存在的具有相同名字的元素。(通俗点 把别的元素的内容给拷过来了)
在这里插入图片描述在这里插入图片描述也就是说Block中的子元素会覆盖拷过来同名元素的内容

Number

该元素定义了长度为8,16,24,32,或64位长度的二进制数。它是DataModel、Block或者Choice的子元素。

在这里插入图片描述
在这里插入图片描述(1)属性:
Name—必须的。Number的名字。
Size—必须的。Number的大小,以位为单位。有效值为1到64。
Value—分配给Number的默认值。
valueType—可选的。value的表现方式。有效选项为string(字符串)和hex(十进制)。
Token—当解析的时候,该元素被视为一个令牌,默认值为假。有效选项为真和假。
Endian—Number的字节顺序。默认为小端。有效选项为大端、小端和网络。网络一样是大端。
Signed—Number是否为有符号数据。默认为真。有效选项为真和假。
Constraint—一个以Python表达式为形式的约束。用于数据破解。
Mutable—元素是否可改变(fuzzing时是否可变异),默认为真。有效选项为真和假。
minOccurs—Number必须发生改变的最小次数,默认为1。有效选项为正整数值。
maxOcuurs—Number能够发生改变的最大次数,没有默认值。有效选项为正整数值。
(2)有效子元素:
Anayzers、Fixup、Relation、Transformer、Hint。

Blob

在这里插入图片描述

在这里插入图片描述(1)属性(除非声明,所有的属性都是可选的):
Name—必须的。Blob的名字。
Value—含有Blob的默认值。
Length—Blob的大小,单位为字节。
Ref—引用一个数据模型来作为Blob的模板。
valueType—默认格式的值,hex,string,或者literal,默认为string。
minOccurs—该Blob元素必须发生变化的最小次数,默认为1。
maxOccurs—该Blob元素能够发生变化的最大次数,默认为1。
Token—当解析时该元素应该作为一个令牌来信任,默认是假。
lengthType—长度的类型,指定长度。
Constraint—一个约束的形式表达,用于数据破解。
Mutable—Blob元素是否可变异(是否能被fuzzing),默认为真。
(2)子元素:
Anayzers

Relation

在这里插入图片描述

在这里插入图片描述简单的说 就是定义了一个32字节的名字为 thevalue的string数据 本来peach获取了10个字节 但他除了2也就是5个字节放到thevalue 又乘以二 也就是没有改变原来数据大小

在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

在这里插入图片描述在这里插入图片描述

Fixup

Fixup是一些代码函数,它通常操作另一个元素数据来产生一个值。校验和算法就是这样一个示例。Peach默认包含有以下fixups。
Utility Fixups
CopyValueFixup
SequenceIncrementFixup
SequenceRandomFixup
Check-sum Fixups
Crc32DualFixup
Crc32Fixup
EthernetChecksumFixup
ExpressionFixup
IcmpChecksumFixup
LRCFixup
Hashing Fixups
MD5Fixup
SHA1Fixup
SHA224Fixup
SHA256Fixup
SHA384Fixup
SHA512Fixup

crc效验码例子
在这里插入图片描述
未完待续

猜你喜欢

转载自blog.csdn.net/qq_43045569/article/details/106005152
今日推荐