Upx_Doxygen
https://github.com/upx/upx
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
PackMachPPC32 Class Reference
Inheritance diagram for PackMachPPC32:
PackMachBase< MachClass_BE32 > PackUnix Packer PackDylibPPC32

Public Member Functions

 PackMachPPC32 (InputFile *f)
 
virtual int getFormat () const
 
virtual const char * getName () const
 
virtual const char * getFullName (const options_t *) const
 
- Public Member Functions inherited from PackMachBase< MachClass_BE32 >
 PackMachBase (InputFile *, unsigned cpuid, unsigned filetype, unsigned t_flavor, unsigned ts_word_cnt, unsigned tc_size)
 
virtual int getVersion () const
 
virtual const int * getCompressionMethods (int method, int level) const
 
virtual void pack1 (OutputFile *, Filter &)
 
virtual int pack2 (OutputFile *, Filter &)
 
virtual void pack3 (OutputFile *, Filter &)
 
virtual void pack4 (OutputFile *, Filter &)
 
virtual void pack4dylib (OutputFile *, Filter &, Addr init_address)
 
virtual void unpack (OutputFile *fo)
 
virtual bool canPack ()
 
virtual int canUnpack ()
 
virtual unsigned find_SEGMENT_gap (unsigned const k, unsigned pos_eof)
 
- Public Member Functions inherited from PackUnix
virtual int getStrategy (Filter &)
 
virtual void pack (OutputFile *fo)
 
- Public Member Functions inherited from Packer
virtual void assertPacker () const
 
void initPackHeader ()
 
void updatePackHeader ()
 
void doPack (OutputFile *fo)
 
void doUnpack (OutputFile *fo)
 
void doTest ()
 
void doList ()
 
void doFileInfo ()
 
virtual bool canUnpackVersion (int version) const
 
virtual bool canUnpackFormat (int format) const
 
virtual int canTest ()
 
virtual int canList ()
 

Protected Types

enum  {
  PPC_THREAD_STATE = 1, PPC_THREAD_STATE64 = 5, x86_THREAD_STATE32 = 1, x86_THREAD_STATE64 = 4,
  i386_OLD_THREAD_STATE = -1, ARM_THREAD_STATE = 1
}
 
- Protected Types inherited from PackMachBase< MachClass_BE32 >
typedef MachClass_BE32 MachClass
 
typedef MachClass::BeLePolicy BeLePolicy
 
typedef MachClass::MachITypes MachITypes
 
typedef MachClass::TE16 TE16
 
typedef MachClass::TE32 TE32
 
typedef MachClass::TE64 TE64
 
typedef MachClass::Addr Addr
 
typedef MachClass::Mach_header Mach_header
 
typedef MachClass::Mach_command Mach_command
 
typedef MachClass::Mach_segment_command Mach_segment_command
 
typedef MachClass::Mach_section_command Mach_section_command
 
typedef MachClass::Mach_symtab_command Mach_symtab_command
 
typedef MachClass::Mach_dysymtab_command Mach_dysymtab_command
 
typedef MachClass::Mach_segsplit_info_command Mach_segsplit_info_command
 
typedef MachClass::Mach_routines_command Mach_routines_command
 
typedef MachClass::Mach_twolevel_hints_command Mach_twolevel_hints_command
 
typedef MachClass::Mach_linkedit_data_command Mach_linkedit_data_command
 
typedef MachClass::Mach_uuid_command Mach_uuid_command
 
typedef MachClass::Mach_main_command Mach_main_command
 
typedef MachClass::Mach_data_in_code_command Mach_data_in_code_command
 
typedef MachClass::Mach_function_starts_command Mach_function_starts_command
 
typedef MachClass::Mach_load_dylib_command Mach_load_dylib_command
 
typedef MachClass::Mach_dylib Mach_dylib
 
typedef MachClass::Mach_load_dylinker_command Mach_load_dylinker_command
 
typedef MachClass::Mach_dyld_info_only_command Mach_dyld_info_only_command
 
typedef MachClass::Mach_version_min_command Mach_version_min_command
 
typedef MachClass::Mach_source_version_command Mach_source_version_command
 
- Protected Types inherited from PackUnix
enum  { OVERHEAD = 2048 }
 

Protected Member Functions

virtual const int * getFilters () const
 
virtual void pack1_setup_threado (OutputFile *const fo)
 
virtual LinkernewLinker () const
 
virtual void addStubEntrySections (Filter const *)
 
 __packed_struct (Mach_thread_command) TE32 cmd
 
 __packed_struct_end () Mach_thread_command threado
 
int threado_size () const
 
void threado_setPC (upx_uint64_t pc)
 
void threado_rewrite (OutputFile *fo)
 
void threado_write (OutputFile *fo)
 
upx_uint64_t threadc_getPC (void const *ptr)
 
- Protected Member Functions inherited from PackMachBase< MachClass_BE32 >
virtual void patchLoader ()
 
virtual void patchLoaderChecksum ()
 
virtual void updateLoader (OutputFile *)
 
virtual void buildLoader (const Filter *ft)
 
virtual void buildMachLoader (upx_byte const *const proto, unsigned const szproto, upx_byte const *const fold, unsigned const szfold, Filter const *ft)
 
virtual void defineSymbols (Filter const *)
 
 __packed_struct (b_info) TE32 sz_unc
 
 __packed_struct_end () __packed_struct(l_info) TE32 l_checksum
 
 __packed_struct_end () __packed_struct(p_info) TE32 p_progid
 
 __packed_struct_end () struct l_info linfo
 
- Protected Member Functions inherited from PackUnix
 PackUnix (InputFile *f)
 
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 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

TE32 cmdsize
 
TE32 flavor
 
TE32 count
 
Mach_ppc_thread_state state
 
- Protected Attributes inherited from PackMachBase< MachClass_BE32 >
upx_uint64_t entryVMA
 
unsigned my_cputype
 
unsigned my_cpusubtype
 
unsigned my_filetype
 
unsigned my_thread_flavor
 
unsigned my_thread_state_word_count
 
unsigned my_thread_command_size
 
unsigned n_segment
 
unsigned sz_segment
 
unsigned sz_mach_headers
 
unsigned sz_stub_entry
 
unsigned sz_stub_fold
 
unsigned sz_stub_main
 
upx_byte const * stub_entry
 
upx_byte const * stub_fold
 
upx_byte const * stub_main
 
Mach_segment_command * rawmseg
 
Mach_segment_command * msegcmd
 
unsigned o_routines_cmd
 
upx_uint64_t prev_init_address
 
Mach_header mhdri
 
Mach_header mhdro
 
Mach_segment_command segZERO
 
Mach_segment_command segXHDR
 
Mach_section_command secXHDR
 
Mach_segment_command segTEXT
 
Mach_section_command secTEXT
 
Mach_segment_command segLINK
 
Mach_linkedit_data_command linkitem
 
Mach_uuid_command cmdUUID
 
Mach_source_version_command cmdSRCVER
 
Mach_version_min_command cmdVERMIN
 
TE32 sz_cpr
 
unsigned char b_method
 
unsigned char b_ftid
 
unsigned char b_cto8
 
unsigned char b_unused
 
LE32 l_magic
 
TE16 l_lsize
 
unsigned char l_version
 
unsigned char l_format
 
TE32 p_filesize
 
TE32 p_blocksize
 
- 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)
 
- Static Protected Member Functions inherited from PackMachBase< MachClass_BE32 >
static int __acc_cdecl_qsort compare_segment_command (void const *aa, void const *bb)
 
static void compileTimeAssertions ()
 
- 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: