Upx_Doxygen
https://github.com/upx/upx
Protected Member Functions | Protected Attributes | List of all members
PeFile32 Class Reference
Inheritance diagram for PeFile32:
PeFile Packer PackArmPe PackW32Pe

Protected Member Functions

 PeFile32 (InputFile *f)
 
void pack0 (OutputFile *fo, unsigned subsystem_mask, upx_uint64_t default_imagebase, bool last_section_rsrc_only)
 
virtual void unpack (OutputFile *fo)
 
virtual int canUnpack ()
 
virtual void readPeHeader ()
 
virtual unsigned processImports ()
 
virtual void processRelocs ()
 
virtual void processTls (Interval *)
 
void processTls (Reloc *, const Interval *, unsigned)
 
 __packed_struct (pe_header_t) char _[4]
 
 __packed_struct_end () pe_header_t ih
 
- Protected Member Functions inherited from PeFile
 PeFile (InputFile *f)
 
virtual int getVersion () const
 
void readSectionHeaders (unsigned objs, unsigned sizeof_ih)
 
unsigned readSections (unsigned objs, unsigned usize, unsigned ih_filealign, unsigned ih_datasize)
 
void checkHeaderValues (unsigned subsystem, unsigned mask, unsigned ih_entry, unsigned ih_filealign)
 
unsigned handleStripRelocs (upx_uint64_t ih_imagebase, upx_uint64_t default_imagebase, unsigned dllflags)
 
virtual bool handleForceOption ()=0
 
virtual void callCompressWithFilters (Filter &, int filter_strategy, unsigned ih_codebase)
 
virtual void defineSymbols (unsigned ncsection, unsigned upxsection, unsigned sizeof_oh, unsigned isize_isplit, Reloc &rel, unsigned s1addr)=0
 
virtual void addNewRelocations (Reloc &, unsigned)
 
void callProcessRelocs (Reloc &rel, unsigned &ic)
 
void callProcessResources (Resource &res, unsigned &ic)
 
virtual unsigned getProcessImportParam (unsigned)
 
virtual void setOhDataBase (const pe_section_t *osection)=0
 
virtual void setOhHeaderSize (const pe_section_t *osection)=0
 
template<typename LEXX , typename ht >
void pack0 (OutputFile *fo, ht &ih, ht &oh, unsigned subsystem_mask, upx_uint64_t default_imagebase, bool last_section_rsrc_only)
 
template<typename ht , typename LEXX , typename ord_mask_t >
void unpack0 (OutputFile *fo, const ht &ih, ht &oh, ord_mask_t ord_mask, bool set_oft)
 
virtual bool canUnpackVersion (int version) const
 
int canUnpack0 (unsigned max_sections, LE16 &ih_objects, LE32 &ih_entry, unsigned ihsize)
 
virtual int readFileHeader ()
 
virtual bool testUnpackVersion (int version) const
 
template<typename LEXX , typename ord_mask_t >
unsigned processImports0 (ord_mask_t ord_mask)
 
template<typename LEXX , typename ord_mask_t >
void rebuildImports (upx_byte *&extrainfo, ord_mask_t ord_mask, bool set_oft)
 
virtual void processImports2 (unsigned, unsigned)
 
virtual const char * kernelDll () const
 
void addKernelImport (const char *)
 
virtual void addStubImports ()
 
upx_uint64_t ilinkerGetAddress (const char *, const char *) const
 
void processRelocs (Reloc *)
 
void rebuildRelocs (upx_byte *&, unsigned bits, unsigned flags, upx_uint64_t imagebase)
 
void processExports (Export *)
 
void processExports (Export *, unsigned)
 
void rebuildExports ()
 
void processResources (Resource *)
 
void processResources (Resource *, unsigned)
 
void rebuildResources (upx_byte *&, unsigned)
 
template<typename LEXX >
void processTls1 (Interval *iv, typename tls_traits< LEXX >::cb_value_t imagebase, unsigned imagesize)
 
template<typename LEXX >
void processTls2 (Reloc *rel, const Interval *iv, unsigned newaddr, typename tls_traits< LEXX >::cb_value_t imagebase)
 
void rebuildTls ()
 
void processLoadConf (Reloc *, const Interval *, unsigned)
 
void processLoadConf (Interval *)
 
unsigned stripDebug (unsigned)
 
 __packed_struct (ddirs_t) LE32 vaddr
 
 __packed_struct_end () ddirs_t *iddirs
 
