From c069efaa1bd697c892663bd489ba86ef9ea79fee Mon Sep 17 00:00:00 2001 From: John Reiser Date: Tue, 15 Oct 2002 16:11:23 +0000 Subject: [PATCH] decompress upx-1.22 linux/386 by e_entry==+0x80 committer: jreiser 1034698283 +0000 --- src/p_unix.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/p_unix.cpp b/src/p_unix.cpp index 460120c7..68a72182 100644 --- a/src/p_unix.cpp +++ b/src/p_unix.cpp @@ -312,6 +312,15 @@ void PackUnix::unpack(OutputFile *fo) if (e_entry < 0x401180) { /* old style, 8-byte b_info */ szb_info = 2*sizeof(unsigned); } + else { + Elf_LE32_Phdr phdr; + fi->seek(get_native32(&ehdr.e_phoff), SEEK_SET); + fi->readx(&phdr, sizeof(phdr)); + unsigned const p_vaddr = get_native32(&phdr.p_vaddr); + if (0x80==(e_entry - p_vaddr)) { /* 1.22 old style */ + szb_info = 2*sizeof(unsigned); + } + } } unsigned c_adler = upx_adler32(NULL, 0);