kitty.model.low_level.aliases module

Functions that provide simpler field creation API and name aliasing for convenience

Integer Aliases:
 

Since integers the are binary encoded are used in many places, there are many aliases for them. Some are similar to common type conventions, others are simply meant to make the template code smaller. Below is a (hopefully) full list of aliases. However, the safest place to check, as always, is the source.

Bytes Signed Endianess Aliases
1 No   U8, UInt8, BE8, LE8, Byte
2 No big, but can be changed U16, UInt16, Word
2 big BE16, WordBE
2 little LE16, WordLE
2 Yes big, but can be changed S16, SInt16
4 No big, but can be changed U32, UInt32, Dword
4 big BE32, DwordBE
4 little LE32, DwordLE
4 Yes big, but can be changed S32, SInt32
8 No big, but can be changed U64, UInt64, Qword
8 big BE64, QwordBE
8 little LE64, QwordLE
8 Yes big, but can be changed S64, SInt64
Hash Aliases:

There are multiple functions that return frequently used Hash instances:

  • Md5
  • Sha1
  • Sha224
  • Sha256
  • Sha384
  • Sha512.

Their prototype is the same as Hash, excluding the algorithm argument.

Compare Aliases:
 

The Compare aliases create a Compare object with a specific comp_type. See table below:

comp_type Aliases
‘==’ Equal
‘!=’ NotEqual
‘>’ Greater
‘>=’ GreaterEqual, AtLeast
‘<’ Lesser
‘<=’ LesserEqual, AtMost
‘&’ BitMaskSet
‘&=0’ BitMaskNotSet
kitty.model.low_level.aliases.AtLeast(field, comp_value)

Condition applies if the value of the field is greater than or equals to the comp_value

Return type:Compare
kitty.model.low_level.aliases.AtMost(field, comp_value)

Condition applies if the value of the field is lesser than or equals to the comp_value

Return type:Compare
kitty.model.low_level.aliases.BE16(value, min_value=None, max_value=None, fuzzable=True, name=None, full_range=False)[source]

16-bit field, Big endian encoded

kitty.model.low_level.aliases.BE32(value, min_value=None, max_value=None, fuzzable=True, name=None, full_range=False)[source]

32-bit field, Big endian encoded

kitty.model.low_level.aliases.BE64(value, min_value=None, max_value=None, fuzzable=True, name=None, full_range=False)[source]

64-bit field, Big endian encoded

kitty.model.low_level.aliases.BE8(value, min_value=None, max_value=None, fuzzable=True, name=None, full_range=False)[source]

8-bit field, Big endian encoded

kitty.model.low_level.aliases.BitMaskNotSet(field, comp_value)[source]

Condition applies if the given bitmask is equal to 0 in the value of the field

Return type:Compare
kitty.model.low_level.aliases.BitMaskSet(field, comp_value)[source]

Condition applies if the given bitmask is set in the value of the field

Return type:Compare
kitty.model.low_level.aliases.Byte(value, min_value=None, max_value=None, encoder=<kitty.model.low_level.encoder.BitFieldBinEncoder object>, fuzzable=True, name=None, full_range=False)

Unsigned 8-bit field

kitty.model.low_level.aliases.Dword(value, min_value=None, max_value=None, encoder=<kitty.model.low_level.encoder.BitFieldBinEncoder object>, fuzzable=True, name=None, full_range=False)

Unsigned 32-bit field

kitty.model.low_level.aliases.DwordBE(value, min_value=None, max_value=None, fuzzable=True, name=None, full_range=False)

32-bit field, Big endian encoded

kitty.model.low_level.aliases.DwordLE(value, min_value=None, max_value=None, fuzzable=True, name=None, full_range=False)

32-bit field, Little endian encoded

kitty.model.low_level.aliases.Equal(field, comp_value)[source]

Condition applies if the value of the field is equal to the comp_value

Return type:Compare
kitty.model.low_level.aliases.Greater(field, comp_value)[source]

Condition applies if the value of the field is greater than the comp_value

