Upx_Doxygen
https://github.com/upx/upx
Classes | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
PackLinuxElf32 Class Reference
Inheritance diagram for PackLinuxElf32:
PackLinuxElf PackUnix Packer PackLinuxElf32Be PackLinuxElf32Le PackLinuxElf32armBe PackLinuxElf32mipseb PackLinuxElf32ppc PackLinuxElf32armLe PackLinuxElf32mipsel PackLinuxElf32x86 PackBSDElf32x86 PackLinuxElf32x86interp PackNetBSDElf32x86 PackFreeBSDElf32x86 PackOpenBSDElf32x86

Classes

struct  Elf32_Nhdr
 

Public Member Functions

 PackLinuxElf32 (InputFile *f)
 
- Public Member Functions inherited from PackLinuxElf
 PackLinuxElf (InputFile *f)
 
virtual bool canUnpackVersion (int version) const
 
- Public Member Functions inherited from PackUnix
virtual int getVersion () const
 
virtual const int * getFilters () const
 
virtual int getStrategy (Filter &)
 
virtual void pack (OutputFile *fo)
 
virtual int canUnpack ()
 
- 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
 
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 int canTest ()
 
virtual int canList ()
 

Protected Member Functions

virtual void PackLinuxElf32help1 (InputFile *f)
 
virtual int checkEhdr (Elf32_Ehdr const *ehdr) const
 
virtual bool canPack ()
 
virtual void ARM_defineSymbols (Filter const *ft)
 
virtual void ARM_updateLoader (OutputFile *)
 
virtual int ARM_is_QNX (void)
 
virtual void pack1 (OutputFile *, Filter &)
 
virtual int pack2 (OutputFile *, Filter &)
 
virtual void pack3 (OutputFile *, Filter &)
 
virtual void pack4 (OutputFile *, Filter &)
 
virtual void unpack (OutputFile *fo)
 
virtual void generateElfHdr (OutputFile *, void const *proto, unsigned const brka)
 
virtual void buildLinuxLoader (upx_byte const *const proto, unsigned const szproto, upx_byte const *const fold, unsigned const szfold, Filter const *ft)
 
virtual off_t getbrk (const Elf32_Phdr *phdr, int e_phnum) const
 
virtual void patchLoader ()
 
virtual void updateLoader (OutputFile *fo)
 
virtual unsigned find_LOAD_gap (Elf32_Phdr const *const phdri, unsigned const k, unsigned const e_phnum)
 
virtual off_t getbase (const Elf32_Phdr *phdr, int e_phnum) const
 
virtual Elf32_Sym const * elf_lookup (char const *) const
 
virtual unsigned elf_get_offset_from_address (unsigned) const
 
Elf32_Shdr const * elf_find_section_name (char const *) const
 
Elf32_Shdr const * elf_find_section_type (unsigned) const
 
void const * elf_find_dynamic (unsigned) const
 
Elf32_Dyn const * elf_has_dynamic (unsigned) const
 
upx_uint64_t elf_unsigned_dynamic (unsigned) const
 
 __packed_struct (cprElfHdr1) Elf32_Ehdr ehdr
 
 __packed_struct_end () __packed_struct(cprElfHdr2) Elf32_Ehdr ehdr
 
 __packed_struct_end () __packed_struct(cprElfHdr3) Elf32_Ehdr ehdr
 
 __packed_struct_end () __packed_struct(cprElfHdrNetBSD) Elf32_Ehdr ehdr
 
 __packed_struct_end () cprElfHdrNetBSD elfout
 
 __packed_struct (cprElfShdr3) Elf32_Shdr shdr[3]
 
 __packed_struct_end () cprElfShdr3 shdrout
 
- Protected Member Functions inherited from PackLinuxElf
virtual const int * getCompressionMethods (int method, int level) const
 
virtual void defineSymbols (Filter const *)
 
virtual void addStubEntrySections (Filter const *)
 
