Class RTTI4DataType

  • All Implemented Interfaces:
    BuiltInDataType, DataType, Dynamic, ExtensionPoint, java.util.EventListener, javax.swing.event.ChangeListener

    @Deprecated
    public class RTTI4DataType
    extends RTTIDataType
    Deprecated.
    Use of this dynamic data type class is no longer recommended. Instead a CompleteObjectLocator structure data type can be obtained using the Rtti4Model.
    The RTTI4 data type represents a CompleteObjectLocator structure.

    Fields for this RunTimeTypeInformation structure can be found on http://www.openrce.org

     struct CompleteObjectLocator {
         dword signature;
         dword offset;             // offset of vbtable within class
         dword cdOffset;           // constructor displacement offset
         4byte_ptr_or_disp pRtti0; // ref to TypeDescriptor (RTTI 0) for class
         4byte_ptr_or_disp pRtti3; // ref to ClassHierarchyDescriptor (RTTI 3)
     }
     

    RTTI_Complete_Object_Locator is the label for the RTTI4 data structure.

    • Constructor Detail

      • RTTI4DataType

        public RTTI4DataType()
        Deprecated.
        Creates a dynamic Complete Object Locator data type.
      • RTTI4DataType

        public RTTI4DataType​(DataTypeManager dtm)
        Deprecated.
        Creates a dynamic Complete Object Locator data type.
        Parameters:
        dtm - the data type manager for this data type.
    • Method Detail

      • clone

        public DataType clone​(DataTypeManager dtm)
        Deprecated.
        Description copied from interface: DataType
        Returns a new instance of this DataType with its universalID and SourceArchive identity retained. Note: for built-in DataType's, clone and copy should have the same affect.
        Parameters:
        dtm - the data-type manager instance whose data-organization should apply.
      • getDescription

        public java.lang.String getDescription()
        Deprecated.
        Description copied from interface: DataType
        Get a String briefly describing this DataType.
        Returns:
        a one-liner describing this DataType.
      • getLength

        public int getLength()
        Deprecated.
        Description copied from interface: DataType
        Get the length (number of 8-bit bytes) of this DataType.
        Specified by:
        getLength in interface DataType
        Overrides:
        getLength in class DynamicDataType
        Returns:
        the length of this DataType
      • getRepresentation

        public java.lang.String getRepresentation​(MemBuffer buf,
                                                  Settings settings,
                                                  int length)
        Deprecated.
        Description copied from interface: DataType
        Get bytes from memory in a printable format for this type.
        Parameters:
        buf - the data.
        settings - the settings to use for the representation.
        length - the number of bytes to represent.
        Returns:
        the representation of the data in this format, never null.
      • getValue

        public java.lang.Object getValue​(MemBuffer buf,
                                         Settings settings,
                                         int length)
        Deprecated.
        Description copied from interface: DataType
        Get the data in the form of the appropriate Object for this DataType. For instance if the data type is an AddressDT, return an Address object. a Byte, return a Scalar* (maybe this should be a Byte) a Float, return a Float
        Parameters:
        buf - the data buffer.
        settings - the settings to use.
        length - the number of bytes to get the value from.
        Returns:
        the data Object.
      • getLength

        public int getLength​(Memory memory,
                             Address address,
                             byte[] bytes)
        Deprecated.
        Gets the total length of the data created when this data type is placed at the indicated address in memory.
        Parameters:
        memory - the program memory for this data.
        address - the start address of the data.
        bytes - the bytes for this data.
        Returns:
        the length of the data. zero is returned if valid data can't be created at the indicated address using this data type.
      • getRtti0Address

        public Address getRtti0Address​(Memory memory,
                                       Address rtti4Address)
        Deprecated.
        Gets the address of the RTTI0 that is referred to from an RTTI4 structure that is placed at the indicated address.
        Parameters:
        memory - the memory with the data for the RTTI structures.
        rtti4Address - address of an RTTI4 structure
        Returns:
        the address of the RTTI0 structure or null.
      • getRtti3Address

        public Address getRtti3Address​(Memory memory,
                                       Address rtti4Address)
        Deprecated.
        Gets the address of the RTTI3 that is referred to from an RTTI4 structure that is placed at the indicated address.
        Parameters:
        memory - the memory with the data for the RTTI structures.
        rtti4Address - address of an RTTI4 structure
        Returns:
        the address of the RTTI3 structure or null.
      • isValid

        public boolean isValid​(Program program,
                               Address startAddress,
                               DataValidationOptions validationOptions)
        Deprecated.
        Description copied from class: RTTIDataType
        Determines if the data type is valid for placing at the indicated address in the program.
        Specified by:
        isValid in class RTTIDataType
        Parameters:
        program - the program
        startAddress - the address where the validated data type will be used to create data
        validationOptions - options indicating how to perform the validation
        Returns:
        true if this data type can be laid down at the specified address
      • getDefaultLabelPrefix

        public java.lang.String getDefaultLabelPrefix()
        Deprecated.
        Description copied from interface: DataType
        Returns the appropriate string to use as the default label prefix in the absence of any data.
        Specified by:
        getDefaultLabelPrefix in interface DataType
        Overrides:
        getDefaultLabelPrefix in class AbstractDataType
        Returns:
        the default label prefix or null if none specified.