Return type:Compare
kitty.model.low_level.aliases.GreaterEqual(field, comp_value)[source]

Condition applies if the value of the field is greater than or equals to the comp_value

Return type:Compare
kitty.model.low_level.aliases.LE16(value, min_value=None, max_value=None, fuzzable=True, name=None, full_range=False)[source]

16-bit field, Little endian encoded

kitty.model.low_level.aliases.LE32(value, min_value=None, max_value=None, fuzzable=True, name=None, full_range=False)[source]

32-bit field, Little endian encoded

kitty.model.low_level.aliases.LE64(value, min_value=None, max_value=None, fuzzable=True, name=None, full_range=False)[source]

64-bit field, Little endian encoded

kitty.model.low_level.aliases.LE8(value, min_value=None, max_value=None, fuzzable=True, name=None, full_range=False)[source]

8-bit field, Little endian encoded

kitty.model.low_level.aliases.Lesser(field, comp_value)[source]

Condition applies if the value of the field is lesser than the comp_value

Return type:Compare
kitty.model.low_level.aliases.LesserEqual(field, comp_value)[source]

Condition applies if the value of the field is lesser than or equals to the comp_value

Return type:Compare
kitty.model.low_level.aliases.Md5(depends_on, encoder=<kitty.model.low_level.encoder.StrEncoder object>, fuzzable=False, name=None)[source]
Return type:Hash
Returns:MD5 hash field
kitty.model.low_level.aliases.NotEqual(field, comp_value)[source]

Condition applies if the value of the field is not equal to the comp_value

Return type:Compare
kitty.model.low_level.aliases.Qword(value, min_value=None, max_value=None, encoder=<kitty.model.low_level.encoder.BitFieldBinEncoder object>, fuzzable=True, name=None, full_range=False)

Unsigned 64-bit field

kitty.model.low_level.aliases.QwordBE(value, min_value=None, max_value=None, fuzzable=True, name=None, full_range=False)

64-bit field, Big endian encoded

kitty.model.low_level.aliases.QwordLE(value, min_value=None, max_value=None, fuzzable=True, name=None, full_range=False)

64-bit field, Little endian encoded

kitty.model.low_level.aliases.S16(value, min_value=None, max_value=None, encoder=<kitty.model.low_level.encoder.BitFieldBinEncoder object>, fuzzable=True, name=None, full_range=False)

Signed 16-bit field

kitty.model.low_level.aliases.S32(value, min_value=None, max_value=None, encoder=<kitty.model.low_level.encoder.BitFieldBinEncoder object>, fuzzable=True, name=None, full_range=False)

Signed 32-bit field

kitty.model.low_level.aliases.S64(value, min_value=None, max_value=None, encoder=<kitty.model.low_level.encoder.BitFieldBinEncoder object>, fuzzable=True, name=None, full_range=False)

Signed 64-bit field

kitty.model.low_level.aliases.S8(value, min_value=None, max_value=None, encoder=<kitty.model.low_level.encoder.BitFieldBinEncoder object>, fuzzable=True, name=None, full_range=False)

Signed 8-bit field

kitty.model.low_level.aliases.SInt16(value, min_value=None, max_value=None, encoder=<kitty.model.low_level.encoder.BitFieldBinEncoder object>, fuzzable=True, name=None, full_range=False)[source]

Signed 16-bit field

kitty.model.low_level.aliases.SInt32(value, min_value=None, max_value=None, encoder=<kitty.model.low_level.encoder.BitFieldBinEncoder object>, fuzzable=True, name=None, full_range=False)[source]

Signed 32-bit field

kitty.model.low_level.aliases.SInt64(value, min_value=None, max_value=None, encoder=<kitty.model.low_level.encoder.BitFieldBinEncoder object>, fuzzable=True, name=None, full_range=False)[source]

Signed 64-bit field

kitty.model.low_level.aliases.SInt8(value, min_value=None, max_value=None, encoder=<kitty.model.low_level.encoder.BitFieldBinEncoder object>, fuzzable=True, name=None, full_range=False)[source]