LE32 & IDSIZE (unsigned x)
 
LE32 & IDADDR (unsigned x)
 
LE32 & ODSIZE (unsigned x)
 
LE32 & ODADDR (unsigned x)
 
 __packed_struct (pe_section_t) char name[8]
 
 __packed_struct_end () pe_section_t *isection
 
unsigned tryremove (unsigned, unsigned)
 
- Protected Member Functions inherited from Packer
 Packer (InputFile *f)
 
virtual bool testUnpackFormat (int format) const
 
virtual void pack (OutputFile *fo)=0
 
virtual void test ()
 
virtual void list ()
 
virtual void fileInfo ()
 
virtual bool compress (upx_bytep i_ptr, unsigned i_len, upx_bytep o_ptr, const upx_compress_config_t *cconf=NULL)
 
virtual void decompress (const upx_bytep in, upx_bytep out, bool verify_checksum=true, Filter *ft=NULL)
 
virtual bool checkDefaultCompressionRatio (unsigned u_len, unsigned c_len) const
 
virtual bool checkCompressionRatio (unsigned u_len, unsigned c_len) const
 
virtual bool checkFinalCompressionRatio (const OutputFile *fo) const
 
void compressWithFilters (Filter *ft, const unsigned overlap_range, const upx_compress_config_t *cconf, int filter_strategy=0, int inhibit_compression_check=0)
 
void compressWithFilters (Filter *ft, const unsigned overlap_range, const upx_compress_config_t *cconf, int filter_strategy, unsigned filter_buf_off, unsigned compress_ibuf_off, unsigned compress_obuf_off, const upx_bytep hdr_ptr, unsigned hdr_len, int inhibit_compression_check=0)
 
void compressWithFilters (upx_bytep i_ptr, unsigned i_len, upx_bytep o_ptr, upx_bytep f_ptr, unsigned f_len, const upx_bytep hdr_ptr, unsigned hdr_len, Filter *ft, const unsigned overlap_range, const upx_compress_config_t *cconf, int filter_strategy, int inhibit_compression_check=0)
 
virtual bool testOverlappingDecompression (const upx_bytep buf, const upx_bytep tbuf, unsigned overlap_overhead) const
 
virtual unsigned findOverlapOverhead (const upx_bytep buf, const upx_bytep tbuf, unsigned range=0, unsigned upper_limit=~0u) const
 
void verifyOverlappingDecompression (Filter *ft=NULL)
 
void verifyOverlappingDecompression (upx_bytep o_ptr, unsigned o_size, Filter *ft=NULL)
 
virtual int patchPackHeader (void *b, int blen)
 
virtual bool getPackHeader (void *b, int blen, bool allow_incompressible=false)
 
virtual bool readPackHeader (int len, bool allow_incompressible=false)
 
virtual void checkAlreadyPacked (const void *b, int blen)
 
virtual void buildLoader (const Filter *ft)=0
 
virtual LinkernewLinker () const =0
 
virtual void relocateLoader ()
 
virtual upx_byte * getLoader () const
 
virtual int getLoaderSize () const
 
virtual void initLoader (const void *pdata, int plen, int small=-1)
 
void addLoader (C)
 
void addLoader (C, C)
 
void addLoader (C, C, C)
 
void addLoader (C, C, C, C)
 
void addLoader (C, C, C, C, C)
 
void addLoader (C, C, C, C, C, C)
 
void addLoader (C, C, C, C, C, C, C)
 
void addLoader (C, C, C, C, C, C, C, C)
 
void addLoader (C, C, C, C, C, C, C, C, C)
 
void addLoader (C, C, C, C, C, C, C, C, C, C)
 
void __acc_cdecl_va addLoaderVA (const char *s,...)
 
virtual bool hasLoaderSection (const char *name) const
 
virtual int getLoaderSection (const char *name, int *slen=NULL) const
 
virtual int getLoaderSectionStart (const char *name, int *slen=NULL) const
 
const int * getDefaultCompressionMethods_8 (int method, int level, int small=-1) const
 
const int * getDefaultCompressionMethods_le32 (int method, int level, int small=-1) const
 
virtual const char * getDecompressorSections () const
 
virtual unsigned getDecompressorWrkmemSize () const
 
virtual void defineDecompressorSymbols ()
 
