Module: Rex::Java::Serialization

Included in:
Model::Contents, Model::NewClassDesc, Model::ProxyClassDesc
Defined in:
lib/rex/java/serialization.rb,
lib/rex/java/serialization/model.rb,
lib/rex/java/serialization/builder.rb,
lib/rex/java/serialization/model/utf.rb,
lib/rex/java/serialization/model/field.rb,
lib/rex/java/serialization/model/reset.rb,
lib/rex/java/serialization/decode_error.rb,
lib/rex/java/serialization/encode_error.rb,
lib/rex/java/serialization/model/stream.rb,
lib/rex/java/serialization/model/element.rb,
lib/rex/java/serialization/model/contents.rb,
lib/rex/java/serialization/model/long_utf.rb,
lib/rex/java/serialization/model/new_enum.rb,
lib/rex/java/serialization/model/new_array.rb,
lib/rex/java/serialization/model/new_class.rb,
lib/rex/java/serialization/model/reference.rb,
lib/rex/java/serialization/model/annotation.rb,
lib/rex/java/serialization/model/block_data.rb,
lib/rex/java/serialization/model/class_desc.rb,
lib/rex/java/serialization/model/new_object.rb,
lib/rex/java/serialization/model/end_block_data.rb,
lib/rex/java/serialization/model/new_class_desc.rb,
lib/rex/java/serialization/model/null_reference.rb,
lib/rex/java/serialization/model/block_data_long.rb,
lib/rex/java/serialization/model/proxy_class_desc.rb

Overview

Include constants defining terminal and constant values expected in a stream.

Defined Under Namespace

Modules: Model Classes: Builder, DecodeError, EncodeError

Constant Summary collapse

STREAM_MAGIC =
0xaced
STREAM_VERSION =
5
TC_NULL =
0x70
TC_REFERENCE =
0x71
TC_CLASSDESC =
0x72
TC_OBJECT =
0x73
TC_STRING =
0x74
TC_ARRAY =
0x75
TC_CLASS =
0x76
TC_BLOCKDATA =
0x77
TC_ENDBLOCKDATA =
0x78
TC_RESET =
0x79
TC_BLOCKDATALONG =
0x7A
TC_EXCEPTION =
0x7B
TC_LONGSTRING =
0x7C
TC_PROXYCLASSDESC =
0x7D
TC_ENUM =
0x7E
BASE_WIRE_HANDLE =
0x7E0000
SC_WRITE_METHOD =

if SC_SERIALIZABLE

0x01
SC_BLOCK_DATA =

if SC_EXTERNALIZABLE

0x08
SC_SERIALIZABLE =
0x02
SC_EXTERNALIZABLE =
0x04
SC_ENUM =
0x10
PRIMITIVE_TYPE_CODES =
{
  'B' => 'byte',
  'C' => 'char',
  'D' => 'double',
  'F' => 'float',
  'I' => 'int',
  'J' => 'long',
  'S' => 'short',
  'Z' => 'boolean'
}
OBJECT_TYPE_CODES =
{
  '[' => 'array',
  'L' => 'object'
}
TYPE_CODES =
PRIMITIVE_TYPE_CODES.merge(OBJECT_TYPE_CODES)