Signed 8-bit field

kitty.model.low_level.aliases.Sha1(depends_on, encoder=<kitty.model.low_level.encoder.StrEncoder object>, fuzzable=False, name=None)[source]
Return type:Hash
Returns:SHA1 hash field
kitty.model.low_level.aliases.Sha224(depends_on, encoder=<kitty.model.low_level.encoder.StrEncoder object>, fuzzable=False, name=None)[source]
Return type:Hash
Returns:SHA224 hash field
kitty.model.low_level.aliases.Sha256(depends_on, encoder=<kitty.model.low_level.encoder.StrEncoder object>, fuzzable=False, name=None)[source]
Return type:Hash
Returns:SHA256 hash field
kitty.model.low_level.aliases.Sha384(depends_on, encoder=<kitty.model.low_level.encoder.StrEncoder object>, fuzzable=False, name=None)[source]
Return type:Hash
Returns:SHA384 hash field
kitty.model.low_level.aliases.Sha512(depends_on, encoder=<kitty.model.low_level.encoder.StrEncoder object>, fuzzable=False, name=None)[source]
Return type:Hash
Returns:SHA512 hash field
kitty.model.low_level.aliases.SizeInBytes(sized_field, length, encoder=<kitty.model.low_level.encoder.BitFieldBinEncoder object>, fuzzable=False, name=None)[source]
Return type:Size
Returns:Size field, which holds the size in bytes of the sized field
kitty.model.low_level.aliases.U16(value, min_value=None, max_value=None, encoder=<kitty.model.low_level.encoder.BitFieldBinEncoder object>, fuzzable=True, name=None, full_range=False)

Unsigned 16-bit field

kitty.model.low_level.aliases.U32(value, min_value=None, max_value=None, encoder=<kitty.model.low_level.encoder.BitFieldBinEncoder object>, fuzzable=True, name=None, full_range=False)

Unsigned 32-bit field

kitty.model.low_level.aliases.U64(value, min_value=None, max_value=None, encoder=<kitty.model.low_level.encoder.BitFieldBinEncoder object>, fuzzable=True, name=None, full_range=False)

Unsigned 64-bit field

kitty.model.low_level.aliases.U8(value, min_value=None, max_value=None, encoder=<kitty.model.low_level.encoder.BitFieldBinEncoder object>, fuzzable=True, name=None, full_range=False)

Unsigned 8-bit field

kitty.model.low_level.aliases.UInt16(value, min_value=None, max_value=None, encoder=<kitty.model.low_level.encoder.BitFieldBinEncoder object>, fuzzable=True, name=None, full_range=False)[source]

Unsigned 16-bit field

kitty.model.low_level.aliases.UInt32(value, min_value=None, max_value=None, encoder=<kitty.model.low_level.encoder.BitFieldBinEncoder object>, fuzzable=True, name=None, full_range=False)[source]

Unsigned 32-bit field

kitty.model.low_level.aliases.UInt64(value, min_value=None, max_value=None, encoder=<kitty.model.low_level.encoder.BitFieldBinEncoder object>, fuzzable=True, name=None, full_range=False)[source]

Unsigned 64-bit field

kitty.model.low_level.aliases.UInt8(value, min_value=None, max_value=None, encoder=<kitty.model.low_level.encoder.BitFieldBinEncoder object>, fuzzable=True, name=None, full_range=False)[source]

Unsigned 8-bit field

kitty.model.low_level.aliases.Word(value, min_value=None, max_value=None, encoder=<kitty.model.low_level.encoder.BitFieldBinEncoder object>, fuzzable=True, name=None, full_range=False)

Unsigned 16-bit field

kitty.model.low_level.aliases.WordBE(value, min_value=None, max_value=None, fuzzable=True, name=None, full_range=False)

16-bit field, Big endian encoded

kitty.model.low_level.aliases.WordLE(value, min_value=None, max_value=None, fuzzable=True, name=None, full_range=False)

16-bit field, Little endian encoded