Class BaseRelocation

  • All Implemented Interfaces:
    ByteArrayConverter, StructConverter

    public class BaseRelocation
    extends java.lang.Object
    implements StructConverter, ByteArrayConverter
    A class to represent the IMAGE_BASE_RELOCATION data structure defined in winnt.h.
     typedef struct _IMAGE_BASE_RELOCATION {
         DWORD   VirtualAddress;
         DWORD   SizeOfBlock;
     //  WORD    TypeOffset[1];
     } IMAGE_BASE_RELOCATION;
     typedef IMAGE_BASE_RELOCATION UNALIGNED * PIMAGE_BASE_RELOCATION;
     
    • Field Detail

      • NAME

        public static final java.lang.String NAME
        The name to use when converting into a structure data type.
        See Also:
        Constant Field Values
      • IMAGE_SIZEOF_BASE_RELOCATION

        public static final int IMAGE_SIZEOF_BASE_RELOCATION
        The size of the IMAGE_BASE_RELOCATION in bytes.
        See Also:
        Constant Field Values
      • IMAGE_REL_BASED_ABSOLUTE

        public static final int IMAGE_REL_BASED_ABSOLUTE
        See Also:
        Constant Field Values
      • IMAGE_REL_BASED_HIGHLOW

        public static final int IMAGE_REL_BASED_HIGHLOW
        See Also:
        Constant Field Values
      • IMAGE_REL_BASED_HIGHADJ

        public static final int IMAGE_REL_BASED_HIGHADJ
        See Also:
        Constant Field Values
      • IMAGE_REL_BASED_MIPS_JMPADDR

        public static final int IMAGE_REL_BASED_MIPS_JMPADDR
        See Also:
        Constant Field Values
      • IMAGE_REL_BASED_SECTION

        public static final int IMAGE_REL_BASED_SECTION
        See Also:
        Constant Field Values
      • IMAGE_REL_BASED_MIPS_JMPADDR16

        public static final int IMAGE_REL_BASED_MIPS_JMPADDR16
        See Also:
        Constant Field Values
      • IMAGE_REL_BASED_IA64_IMM64

        public static final int IMAGE_REL_BASED_IA64_IMM64
        See Also:
        Constant Field Values
      • IMAGE_REL_BASED_HIGH3ADJ

        public static final int IMAGE_REL_BASED_HIGH3ADJ
        See Also:
        Constant Field Values
      • TYPE_STRINGS

        public static final java.lang.String[] TYPE_STRINGS
        Names of the available base relocations.
    • Constructor Detail

      • BaseRelocation

        public BaseRelocation()
        DO NOT USE THIS CONSTRUCTOR, USE create*(GenericFactory ...) FACTORY METHODS INSTEAD.
    • Method Detail

      • addRelocation

        public void addRelocation​(int type,
                                  int offset)
        Adds a relocation to this base relocation block.
        Parameters:
        type - the relocation type
        offset - the relocation offset
      • getVirtualAddress

        public int getVirtualAddress()
        Returns the base address of the relocations in this block.
        Returns:
        the base address of the relocations in this block
      • getSizeOfBlock

        public int getSizeOfBlock()
        Returns the size (in bytes) of this relocation block.
        Returns:
        the size (in bytes) of this relocation block
      • getCount

        public int getCount()
        Returns the number of relocation in this block.
        Returns:
        the number of relocation in this block
      • getOffset

        public int getOffset​(int index)
        Returns the lower 12 bits of the offset.
        Parameters:
        index - the ith relocation
        Returns:
        int the offset of the relocation
      • getType

        public int getType​(int index)
        Returns the upper 4 bits of the offset.
        Parameters:
        index - the ith relocation
        Returns:
        int the type of the relocation ,
      • toDataType

        public DataType toDataType()
                            throws DuplicateNameException
        Description copied from interface: StructConverter
        Returns a structure datatype representing the contents of the implementor of this interface.

        For example, given:

         class A {
             int foo;
             double bar;
         }
         

        The return value should be a structure data type with two data type components; an INT and a DOUBLE. The structure should contain field names and, if possible, field comments.

        Specified by:
        toDataType in interface StructConverter
        Returns:
        returns a structure datatype representing the implementor of this interface
        Throws:
        DuplicateNameException - when a datatype of the same name already exists
        See Also:
        StructConverter.toDataType()