Class Section

    • Constructor Detail

      • Section

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

      • getRelocations

        public java.util.List<RelocationInfo> getRelocations()
      • isRead

        public boolean isRead()
        Returns true if this section has READ permission.

        NOTE: On a real system, sections don't have their own permissions, only the segments they live in do. However, Ghidra needs finer-grained control for analysis to work correctly, so we take control over section permissions to fit our needs.

        Returns:
        true if this section has READ permission
      • isWrite

        public boolean isWrite()
        Returns true if this section has WRITE permission.

        NOTE: On a real system, sections don't have their own permissions, only the segments they live in do. However, Ghidra needs finer-grained control for analysis to work correctly, so we take control over section permissions to fit our needs.

        Returns:
        true if this section has WRITE permission
      • isExecute

        public boolean isExecute()
        Returns true if this section has EXECUTE permission.

        NOTE: On a real system, sections don't have their own permissions, only the segments they live in do. However, Ghidra needs finer-grained control for analysis to work correctly, so we take control over section permissions to fit our needs.

        Returns:
        true if this section has EXECUTE permission
      • getDataStream

        public java.io.InputStream getDataStream​(MachHeader header)
                                          throws java.io.IOException
        Returns an input stream to underlying bytes of this section.
        Returns:
        an input stream to underlying bytes of this section
        Throws:
        java.io.IOException - if an i/o error occurs.
      • getSectionName

        public java.lang.String getSectionName()
      • getSegmentName

        public java.lang.String getSegmentName()
      • getAddress

        public long getAddress()
      • getSize

        public long getSize()
      • getOffset

        public int getOffset()
      • getAlign

        public int getAlign()
      • getRelocationOffset

        public int getRelocationOffset()
      • getNumberOfRelocations

        public int getNumberOfRelocations()
      • getFlags

        public int getFlags()
      • getType

        public int getType()
      • getAttributes

        public int getAttributes()
      • getReserved1

        public int getReserved1()
      • getReserved2

        public int getReserved2()
      • getReserved3

        public int getReserved3()
      • toDataType

        public DataType toDataType()
                            throws DuplicateNameException,
                                   java.io.IOException
        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
        java.io.IOException
        See Also:
        StructureDataType
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object