After upx-3.96, the de-compressing stub for ELF moved

... so unpack() of newly-compressed ELF by upx-3.96 now says
"CantUnpackException: need a newer version of UPX"
        https://github.com/upx/upx/issues/595
	modified:   p_lx_elf.h
	modified:   packer.h
This commit is contained in:
John Reiser 2022-09-26 15:02:30 -07:00 committed by Markus F.X.J. Oberhumer
parent 36e94e58d0
commit a13b4d10d9
2 changed files with 3 additions and 0 deletions

View File

@ -40,6 +40,7 @@ public:
PackLinuxElf(InputFile *f);
virtual ~PackLinuxElf();
/*virtual void buildLoader(const Filter *);*/
virtual int getVersion() const override { return 14; } // upx-3.96 cannot upack, for instance
virtual bool canUnpackVersion(int version) const { return (version >= 11); }
virtual int canUnpack() { return super::canUnpack(); }

View File

@ -116,6 +116,8 @@ public:
virtual ~Packer();
virtual void assertPacker() const;
// getVersion() enables detecting forward incompatibility of unpack()
// by old upx when newer upx changes the format of compressed output.
virtual int getVersion() const = 0;
// A unique integer ID for this executable format. See conf.h.
virtual int getFormat() const = 0;