根据pit模板构建样本文件

前言
最近在研究开发粒子群算法,其中有用到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.错误。

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 开源Fuzz框架。 简介 Michael Eddington等人开发的Peach是一个遵守MIT开源许可证的模糊测...
    yunpiao阅读 3,945评论 1 1
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,554评论 0 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,288评论 19 139
  • 今天我们又在做什么? 是的,进行阶段性的考试。检验这几天的理论学习情况,考试只允许携带笔和水,与考试无关的通通不准...
    刘金超哥阅读 350评论 0 0
  • 5岁给爸妈背饭去面坊,爷爷用竹子给我编的专用小背篓,里面能装下一个小蒸子,背篓的绳子有点细,挺勒肩膀的,每次从家背...
    Ammay阅读 1,012评论 0 0