Transformers
Transformers perform static tranforms or encoding on the parent element. These transforms are typically (but not always) two directional (encode and decode). Such as ZIP compression, Base64 encoding, HTML encoding, etc.
Transfomers differ from Fixups in they operate on the parent element while Fixups typically get a reference to another element they pull data from.
For example:
<DataModel name="Base64TLV">
<Number name="Type" size="8" signed="false" value="1" token="true" />
<Number name="Length" size="16" signed="false">
<Relation type="size" of="base64Block" />
</Number>
<Block name="base64Block">
<Transformer class="encode.Base64Encode" />
<Blob name="Data" />
</Block>
</DataModel>
When out putted would have the value of 0x01<len(b64(Data))><b64(Data)>
Default Transformers
ASN.1
BerEncodeBitString
BerEncodeBoolean
BerEncodeInteger
BerEncodeObjectIdentifier
BerEncodeOctetString
CerEncodeBitString
CerEncodeBoolean
CerEncodeInteger
CerEncodeObjectIdentifier
CerEncodeOctetString
DerEncodeBitString
DerEncodeInteger
DerEncodeObjectIdentifier
DerEncodeOctetString
DerEncodeBoolean
Compression
Crypto
Encode
Type
_AsNumber
AsInt24
Misc
- Eval
Peach Fuzzing Platform