virtual bool isValidFilter (int filter_id) const
 
virtual void optimizeFilter (Filter *, const upx_byte *, unsigned) const
 
virtual void addFilter32 (int filter_id)
 
virtual void defineFilterSymbols (const Filter *ft)
 
virtual void checkOverlay (unsigned overlay)
 
virtual void copyOverlay (OutputFile *fo, unsigned overlay, MemBuffer *buf, bool do_seek=true)
 
virtual unsigned getRandomId () const
 
int patch_be16 (void *b, int blen, unsigned old, unsigned new_)
 
int patch_be16 (void *b, int blen, const void *old, unsigned new_)
 
int patch_be32 (void *b, int blen, unsigned old, unsigned new_)
 
int patch_be32 (void *b, int blen, const void *old, unsigned new_)
 
int patch_le16 (void *b, int blen, unsigned old, unsigned new_)
 
int patch_le16 (void *b, int blen, const void *old, unsigned new_)
 
int patch_le32 (void *b, int blen, unsigned old, unsigned new_)
 
int patch_le32 (void *b, int blen, const void *old, unsigned new_)
 
void checkPatch (void *b, int blen, int boff, int size)
 
unsigned get_te16 (const void *p) const
 
unsigned get_te32 (const void *p) const
 
upx_uint64_t get_te64 (const void *p) const
 
void set_te16 (void *p, unsigned v) const
 
void set_te32 (void *p, unsigned v) const
 
void set_te64 (void *p, upx_uint64_t v) const
 

Protected Attributes

LE16 cpu
 
LE16 objects
 
char __ [12]
 
LE16 opthdrsize
 
LE16 flags
 
LE16 coffmagic
 
char ___ [2]
 
LE32 codesize
 
LE32 datasize
 
LE32 bsssize
 
LE32 entry
 
LE32 codebase
 
LE32 database
 
LE32 imagebase
 
LE32 objectalign
 
LE32 filealign
 
char ____ [16]
 
LE32 imagesize
 
LE32 headersize
 
LE32 chksum
 
LE16 subsystem
 
LE16 dllflags
 
char _____ [20]
 
LE32 ddirsentries
 
ddirs_t ddirs [16]
 
 oh
 
- Protected Attributes inherited from PeFile
unsigned pe_offset
 
upx_byte * oimport
 
unsigned soimport
 
upx_byte * oimpdlls
 
unsigned soimpdlls
 
ImportLinker * ilinker
 
upx_byte * orelocs
 
unsigned sorelocs
 
upx_byte * oxrelocs
 
unsigned soxrelocs
 
upx_byte * oexport
 
unsigned soexport
 
upx_byte * oresources
 
unsigned soresources
 
upx_byte * otls
 
unsigned sotls
 
unsigned tlsindex
 
unsigned tlscb_ptr
 
unsigned tls_handler_offset
 
bool use_tls_callbacks
 
upx_byte * oloadconf
 
unsigned soloadconf
 
unsigned icondir_offset
 
int icondir_count
 
bool importbyordinal
 
bool kernel32ordinal
 
unsigned rvamin
 
unsigned cimports
 
unsigned crelocs
 
int big_relocs
 
LE32 size
 
ddirs_t * oddirs
 
LE32 vsize
 
LE32 vaddr
 
LE32 rawdataptr
 
char _ [12]
 
LE32 flags
 
bool isdll
 
bool isrtm
 
bool use_dep_hack
 
bool use_clear_dirty_stack
 
- Protected Attributes inherited from Packer
const N_BELE_RTP::AbstractPolicybele
 
InputFilefi
 
off_t file_size
 
PackHeader ph
 
int ph_format
 
int ph_version
 
MemBuffer ibuf
 
MemBuffer obuf
 
UiPackeruip
 
Linkerlinker
 

Additional Inherited Members

- Public Member Functions inherited from Packer
virtual void assertPacker () const
 
virtual int getFormat () const =0
 
virtual const char * getName () const =0
 
virtual const char * getFullName (const options_t *) const =0
 
virtual const int * getCompressionMethods (int method, int level) const =0
 
virtual const int * getFilters () const =0
 
void initPackHeader ()
 
void updatePackHeader ()
 
void doPack (OutputFile *fo)
 
void doUnpack (OutputFile *fo)
 
void doTest ()
 
void doList ()
 
void doFileInfo ()
 
