Upx_Doxygen
https://github.com/upx/upx
|
Protected Member Functions | |
PeFile64 (InputFile *f) | |
void | pack0 (OutputFile *fo, unsigned subsystem_mask, upx_uint64_t default_imagebase) |
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 | |
![]() | |
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) |
![]() | |
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 Linker * | newLinker () 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 |
LE64 | imagebase |
LE32 | objectalign |
LE32 | filealign |
char | ____ [16] |
LE32 | imagesize |
LE32 | headersize |
LE32 | chksum |
LE16 | subsystem |
LE16 | dllflags |
char | _____ [36] |
LE32 | ddirsentries |
ddirs_t | ddirs [16] |
oh | |
![]() | |
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 |
![]() | |
const N_BELE_RTP::AbstractPolicy * | bele |
InputFile * | fi |
off_t | file_size |
PackHeader | ph |
int | ph_format |
int | ph_version |
MemBuffer | ibuf |
MemBuffer | obuf |
UiPacker * | uip |
Linker * | linker |
Additional Inherited Members | |
![]() | |
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 bool | isValidCompressionMethod (int method) |
![]() | |
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 unsigned | virta2objnum (unsigned, pe_section_t *, unsigned) |
![]() | |
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) |