- Protected Member Functions inherited from PackUnix
 PackUnix (InputFile *f)
 
virtual void patchLoaderChecksum ()
 
virtual void writePackHeader (OutputFile *fo)
 
virtual bool checkCompressionRatio (unsigned, unsigned) const
 
virtual void packExtent (const Extent &x, unsigned &total_in, unsigned &total_out, Filter *, OutputFile *, unsigned hdr_len=0)
 
virtual void unpackExtent (unsigned wanted, OutputFile *fo, unsigned &total_in, unsigned &total_out, unsigned &c_adler, unsigned &u_adler, bool first_PF_X, unsigned szb_info)
 
 __packed_struct (b_info) unsigned sz_unc
 
 __packed_struct_end () __packed_struct(l_info) LE32 l_checksum
 
 __packed_struct_end () __packed_struct(p_info) unsigned p_progid
 
 __packed_struct_end () struct l_info linfo
 
- Protected Member Functions inherited from Packer
 Packer (InputFile *f)
 
virtual bool testUnpackVersion (int version) const
 
virtual bool testUnpackFormat (int format) const
 
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 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
 

Static Protected Member Functions

static void compileTimeAssertions ()
 
- Static Protected Member Functions inherited from PackLinuxElf
static unsigned elf_hash (char const *)
 
static unsigned gnu_hash (char const *)
 
- 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)
 

Protected Attributes

Elf32_Ehdr ehdri
 
Elf32_Phdr * phdri
 
unsigned e_phoff
 
unsigned e_shoff
 
unsigned char * note_body
 
unsigned note_size
 
Elf32_Shdr const * shdri
 
unsigned page_mask
 
Elf32_Dyn const * dynseg
 
unsigned int const * hashtab
 
unsigned int const * gashtab
 
Elf32_Sym const * dynsym
 
Elf32_Sym const * jni_onload_sym
 
char const * shstrtab
 
Elf32_Shdr const * sec_strndx
 
Elf32_Shdr const * sec_dynsym
 
Elf32_Shdr const * sec_dynstr
 
Elf32_Phdr phdr [1]
 
l_info linfo
 
unsigned char notes [512]
 
- Protected Attributes inherited from PackLinuxElf
unsigned e_type
 
unsigned e_phnum
 
unsigned e_shnum
 
MemBuffer file_image
 
char const * dynstr
 
unsigned sz_phdrs
 
unsigned sz_elf_hdrs
 
unsigned sz_pack2
 
unsigned sz_pack2a
 
unsigned lg2_page
 
unsigned page_size
 
unsigned is_big
 
unsigned xct_off
 
unsigned hatch_off
 
upx_uint64_t load_va
 
upx_uint64_t xct_va
 
upx_uint64_t jni_onload_va
 
upx_uint16_t e_machine
 
unsigned char ei_class
 
unsigned char ei_data
 
unsigned char ei_osabi
 
char const * osabi_note
 
unsigned char const * buildid_data
 
int o_elf_shnum
 
- Protected Attributes inherited from PackUnix
int exetype
 
unsigned blocksize
 
unsigned progid
 
unsigned overlay_offset
 
MemBuffer loader
 
int lsize
 
MemBuffer pt_dynamic
 
int sz_dynamic
 
unsigned b_len
 
unsigned sz_cpr
 
unsigned char b_method
 
unsigned char b_ftid
 
unsigned char b_cto8
 
unsigned char b_unused
 
LE32 l_magic
 
LE16 l_lsize
 
unsigned char l_version
 
unsigned char l_format
 
unsigned p_filesize
 
unsigned p_blocksize
 
- 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

- Static Public Member Functions inherited from Packer
static bool isValidCompressionMethod (int method)
 
- Protected Types inherited from PackUnix
enum  { OVERHEAD = 2048 }
 
- Static Protected Attributes inherited from PackLinuxElf
static unsigned char o_shstrtab []
 

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