Class CoffArchiveHeader
java.lang.Object
ghidra.app.util.bin.format.coff.archive.CoffArchiveHeader
- All Implemented Interfaces:
StructConverter
A class that represents a COFF archive file (ie. MS .lib files, Unix .ar files)
COFF archives are very primitive compared to containers like ZIP or even TAR.
The name of entries (ie. files) inside the archive is limited to 16 bytes, and to
support longer names a couple of different schemes have been invented. See the
comments in CoffArchiveMemberHeader.read(BinaryReader, LongNamesMember)
for
decoding the name.
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
isMatch
(ByteProvider provider) Returns true if the data contained in theprovider
contains a COFF Archive file.boolean
Returns true if this COFF archive seems to be a Microsoft lib file (ie.static CoffArchiveHeader
read
(ByteProvider provider, TaskMonitor monitor) Reads and parses the headers and meta-data in a COFF Archive file.Returns a structure datatype representing the contents of the implementor of this interface.
-
Constructor Details
-
CoffArchiveHeader
protected CoffArchiveHeader()
-
-
Method Details
-
isMatch
Returns true if the data contained in theprovider
contains a COFF Archive file.- Parameters:
provider
-- Returns:
- Throws:
IOException
-
read
public static CoffArchiveHeader read(ByteProvider provider, TaskMonitor monitor) throws CoffException, IOException Reads and parses the headers and meta-data in a COFF Archive file.Returns a
CoffArchiveHeader
that has a list of themembers
in the archive.- Parameters:
provider
-monitor
-- Returns:
- Throws:
CoffException
IOException
-
toDataType
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 interfaceStructConverter
- Returns:
- returns a structure datatype representing the implementor of this interface
- Throws:
DuplicateNameException
- when a datatype of the same name already existsIOException
- if an IO-related error occurs- See Also:
-
getArchiveMemberHeaders
-
getFirstLinkerMember
-
getSecondLinkerMember
-
getLongNameMember
-
isMSFormat
public boolean isMSFormat()Returns true if this COFF archive seems to be a Microsoft lib file (ie. has linker members and other features specific to MS)- Returns:
-