Package ghidra.app.util.bin.format.pe
Class PortableExecutable
- java.lang.Object
 - 
- ghidra.app.util.bin.format.pe.PortableExecutable
 
 
- 
public class PortableExecutable extends java.lang.ObjectA class to manage loading Portable Executables (PE). 
- 
- 
Nested Class Summary
Nested Classes Modifier and Type Class Description static classPortableExecutable.SectionLayoutIndicates how sections of this PE are laid out in the underlying ByteProvider. 
- 
Constructor Summary
Constructors Constructor Description PortableExecutable()DO NOT USE THIS CONSTRUCTOR, USE create*(GenericFactory ...) FACTORY METHODS INSTEAD. 
- 
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static intcomputeAlignment(int value, int alignment)static PortableExecutablecreatePortableExecutable(GenericFactory factory, ByteProvider bp, PortableExecutable.SectionLayout layout)Constructs a new Portable Executable using the specified byte provider and layout.static PortableExecutablecreatePortableExecutable(GenericFactory factory, ByteProvider bp, PortableExecutable.SectionLayout layout, boolean advancedProcess, boolean parseCliHeaders)Constructs a new Portable Executable using the specified byte provider and layout.DOSHeadergetDOSHeader()Returns the DOS header from the PE image.longgetFileLength()NTHeadergetNTHeader()Returns the NT header from the PE image.RichHeadergetRichHeader()Returns the Rich header from the PE image.voidwriteHeader(java.io.RandomAccessFile raf, DataConverter dc) 
 - 
 
- 
- 
Field Detail
- 
NAME
public static final java.lang.String NAME
- See Also:
 - Constant Field Values
 
 
- 
DEBUG
public static boolean DEBUG
 
 - 
 
- 
Method Detail
- 
createPortableExecutable
public static PortableExecutable createPortableExecutable(GenericFactory factory, ByteProvider bp, PortableExecutable.SectionLayout layout) throws java.io.IOException
Constructs a new Portable Executable using the specified byte provider and layout.Same as calling
createFileAlignedPortableExecutable(factory, bp, layout, true, false)- Parameters:
 factory- generic factory instancebp- the byte providerlayout- specifies the layout of the underlying provider and governs RVA resolution- Throws:
 java.io.IOException- if an I/O error occurs.- See Also:
 createPortableExecutable(GenericFactory, ByteProvider, SectionLayout, boolean, boolean)
 
- 
createPortableExecutable
public static PortableExecutable createPortableExecutable(GenericFactory factory, ByteProvider bp, PortableExecutable.SectionLayout layout, boolean advancedProcess, boolean parseCliHeaders) throws java.io.IOException
Constructs a new Portable Executable using the specified byte provider and layout.- Parameters:
 factory- generic factory instancebp- the byte providerlayout- specifies the layout of the underlying provider and governs RVA resolutionadvancedProcess- if true, the data directories are also processedparseCliHeaders- if true, CLI headers are parsed (if present)- Throws:
 java.io.IOException- if an I/O error occurs.
 
- 
getDOSHeader
public DOSHeader getDOSHeader()
Returns the DOS header from the PE image.- Returns:
 - the DOS header from the PE image
 
 
- 
getRichHeader
public RichHeader getRichHeader()
Returns the Rich header from the PE image.- Returns:
 - the Rich header from the PE image
 
 
- 
getNTHeader
public NTHeader getNTHeader()
Returns the NT header from the PE image.- Returns:
 - the NT header from the PE image
 
 
- 
writeHeader
public void writeHeader(java.io.RandomAccessFile raf, DataConverter dc) throws java.io.IOException- Throws:
 java.io.IOException
 
- 
computeAlignment
public static int computeAlignment(int value, int alignment) 
- 
getFileLength
public long getFileLength()
 
 - 
 
 -