根据pit模板构建样本文件

2018-11-27  本文已影响0人  日常采坑君

前言
最近在研究开发粒子群算法,其中有用到Peach的解析模块,将样本根据pit模板解析到各个字段。这里需要可以被解析的样本,但是奈何利用Peach自动化生成的样本均不可以被解析,所以需要根据pit中的Datamodel手动构建样本文件。
datamodel
以下是pit中的datamodel

<DataModel name="AutoManagerSet">
        <Number name="TypeId" size="16" token="true" value="25 00" valueType="hex" mutable="false" />
        <Number name="Length" size="16" token="true" value="3" mutable="false" />
        <Choice minOccurs="1" maxOccurs="4">
            <Number size="8" token="true" value="00" valueType="hex" mutable="false" /> 
            <Number size="16" token="true" value="FF FF" valueType="hex" mutable="false" />
        </Choice>
        <Number name="test" size="4" token="true" value="5" mutable="false" maxOccurs="3"/> 
        <String name="string" value="test" />   
    </DataModel>

利用UE16进制编辑样本


image.png

这样可以很直观的根据pit来构建样本。
以下是构建过程中需要注意的点(根据Peach社区对pit的讲解来构建):

  1. 对于mutable="false"的字段,其value值是不可以改变的;
  2. token="true"一般指的是:?!这样的符号;
  3. 对于Number类型,社区是这样介绍的:
    The Number element defines a binary number of lengths 8, 16, 24, 32, or 64 bits.意思是其值只能是这么些长度。
    例如:上述的<Number name="test" size="4" token="true" value="5" mutable="false" maxOccurs="3"/>该字段,occurs只能为2,这样test的长度为8,是合法的,其余均错;
  4. 对于string类型,其值只能是数字或是大小写字母,其余一律不可以。社区定义如下The String element defines a single or double byte string.不然会报error:String 'xxx' value contains invalid ascii bytes.错误。

目前只统计以上这些,后续补充!

上一篇 下一篇

猜你喜欢

热点阅读