virtual bool canUnpackFormat (int format) const
 
virtual bool canPack ()=0
 
virtual int canTest ()
 
virtual int canList ()
 
- Static Public Member Functions inherited from Packer
static bool isValidCompressionMethod (int method)
 
- Protected Types inherited from PeFile
enum  {
  PEDIR_EXPORT = 0, PEDIR_IMPORT = 1, PEDIR_RESOURCE = 2, PEDIR_EXCEPTION = 3,
  PEDIR_SEC = 4, PEDIR_RELOC = 5, PEDIR_DEBUG = 6, PEDIR_COPYRIGHT = 7,
  PEDIR_GLOBALPTR = 8, PEDIR_TLS = 9, PEDIR_LOADCONF = 10, PEDIR_BOUNDIM = 11,
  PEDIR_IAT = 12, PEDIR_DELAYIMP = 13, PEDIR_COMRT = 14
}
 
enum  {
  PEFL_CODE = 0x20, PEFL_DATA = 0x40, PEFL_BSS = 0x80, PEFL_INFO = 0x200,
  PEFL_EXTRELS = 0x01000000, PEFL_DISCARD = 0x02000000, PEFL_NOCACHE = 0x04000000, PEFL_NOPAGE = 0x08000000,
  PEFL_SHARED = 0x10000000, PEFL_EXEC = 0x20000000, PEFL_READ = 0x40000000, PEFL_WRITE = 0x80000000
}
 
enum  {
  RELOCS_STRIPPED = 0x0001, EXECUTABLE = 0x0002, LNUM_STRIPPED = 0x0004, LSYMS_STRIPPED = 0x0008,
  AGGRESSIVE_TRIM = 0x0010, TWO_GIGS_AWARE = 0x0020, FLITTLE_ENDIAN = 0x0080, BITS_32_MACHINE = 0x0100,
  DEBUG_STRIPPED = 0x0200, REMOVABLE_SWAP = 0x0400, SYSTEM_PROGRAM = 0x1000, DLL_FLAG = 0x2000,
  FBIG_ENDIAN = 0x8000
}
 
enum  {
  IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE = 0x0040, IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY = 0x0080, IMAGE_DLL_CHARACTERISTICS_NX_COMPAT = 0x0100, IMAGE_DLLCHARACTERISTICS_NO_ISOLATION = 0x0200,
  IMAGE_DLLCHARACTERISTICS_NO_SEH = 0x0400, IMAGE_DLLCHARACTERISTICS_NO_BIND = 0x0800, IMAGE_DLLCHARACTERISTICS_WDM_DRIVER = 0x2000, IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = 0x8000
}
 
enum  {
  RT_CURSOR = 1, RT_BITMAP, RT_ICON, RT_MENU,
  RT_DIALOG, RT_STRING, RT_FONTDIR, RT_FONT,
  RT_ACCELERATOR, RT_RCDATA, RT_MESSAGETABLE, RT_GROUP_CURSOR,
  RT_GROUP_ICON = 14, RT_VERSION = 16, RT_DLGINCLUDE, RT_PLUGPLAY = 19,
  RT_VXD, RT_ANICURSOR, RT_ANIICON, RT_HTML,
  RT_MANIFEST, RT_LAST
}
 
- Static Protected Member Functions inherited from PeFile
static unsigned virta2objnum (unsigned, pe_section_t *, unsigned)
 
- Static Protected Member Functions inherited from Packer
static void handleStub (InputFile *fi, OutputFile *fo, unsigned size)
 
static upx_byte * optimizeReloc (upx_byte *in, unsigned relocnum, upx_byte *out, upx_byte *image, int bs, int *big, int bits)
 
static unsigned unoptimizeReloc (upx_byte **in, upx_byte *image, MemBuffer *out, int bs, int bits)
 
static upx_byte * optimizeReloc32 (upx_byte *in, unsigned relocnum, upx_byte *out, upx_byte *image, int bs, int *big)
 
static unsigned unoptimizeReloc32 (upx_byte **in, upx_byte *image, MemBuffer *out, int bs)
 
static upx_byte * optimizeReloc64 (upx_byte *in, unsigned relocnum, upx_byte *out, upx_byte *image, int bs, int *big)
 
static unsigned unoptimizeReloc64 (upx_byte **in, upx_byte *image, MemBuffer *out, int bs)
 

The documentation for this class was generated from the following files: