⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p_lx_elf.h

📁 UPX 源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
        COMPILE_TIME_ASSERT_ALIGNED1(cprElfHdr2)        COMPILE_TIME_ASSERT_ALIGNED1(cprElfHdr3)    }};class PackLinuxElf32Be : public PackLinuxElf32{    typedef PackLinuxElf32 super;protected:    PackLinuxElf32Be(InputFile *f) : super(f) { bele = &N_BELE_RTP::be_policy; }    virtual acc_uint64l_t get_native64(const void *b) const { return get_be64(b); }    virtual unsigned get_native32(const void *b) const { return get_be32(b); }    virtual unsigned get_native16(const void *b) const { return get_be16(b); }    virtual void set_native64(void *b, acc_uint64l_t v) const { set_be64(b, v); }    virtual void set_native32(void *b, unsigned v) const { set_be32(b, v); }    virtual void set_native16(void *b, unsigned v) const { set_be16(b, v); }};class PackLinuxElf32Le : public PackLinuxElf32{    typedef PackLinuxElf32 super;protected:    PackLinuxElf32Le(InputFile *f) : super(f) { bele = &N_BELE_RTP::le_policy; }    virtual acc_uint64l_t get_native64(const void *b) const { return get_le64(b); }    virtual unsigned get_native32(const void *b) const { return get_le32(b); }    virtual unsigned get_native16(const void *b) const { return get_le16(b); }    virtual void set_native64(void *b, acc_uint64l_t v) const { set_le64(b, v); }    virtual void set_native32(void *b, unsigned v) const { set_le32(b, v); }    virtual void set_native16(void *b, unsigned v) const { set_le16(b, v); }};class PackLinuxElf64Le : public PackLinuxElf64{    typedef PackLinuxElf64 super;protected:    PackLinuxElf64Le(InputFile *f) : super(f) { bele = &N_BELE_RTP::le_policy; }    virtual acc_uint64l_t get_native64(const void *b) const { return get_le64(b); }    virtual unsigned get_native32(const void *b) const { return get_le32(b); }    virtual unsigned get_native16(const void *b) const { return get_le16(b); }    virtual void set_native64(void *b, acc_uint64l_t v) const { set_le64(b, v); }    virtual void set_native32(void *b, unsigned v) const { set_le32(b, v); }    virtual void set_native16(void *b, unsigned v) const { set_le16(b, v); }};/*************************************************************************// linux/elf64amd**************************************************************************/class PackLinuxElf64amd : public PackLinuxElf64Le{    typedef PackLinuxElf64Le super;public:    PackLinuxElf64amd(InputFile *f);    virtual ~PackLinuxElf64amd();    virtual int getFormat() const { return UPX_F_LINUX_ELF64_AMD; }    virtual const char *getName() const { return "linux/ElfAMD"; }    virtual const char *getFullName(const options_t *) const { return "amd64-linux.elf"; }    virtual const int *getFilters() const;    virtual bool canPack();protected:    virtual void pack1(OutputFile *, Filter &);  // generate executable header    //virtual void pack3(OutputFile *, Filter &);  // append loader    virtual void buildLoader(const Filter *);    virtual Linker* newLinker() const;    virtual void defineSymbols(Filter const *);};/*************************************************************************// linux/elf32ppc**************************************************************************/class PackLinuxElf32ppc : public PackLinuxElf32Be{    typedef PackLinuxElf32Be super;public:    PackLinuxElf32ppc(InputFile *f);    virtual ~PackLinuxElf32ppc();    virtual int getFormat() const { return UPX_F_LINUX_ELFPPC32; }    virtual const char *getName() const { return "linux/ElfPPC"; }    virtual const char *getFullName(const options_t *) const { return "powerpc-linux.elf"; }    virtual const int *getFilters() const;protected:    virtual void pack1(OutputFile *, Filter &);  // generate executable header    virtual void buildLoader(const Filter *);    virtual Linker* newLinker() const;};/*************************************************************************// linux/elf386**************************************************************************/class PackLinuxElf32x86 : public PackLinuxElf32Le{    typedef PackLinuxElf32Le super;public:    PackLinuxElf32x86(InputFile *f);    virtual ~PackLinuxElf32x86();    virtual int getFormat() const { return UPX_F_LINUX_ELF_i386; }    virtual const char *getName() const { return "linux/elf386"; }    virtual const char *getFullName(const options_t *) const { return "i386-linux.elf"; }    virtual const int *getFilters() const;    virtual void unpack(OutputFile *fo);protected:    virtual void pack1(OutputFile *, Filter &);  // generate executable header    virtual void buildLoader(const Filter *);    virtual void addStubEntrySections(Filter const *);    virtual Linker* newLinker() const;    virtual void defineSymbols(Filter const *);};class PackBSDElf32x86 : public PackLinuxElf32x86{    typedef PackLinuxElf32x86 super;public:    PackBSDElf32x86(InputFile *f);    virtual ~PackBSDElf32x86();    virtual int getFormat() const { return UPX_F_BSD_ELF_i386; }    virtual const char *getName() const { return "BSD/elf386"; }protected:    virtual void pack1(OutputFile *, Filter &);  // generate executable header    virtual void buildLoader(const Filter *);};class PackFreeBSDElf32x86 : public PackBSDElf32x86{    typedef PackBSDElf32x86 super;public:    PackFreeBSDElf32x86(InputFile *f);    virtual ~PackFreeBSDElf32x86();    virtual const char *getFullName(const options_t *) const { return "i386-freebsd.elf"; }};class PackNetBSDElf32x86 : public PackBSDElf32x86{    typedef PackBSDElf32x86 super;public:    PackNetBSDElf32x86(InputFile *f);    virtual ~PackNetBSDElf32x86();    virtual const char *getFullName(const options_t *) const { return "i386-netbsd.elf"; }};class PackOpenBSDElf32x86 : public PackBSDElf32x86{    typedef PackBSDElf32x86 super;public:    PackOpenBSDElf32x86(InputFile *f);    virtual ~PackOpenBSDElf32x86();    virtual const char *getFullName(const options_t *) const { return "i386-openbsd.elf"; }protected:    virtual void buildLoader(const Filter *ft);    virtual void generateElfHdr(        OutputFile *,        void const *proto,        unsigned const brka    );};/*************************************************************************// linux/elfarm**************************************************************************/class PackLinuxElf32armLe : public PackLinuxElf32Le{    typedef PackLinuxElf32Le super;public:    PackLinuxElf32armLe(InputFile *f);    virtual ~PackLinuxElf32armLe();    virtual int getFormat() const { return UPX_F_LINUX_ELF32_ARMEL; }    virtual const char *getName() const { return "linux/armel"; }    virtual const char *getFullName(const options_t *) const { return "arm-linux.elf"; }    virtual const int *getFilters() const;protected:    virtual const int *getCompressionMethods(int method, int level) const;    virtual Linker* newLinker() const;    virtual void pack1(OutputFile *, Filter &);  // generate executable header    virtual void buildLoader(const Filter *);    virtual void updateLoader(OutputFile *);    virtual void defineSymbols(Filter const *);};class PackLinuxElf32armBe : public PackLinuxElf32Be{    typedef PackLinuxElf32Be super;public:    PackLinuxElf32armBe(InputFile *f);    virtual ~PackLinuxElf32armBe();    virtual int getFormat() const { return UPX_F_LINUX_ELF32_ARMEB; }    virtual const char *getName() const { return "linux/armeb"; }    virtual const char *getFullName(const options_t *) const { return "armeb-linux.elf"; }    virtual const int *getFilters() const;protected:    virtual const int *getCompressionMethods(int method, int level) const;    virtual Linker* newLinker() const;    virtual void pack1(OutputFile *, Filter &);  // generate executable header    virtual void buildLoader(const Filter *);    virtual void updateLoader(OutputFile *);    virtual void defineSymbols(Filter const *);};class PackLinuxElf32mipseb : public PackLinuxElf32Be{    typedef PackLinuxElf32Be super;public:    PackLinuxElf32mipseb(InputFile *f);    virtual ~PackLinuxElf32mipseb();    virtual int getFormat() const { return UPX_F_LINUX_ELF32_MIPSEB; }    virtual const char *getName() const { return "linux/mipseb"; }    virtual const char *getFullName(const options_t *) const { return "mips-linux.elf"; }    virtual const int *getFilters() const;protected:    virtual Linker* newLinker() const;    virtual void pack1(OutputFile *, Filter &);  // generate executable header    virtual void buildLoader(const Filter *);    virtual void updateLoader(OutputFile *);    virtual void defineSymbols(Filter const *);};class PackLinuxElf32mipsel : public PackLinuxElf32Le{    typedef PackLinuxElf32Le super;public:    PackLinuxElf32mipsel(InputFile *f);    virtual ~PackLinuxElf32mipsel();    virtual int getFormat() const { return UPX_F_LINUX_ELF32_MIPSEL; }    virtual const char *getName() const { return "linux/mipsel"; }    virtual const char *getFullName(const options_t *) const { return "mipsel-linux.elf"; }    virtual const int *getFilters() const;protected:    virtual Linker* newLinker() const;    virtual void pack1(OutputFile *, Filter &);  // generate executable header    virtual void buildLoader(const Filter *);    virtual void updateLoader(OutputFile *);    virtual void defineSymbols(Filter const *);};#endif /*} already included *//*vi:ts=4:et*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -