ELF2: fix lzma on amd64-linux.elf-*

New -DWINDOWS_BACK so that amd64-win64.pe.h does not change.
This hides a real bug (unchecked), but would change anti-virus status.
	modified:   src/stub/src/amd64-expand.S
	modified:   src/stub/src/amd64-linux.elf-entry.S
	modified:   src/stub/src/amd64-linux.elf-fold.S
	modified:   src/stub/src/arch/amd64/lzma_d.S
	modified:   src/stub/Makefile
	modified:   misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
           plus generated *.h, *.map, *.dump
This commit is contained in:
John Reiser 2024-06-22 13:25:22 -07:00
parent 743eb5cc26
commit c924c32d54
17 changed files with 3606 additions and 3501 deletions

View File

@ -46,8 +46,8 @@ b8c35fa2956da17ca505956e9f5017bb5f3a746322647e24ccb8ff28059cafa4 *powerpc-linux.
a0950546dc17fca9437219431d8ddb0249ce5b08e899e0c799a87ac982adee70 *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t110_compress_ucl_nrv2b_3_no_filter="\
c60a223f91718a00e672f2fadd10d96561ffb7f964d38344920b18539a9e6157 *amd64-linux.elf/upx-3.91
284d1ec598ae74cb4b21043395a7ab2d0ae99f99b9acb78e0eb232f6061cfda6 *amd64-linux.elf/upx-3.95
9549b4bc030cf87180c3ccf3496a814f36f7c5c2c760d496be3e1a3a413c3c4c *amd64-linux.elf/upx-3.91
1ad32402649158637008103999b295c34b136a5c5ef2df7662743be847479059 *amd64-linux.elf/upx-3.95
1bd70a3cd3b34e635a3c947cacd46c4d66bf07e0fd350cc6d1f3cf60483f75b9 *amd64-win64.pe/upx-3.95.exe
c9d8d916100e1dd972a2a9a060e4213505b14c62e9705ab6c8b544a8f18e083d *arm-linux.elf/upx-3.95
94422a91473a467dfb534afa3f20247bc38691aeb386a42fb3e0fd18d3d0ae08 *arm-wince.pe/upx-3.91.exe
@ -69,8 +69,8 @@ fcbd8b4709ee324eb772e5de45a85bac5b8e560460fb1d50d0958f2ce568be97 *mipsel-linux.e
d74c348bad0c1f3e776cf78282141492a58746c601f3f4288c9e675b7b425f82 *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t120_compress_ucl_nrv2d_3_no_filter="\
c9246e48c666118cc10469e072e7e3dd926d641cb5ffc2378b65b1e00df99aae *amd64-linux.elf/upx-3.91
6c8b05a3ab6fbe9cccf35204f552b36640a8e6903b47297ecde3471138f2165c *amd64-linux.elf/upx-3.95
8d80375df7f1c2b0a989d9e9142055e069dd0b5fea8a1adb958af8f71b3a4875 *amd64-linux.elf/upx-3.91
8db9ef6b61fa95e3e527b9b3bea680a8c46d882ffb78ba872054b972e7d40e07 *amd64-linux.elf/upx-3.95
0314c6974f29d180e46e41a1004d46a3993fe96f03de7f78d45ad89ad3b2177e *amd64-win64.pe/upx-3.95.exe
0f781a70828dc3b939988b96e70c0734cef3f4a7693624e61f7a678b0c8667a6 *arm-linux.elf/upx-3.95
d7839b7dee866794e4ca3df32e2b1084b35aa22dee5f060fa14b5ca09c612ba3 *arm-wince.pe/upx-3.91.exe
@ -92,8 +92,8 @@ d05786b4b729f13a9b325322c2ea41ca7db6f60fee9f82c58874a25ee7eca086 *powerpc-linux.
c4888e9ed7c587163b53246c2c0cb2c6118122feacfc5248f371d8f6c8783abd *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\
e73f5a013f57ad0acec41484eab34ff81c761570c834a0880e735241c22789ac *amd64-linux.elf/upx-3.91
06ee6d1be06640fcaf84a0a9827f117834eda6bb0e69014049d87b1c6ed7d2fe *amd64-linux.elf/upx-3.95
a3c96e15956c311e8d684cb8f1ce469514daa1101abe402afdbebacfdbba8765 *amd64-linux.elf/upx-3.91
31bfd042e9599547a40c5bae98761c602d09fd6dc60eb2761e3abbb2d066fbb5 *amd64-linux.elf/upx-3.95
97bb5953405f3413d9ff9bdc272caf2858697168b3e85dab54213da356b5ea0f *amd64-win64.pe/upx-3.95.exe
0bf33b6b3f246093a7e15c4a51b0a15f40c7ec9c16fcd38613b8b66004a3b3cb *arm-linux.elf/upx-3.95
8c73f5acfc70e3c518be09978af87b9bec4906240cb457a166da0eba05bea4db *arm-wince.pe/upx-3.91.exe
@ -115,8 +115,8 @@ fa3be8f93006a88c7ad3d9fd13f600c4f69745859eb76f7eab317a5b87d256ea *mipsel-linux.e
cf8c7d3616c00e6709eea0ae335cc3959a8debdac3623076541f51724649a6cc *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t140_compress_lzma_2_no_filter="\
373f3b67ebeddb91140922e7a6bdc1bddd7196c644452a22a92edaf7a9b446c1 *amd64-linux.elf/upx-3.91
4a06c24dd5978253b8e74074748673fceb0040f25e46d903f0daa9b8a866a941 *amd64-linux.elf/upx-3.95
c7ee47451ff10ae22f147000f99f94cbc7adf272cafed82f6886cfe9b96fc340 *amd64-linux.elf/upx-3.91
a24f58a9f74c4b7394797a4d1050221dc4f675d87947d27a71b926dd595eeb5f *amd64-linux.elf/upx-3.95
b8815f95e92d6853a04a86069e9054115be2d9aa657fa2c8912d0f37e56c894f *amd64-win64.pe/upx-3.95.exe
7a832eb6c3c33a04053786334c9e1953796ba2debacc754b5a18632ec987aa40 *arm-linux.elf/upx-3.95
018242f330e19dd7ca2fb78687c0070ad88f1aa2e113be865c30ad3ff94a4ada *arm-wince.pe/upx-3.91.exe
@ -138,8 +138,8 @@ a214c035d403c1dc7b5d80d6cfd8e00e2278f8600332875f2e53e1c61648fdc2 *powerpc-linux.
e614e62b002d3f8e900099d1683d17a932e8879c53de6b9a9d4a064f551afa8d *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t150_compress_ucl_2_all_filters="\
99b23fdd6c261cc881be8809f890b73781805a5095cc205fd987f217903dd103 *amd64-linux.elf/upx-3.91
07485f10abd131875fc8a910edbd1fa8e60fd4ae835c5c36753b419cfe6e2e08 *amd64-linux.elf/upx-3.95
48495deeffd861aad3158a8e301e6f638b152626c4e846ab0a8a5f24417198eb *amd64-linux.elf/upx-3.91
f6756249a7dfd7c1f46ab2ee1883c6fc4856ba9b57b05cffbbbf9431673fad5a *amd64-linux.elf/upx-3.95
434732efb16b89114162a1787a28c128e2c11edb9835411f2b707cac5cd475ae *amd64-win64.pe/upx-3.95.exe
acbb1628a4631ec5ded40ec286c55544839f57a671ef925c89f81a7fff937954 *arm-linux.elf/upx-3.95
93e2ead9e54732a1731896681d415e3ce60b7420ad7f3c57822ad7dbd061cdd3 *arm-wince.pe/upx-3.91.exe
@ -161,8 +161,8 @@ e3825daa7fb8d509590c1db347a8403dbd899da453fb43850ebf1d31abbe0cba *powerpc-linux.
3b246002f2dff8e44cf3c2cd2c64701514a1354c27b616c9a704f542df30e04f *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t160_compress_all_methods_1_no_filter="\
743b3edceb699278bc39beb27c0362591cf8591861af1a803020b6568edb772d *amd64-linux.elf/upx-3.91
c71ea56d253397f2b4595afe4591036257231140d2d69ccda56ca37077b3f28b *amd64-linux.elf/upx-3.95
a6ce29bb62217d075e7185ef3bb3b86e79ce392b8e5a7cefb67f09472e6ff27c *amd64-linux.elf/upx-3.91
5d9f69d5d894518e4ac1e206eacf0f46f267ed7c74b9631cd47631c8f5c363cb *amd64-linux.elf/upx-3.95
f38ff7edc916c1a3e82020035667de858c89d52c98d960dad0e21b4da444ed6c *amd64-win64.pe/upx-3.95.exe
2481a933d3f1bcaed047e9cbc81ae227351e86e7c6c761c4756faea0c525aeb6 *arm-linux.elf/upx-3.95
bb475839ec547696aaccf4da202b99be927c872e5de298a5eb1f0be0edc06d1d *arm-wince.pe/upx-3.91.exe
@ -184,8 +184,8 @@ c37806b0d68697276cdd208ab37c92e01055bfbab73c6bbdf054c95fe9cef3b9 *powerpc-linux.
bdd174f8e00e1364fba1f821b56e0083fb9993d2bab9e3a93fced8f66ccc84c7 *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t170_compress_all_methods_no_lzma_5_no_filter="\
c20385e6e4bf7b6de22e67e4fcfa2c94f1b58c031142d63989c6ed2f7c1637f5 *amd64-linux.elf/upx-3.91
eb7f51736e1699a247b9674a9664d36d362e6c7453db0ab51386b471abdf2cb6 *amd64-linux.elf/upx-3.95
9f0841b2f7a81e3720e58bc100d4a5044ab972e67c06b2c609ec6f9333c16c85 *amd64-linux.elf/upx-3.91
6707494a2352c452f033da20c0c54ca91c344e8d5572c5aa66414a7813e60955 *amd64-linux.elf/upx-3.95
5fccb0f5044baaa74d176efb25eefa3b5810dc737ed0f9d38084d275f7ebe7b8 *amd64-win64.pe/upx-3.95.exe
90e56eefcce87542dbbc65e54c83c7e921a747877cbe489089c6043165b4f334 *arm-linux.elf/upx-3.95
56be0b4046accdfadbe534ecb6e6452b9e3a18bb9eac39da0ee8893c31d24416 *arm-wince.pe/upx-3.91.exe

View File

@ -506,7 +506,7 @@ amd64-win64.pe.h : tc_list = amd64-win64.pe default
amd64-win64.pe.h : tc_bfdname = elf64-x86-64
amd64-win64.pe.h : tc_objdump_disasm_options = -M intel-mnemonic
tc.amd64-win64.pe.gcc = amd64-linux-gcc-4.1.1 -m64 -nostdinc -MMD -MT $@
tc.amd64-win64.pe.gcc = amd64-linux-gcc-4.1.1 -m64 -nostdinc -DWINDOWS_BACK=1 -MMD -MT $@
tc.amd64-win64.pe.gcc += -fno-exceptions -fno-asynchronous-unwind-tables
tc.amd64-win64.pe.gcc += -Wall -W -Wcast-align -Wcast-qual -Wstrict-prototypes -Wwrite-strings -Werror
tc.amd64-win64.pe.objdump = multiarch-objdump-2.23.90

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -33,8 +33,8 @@
/* clang-format off */
#define STUB_AMD64_LINUX_ELF_ENTRY_SIZE 1101
#define STUB_AMD64_LINUX_ELF_ENTRY_ADLER32 0x64b93a03
#define STUB_AMD64_LINUX_ELF_ENTRY_CRC32 0x33613c50
#define STUB_AMD64_LINUX_ELF_ENTRY_ADLER32 0x6aa33a05
#define STUB_AMD64_LINUX_ELF_ENTRY_CRC32 0x424cb481
unsigned char stub_amd64_linux_elf_entry[1101] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@ -58,7 +58,7 @@ unsigned char stub_amd64_linux_elf_entry[1101] = {
/* 0x0120 */ 141, 52, 47,243,164, 94,235,180, 93, 89, 72, 57,206,116, 1,244,
/* 0x0130 */ 72,139, 69, 48, 72,137, 4, 36, 72,139, 85, 32, 84, 94, 76,137,
/* 0x0140 */ 231,106, 1, 88,232, 60, 0, 0, 0, 85, 92, 69, 41,201, 77,137,
/* 0x0150 */ 224,106, 1, 65, 90, 82, 94,106, 5, 90, 41,255,106, 9, 88,232,
/* 0x0150 */ 224,106, 1, 65, 90, 82, 94,106, 7, 90, 41,255,106, 9, 88,232,
/* 0x0160 */ 33, 0, 0, 0, 80, 72,137, 69, 24, 65, 80, 95,106, 3, 88, 15,
/* 0x0170 */ 5, 88, 72,131,192, 8,255,224, 72,139, 7, 72,131,199, 8, 72,
/* 0x0180 */ 133,192,117,244,195, 80, 15, 5, 89, 72, 61, 0,240,255,255,114,

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -81,9 +81,12 @@ f_expand: .globl f_expand // start of code for actual de-compressor
push %rbp; mov %rsp,%rbp; push %rbx // MATCH_50 C saved registers
// Calling sequence registers
#define fx_src %rdi
#define fx_src %rdi /* includes b_info for .b_method, .b_ftid, .b_cto8 */
#define fx_dst %rsi
#define fx_dstlen %rdx
#define meth %r8d
#define methb %r8b
sz_unc= 0
sz_cpr= 4
@ -119,7 +122,6 @@ unfilter:
#define len %ecx /* XXX: 2GB */
#define lenq %rcx
#define bits %ebx
#define methb %dl /* input only */
#define src %rsi
#define dst %rdi
#define displ %ebp
@ -127,7 +129,7 @@ unfilter:
decompress: // (fx_src= &b_info, fx_dst= dst, fx_dstlen= &dstlen)
push fx_dstlen // MATCH_51
movzbl b_method(fx_src),%edx // methb; for choosing decompression method
movzbl b_method(fx_src),meth // daisy chain by decompression method
push fx_src; push fx_dst
pop dst; pop src
mov sz_cpr(src),%eax; add $sz_binfo,src // done with b_info; ready for movsb, lodsb
@ -137,7 +139,7 @@ decompress: // (fx_src= &b_info, fx_dst= dst, fx_dstlen= &dstlen)
xor bits,bits // empty; force refill
xor len,len // create loop invariant
orq $(~0),dispq // -1: initial displacement
jmp setup
jmp go_meth
refill:
movl (%rsi),bits; sub $-4,%rsi // next 32 bits; set Carry
@ -164,7 +166,7 @@ copy1:
copy0:
rep; ret
setup:
go_meth:
cld
#define M_NRV2B_LE32 2
@ -173,6 +175,8 @@ setup:
#define M_CL1B_LE32 11
#define M_LZMA 14
// Daisy chain of decoding methods that were used
section NRV2E
#include "arch/amd64/nrv2e_d.S"
@ -189,13 +193,22 @@ setup:
#undef displ
#undef dispq
section LZMA_ELF00 // prefix for parameter juggling
push dst; push src // MATCH_60
#define arg2d esi
mov sz_cpr - sz_binfo(src),%arg2d
#undef src
#undef dst
#undef methb
mov fx_dstlen,%arg4
pop %arg1; pop %arg3 // MATCH_60
/* lzma has its own 'section's */
#include "arch/amd64/lzma_d.S"
// Fall through: daisy chain had no matching method
mov meth,%ecx // b_method as __NR__
or $~0,%eax // "errno"
int3; hlt // no method
section EXP_TAIL
eof:
pop %rax // MATCH_53 dst_orig

View File

@ -246,7 +246,7 @@ eof_n2b:
mov %r12,%arg5 // mfd
push $MAP_SHARED; pop %sys4
push %arg3; pop %arg2 // LENU
push $PROT_READ|PROT_EXEC; pop %arg3 // FIXME: add PROT_WRITE for DEBUG only
push $PROT_WRITE|PROT_READ|PROT_EXEC; pop %arg3 // FIXME: add PROT_WRITE for DEBUG only
subl %edi,%edi // (%arg1)dst = 0; // kernel chooses addr
push $__NR_mmap; pop %rax; call sys_check
push %rax // MATCH_12

View File

@ -133,7 +133,6 @@ env_pse:
mov %r15,%rcx
sub %rsp,%rcx # byte count
mov %rdi,%r14 # end of new auxv
sub $NBPW,%rdi # &last qword of new auxv
lea -NBPW(%r15),%rsi # &last qword of old auxv
@ -142,12 +141,13 @@ env_pse:
xor %esi,%eax
and $NBPW,%eax
sub %rax,%rdi
mov %rdi,%r14 # &last qword of new auxv
shr $3,%rcx; rep movsq
lea NBPW(%rdi),%rsp
cld
lea (%r14,%r12),%arg4 # &new Elf64_auxv %r12 dead
lea NBPW(%r14,%r12),%arg4 # &new Elf64_auxv %r12 dead
no_env_pse:
pop %arg1 # ADRX with lo bits
pop %arg2 # LENX
@ -202,7 +202,7 @@ no_pse_map:
pop %arg1 # ADRU: unfolded upx_main etc.
pop %arg2 # LENU
push $__NR_munmap; pop %rax
jmp *-NBPW(%r14) # goto: syscall; pop %rdx; ret
jmp *(%r14) # goto: syscall; pop %rdx; ret
get_page_mask: .globl get_page_mask
mov PAGE_MASK(%rip),%rax

View File

@ -36,14 +36,16 @@ section LZMA_ELF00
#define lsrc %arg2 /* %rsi */
#define dst %arg3 /* %rdx */
#define ldst %arg4 /* %rcx */ /* Out: actually a reference: &len_dst */
#ifndef meth //{
#define meth %arg5l /* %r8 */
#define methb %arg5b
#endif //}
// ELFMAINX has already done this for us:
// ELFMAINX (or amd64-expand.S/decompress:) has already done this for us:
// pushq %rbp; push %rbx // C callable
// pushq ldst
// pushq dst
// addq src,lsrc; push lsrc // &input_eof
// pushq ldst // MATCH_51
// addq src,lsrc; push lsrc // MATCH_52 &input_eof
// pushq dst // MATCH_53
// subq src,lsrc //restore the value of lsrc
#define M_LZMA 14
@ -60,7 +62,7 @@ section LZMA_ELF00
movl (ldst),%arg6l // &outSize XXX: 4GB
movq dst,%arg5 // outp
movq lsrc,%arg3 // inSize
leaq 2(src),%arg2; pushq %arg2 // in; save @-8(%rbp) for size calc at eof
leaq 2(src),%arg2; pushq %arg2 // MATCH_70 in; save @-8(%rbp) for size calc at eof
movb (src),%al; decl %arg3l // first byte, replaces LzmaDecodeProperties()
movb %al,%cl // cl= ((lit_context_bits + lit_pos_bits)<<3) | pos_bits
@ -91,7 +93,11 @@ section LZMA_ELF00
andb $0xf,%al; movb %al, (%arg1) // store lit_context_bits
leaq -szSizeT(%arg1),%arg4 // &inSizeProcessed
pushq %rax // return address slot (dummy CALL)
#ifdef WINDOWS_BACK
push %rax // return address slot (dummy CALL) [value ignored]
#else
push $0x5A // return address slot (dummy CALL) [value easy to debug]
#endif // WINDOWS_BACK
#ifndef NO_RED_ZONE
@ -109,18 +115,27 @@ section LZMA_DEC20
#endif
section LZMA_DEC30
movq -1*8(%rbp),%rsi // src [after header]
movq 2*8(%rbp),%rdi // dst
movq -1*8(%rbp),%rsi // MATCH_70 src [after header]
#ifdef WINDOWS_BACK
movq 2*8(%rbp),%rdi // dst (actually an un-checked bug)
#else
movq 1*8(%rbp),%rdi // dst
#endif
movl szSizeT(%rbx),%ecx; addq %rcx,%rsi // inSizeProcessed
movl (%rbx),%edx; addq %rdx,%rdi // outSizeProcessed
leave // movl %ebp,%rsp; popq %rbp
#ifndef NO_METHOD_CHECK
#ifdef WINDOWS_BACK
jmp eof_lzma
#else
jmp eof
#endif // WINDOWS_BACK
not_lzma:
push %rdi; pop %rsi # src = arg1
# fall into 'eof'
# fall into next daisy-chain method
eof_lzma:
#endif
#endif // NO_METHOD_CHECK
// vi:ts=8:et

View File

@ -7,13 +7,13 @@ Idx Name Size VMA LMA File off Algn
2 NRV2E 0ba 0 0 0c6 2**0 CONTENTS
3 NRV2D 0a1 0 0 0180 2**0 CONTENTS
4 NRV2B 093 0 0 0221 2**0 CONTENTS
5 LZMA_ELF00 064 0 0 02b4 2**0 CONTENTS
6 LZMA_DEC10 09f7 0 0 0318 2**0 CONTENTS
7 LZMA_DEC20 09f7 0 0 0d0f 2**0 CONTENTS
8 LZMA_DEC30 018 0 0 01706 2**0 CONTENTS
9 NRV_TAIL 0 0 0 0171e 2**0 CONTENTS
10 MACHMAINY 011 0 0 0171e 2**0 CONTENTS
11 MACHMAINZ 0148 0 0 0172f 2**0 CONTENTS
5 LZMA_ELF00 065 0 0 02b4 2**0 CONTENTS
6 LZMA_DEC10 09f7 0 0 0319 2**0 CONTENTS
7 LZMA_DEC20 09f7 0 0 0d10 2**0 CONTENTS
8 LZMA_DEC30 01b 0 0 01707 2**0 CONTENTS
9 NRV_TAIL 0 0 0 01722 2**0 CONTENTS
10 MACHMAINY 011 0 0 01722 2**0 CONTENTS
11 MACHMAINZ 0148 0 0 01733 2**0 CONTENTS
SYMBOL TABLE:
0000000000000000 l d NRV_HEAD 0 NRV_HEAD
0000000000000000 l d LZMA_DEC30 0 LZMA_DEC30
@ -51,7 +51,11 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [LZMA_ELF00]:
OFFSET TYPE VALUE
0000000000000006 R_X86_64_PC32 LZMA_DEC30+0x0000000000000012
0000000000000006 R_X86_64_PC32 LZMA_DEC30+0x0000000000000015
RELOCATION RECORDS FOR [LZMA_DEC30]:
OFFSET TYPE VALUE
0000000000000015 R_X86_64_PC32 MACHMAINY+0xfffffffffffffffc
RELOCATION RECORDS FOR [MACHMAINZ]:
OFFSET TYPE VALUE

View File

@ -9,13 +9,13 @@ Idx Name Size VMA LMA File off Algn
4 NRV2E 0ba 0 0 0103 2**0 CONTENTS
5 NRV2D 0a1 0 0 01bd 2**0 CONTENTS
6 NRV2B 093 0 0 025e 2**0 CONTENTS
7 LZMA_ELF00 064 0 0 02f1 2**0 CONTENTS
8 LZMA_DEC10 09f7 0 0 0355 2**0 CONTENTS
9 LZMA_DEC20 09f7 0 0 0d4c 2**0 CONTENTS
10 LZMA_DEC30 018 0 0 01743 2**0 CONTENTS
11 NRV_TAIL 0 0 0 0175b 2**0 CONTENTS
12 MACHMAINY 011 0 0 0175b 2**0 CONTENTS
13 MACHMAINZ 0135 0 0 0176c 2**0 CONTENTS
7 LZMA_ELF00 065 0 0 02f1 2**0 CONTENTS
8 LZMA_DEC10 09f7 0 0 0356 2**0 CONTENTS
9 LZMA_DEC20 09f7 0 0 0d4d 2**0 CONTENTS
10 LZMA_DEC30 01b 0 0 01744 2**0 CONTENTS
11 NRV_TAIL 0 0 0 0175f 2**0 CONTENTS
12 MACHMAINY 011 0 0 0175f 2**0 CONTENTS
13 MACHMAINZ 0135 0 0 01770 2**0 CONTENTS
SYMBOL TABLE:
0000000000000000 l d NRV_HEAD 0 NRV_HEAD
0000000000000000 l d LZMA_DEC30 0 LZMA_DEC30
@ -55,7 +55,11 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [LZMA_ELF00]:
OFFSET TYPE VALUE
0000000000000006 R_X86_64_PC32 LZMA_DEC30+0x0000000000000012
0000000000000006 R_X86_64_PC32 LZMA_DEC30+0x0000000000000015
RELOCATION RECORDS FOR [LZMA_DEC30]:
OFFSET TYPE VALUE
0000000000000015 R_X86_64_PC32 MACHMAINY+0xfffffffffffffffc
RELOCATION RECORDS FOR [MACHMAINZ]:
OFFSET TYPE VALUE

View File

@ -16,18 +16,21 @@ Linker script and memory map
0x00000000000002b5 underlay
0x00000000000007d4 upx_main
EXP_HEAD 0x0000000000000000 0xe0
EXP_HEAD 0x0000000000000000 0xe0 tmp/amd64-expand.o
EXP_HEAD 0x0000000000000000 0xe1
EXP_HEAD 0x0000000000000000 0xe1 tmp/amd64-expand.o
0x0000000000000000 f_expand
NRV2E 0x0000000000000000 0xe5
NRV2E 0x0000000000000000 0xe5 tmp/amd64-expand.o
NRV2E 0x0000000000000000 0xe6
NRV2E 0x0000000000000000 0xe6 tmp/amd64-expand.o
NRV2D 0x0000000000000000 0xd7
NRV2D 0x0000000000000000 0xd7 tmp/amd64-expand.o
NRV2D 0x0000000000000000 0xd8
NRV2D 0x0000000000000000 0xd8 tmp/amd64-expand.o
NRV2B 0x0000000000000000 0xc1
NRV2B 0x0000000000000000 0xc1 tmp/amd64-expand.o
NRV2B 0x0000000000000000 0xc2
NRV2B 0x0000000000000000 0xc2 tmp/amd64-expand.o
LZMA_ELF00 0x0000000000000000 0x6f
LZMA_ELF00 0x0000000000000000 0x6f tmp/amd64-expand.o
.data 0x0000000000000000 0x0
.data 0x0000000000000000 0x0 tmp/amd64-linux.elf-fold.o
@ -62,17 +65,14 @@ SYSCALLS 0x0000000000000000 0x8e
0x0000000000000082 mprotect
0x0000000000000076 close
LZMA_ELF00 0x0000000000000000 0x64
LZMA_ELF00 0x0000000000000000 0x64 tmp/amd64-expand.o
LZMA_DEC10 0x0000000000000000 0x9f7
LZMA_DEC10 0x0000000000000000 0x9f7 tmp/amd64-expand.o
LZMA_DEC20 0x0000000000000000 0x9f7
LZMA_DEC20 0x0000000000000000 0x9f7 tmp/amd64-expand.o
LZMA_DEC30 0x0000000000000000 0x18
LZMA_DEC30 0x0000000000000000 0x18 tmp/amd64-expand.o
LZMA_DEC30 0x0000000000000000 0x23
LZMA_DEC30 0x0000000000000000 0x23 tmp/amd64-expand.o
EXP_TAIL 0x0000000000000000 0xc
EXP_TAIL 0x0000000000000000 0xc tmp/amd64-expand.o

View File

@ -3,18 +3,18 @@ file format elf64-x86-64
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 SO_MAIN 0787 0 0 040 2**4 CONTENTS
1 EXP_HEAD 0e0 0 0 07c7 2**0 CONTENTS
2 NRV2E 0e5 0 0 08a7 2**0 CONTENTS
3 NRV2D 0d7 0 0 098c 2**0 CONTENTS
4 NRV2B 0c1 0 0 0a63 2**0 CONTENTS
5 SO_HEAD 02c 0 0 0b24 2**0 CONTENTS
6 ptr_NEXT 0 0 0 0b50 2**0 CONTENTS
7 SO_TAIL 098 0 0 0b50 2**0 CONTENTS
8 LZMA_ELF00 064 0 0 0be8 2**0 CONTENTS
9 LZMA_DEC10 09f7 0 0 0c4c 2**0 CONTENTS
10 LZMA_DEC20 09f7 0 0 01643 2**0 CONTENTS
11 LZMA_DEC30 018 0 0 0203a 2**0 CONTENTS
12 EXP_TAIL 0c 0 0 02052 2**0 CONTENTS
1 EXP_HEAD 0e1 0 0 07c7 2**0 CONTENTS
2 NRV2E 0e6 0 0 08a8 2**0 CONTENTS
3 NRV2D 0d8 0 0 098e 2**0 CONTENTS
4 NRV2B 0c2 0 0 0a66 2**0 CONTENTS
5 LZMA_ELF00 06f 0 0 0b28 2**0 CONTENTS
6 SO_HEAD 02c 0 0 0b97 2**0 CONTENTS
7 ptr_NEXT 0 0 0 0bc3 2**0 CONTENTS
8 SO_TAIL 098 0 0 0bc3 2**0 CONTENTS
9 LZMA_DEC10 09f7 0 0 0c5b 2**0 CONTENTS
10 LZMA_DEC20 09f7 0 0 01652 2**0 CONTENTS
11 LZMA_DEC30 023 0 0 02049 2**0 CONTENTS
12 EXP_TAIL 0c 0 0 0206c 2**0 CONTENTS
SYMBOL TABLE:
0000000000000000 l d EXP_HEAD 0 EXP_HEAD
0000000000000000 l d LZMA_DEC30 0 LZMA_DEC30
@ -23,10 +23,10 @@ SYMBOL TABLE:
0000000000000000 l d NRV2E 0 NRV2E
0000000000000000 l d NRV2D 0 NRV2D
0000000000000000 l d NRV2B 0 NRV2B
0000000000000000 l d LZMA_ELF00 0 LZMA_ELF00
0000000000000000 l d SO_HEAD 0 SO_HEAD
0000000000000000 l d ptr_NEXT 0 ptr_NEXT
0000000000000000 l d SO_TAIL 0 SO_TAIL
0000000000000000 l d LZMA_ELF00 0 LZMA_ELF00
0000000000000000 l d LZMA_DEC10 0 LZMA_DEC10
0000000000000000 l d LZMA_DEC20 0 LZMA_DEC20
0000000000000031 g SO_TAIL 0 Pmap
@ -92,23 +92,27 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [NRV2E]:
OFFSET TYPE VALUE
00000000000000da R_X86_64_PC32 EXP_HEAD+0x000000000000009f
0000000000000071 R_X86_64_PC32 EXP_TAIL+0xfffffffffffffffc
00000000000000db R_X86_64_PC32 EXP_HEAD+0x00000000000000a0
0000000000000072 R_X86_64_PC32 EXP_TAIL+0xfffffffffffffffc
RELOCATION RECORDS FOR [NRV2D]:
OFFSET TYPE VALUE
00000000000000cc R_X86_64_PC32 EXP_HEAD+0x000000000000009f
0000000000000071 R_X86_64_PC32 EXP_TAIL+0xfffffffffffffffc
00000000000000cd R_X86_64_PC32 EXP_HEAD+0x00000000000000a0
0000000000000072 R_X86_64_PC32 EXP_TAIL+0xfffffffffffffffc
RELOCATION RECORDS FOR [NRV2B]:
OFFSET TYPE VALUE
00000000000000b6 R_X86_64_PC32 EXP_HEAD+0x000000000000009f
000000000000005d R_X86_64_PC32 EXP_TAIL+0xfffffffffffffffc
00000000000000b7 R_X86_64_PC32 EXP_HEAD+0x00000000000000a0
000000000000005e R_X86_64_PC32 EXP_TAIL+0xfffffffffffffffc
RELOCATION RECORDS FOR [LZMA_ELF00]:
OFFSET TYPE VALUE
0000000000000010 R_X86_64_PC32 LZMA_DEC30+0x0000000000000015
RELOCATION RECORDS FOR [SO_HEAD]:
OFFSET TYPE VALUE
0000000000000013 R_X86_64_PC32 upx_so_main+0xfffffffffffffffc
RELOCATION RECORDS FOR [LZMA_ELF00]:
RELOCATION RECORDS FOR [LZMA_DEC30]:
OFFSET TYPE VALUE
0000000000000006 R_X86_64_PC32 LZMA_DEC30+0x0000000000000012
0000000000000015 R_X86_64_PC32 EXP_TAIL+0xfffffffffffffffc

View File

@ -7,13 +7,13 @@ Idx Name Size VMA LMA File off Algn
2 NRV2E 0ba 0 0 0c2 2**0 CONTENTS
3 NRV2D 0a1 0 0 017c 2**0 CONTENTS
4 NRV2B 093 0 0 021d 2**0 CONTENTS
5 LZMA_ELF00 064 0 0 02b0 2**0 CONTENTS
6 LZMA_DEC10 09f7 0 0 0314 2**0 CONTENTS
7 LZMA_DEC20 09f7 0 0 0d0b 2**0 CONTENTS
8 LZMA_DEC30 018 0 0 01702 2**0 CONTENTS
9 NRV_TAIL 0 0 0 0171a 2**0 CONTENTS
10 ELFMAINY 03a 0 0 0171a 2**0 CONTENTS
11 ELFMAINZ 01b5 0 0 01754 2**0 CONTENTS
5 LZMA_ELF00 065 0 0 02b0 2**0 CONTENTS
6 LZMA_DEC10 09f7 0 0 0315 2**0 CONTENTS
7 LZMA_DEC20 09f7 0 0 0d0c 2**0 CONTENTS
8 LZMA_DEC30 01b 0 0 01703 2**0 CONTENTS
9 NRV_TAIL 0 0 0 0171e 2**0 CONTENTS
10 ELFMAINY 03a 0 0 0171e 2**0 CONTENTS
11 ELFMAINZ 01b5 0 0 01758 2**0 CONTENTS
SYMBOL TABLE:
0000000000000000 l d NRV_HEAD 0 NRV_HEAD
0000000000000000 l d LZMA_DEC30 0 LZMA_DEC30
@ -50,7 +50,11 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [LZMA_ELF00]:
OFFSET TYPE VALUE
0000000000000006 R_X86_64_PC32 LZMA_DEC30+0x0000000000000012
0000000000000006 R_X86_64_PC32 LZMA_DEC30+0x0000000000000015
RELOCATION RECORDS FOR [LZMA_DEC30]:
OFFSET TYPE VALUE
0000000000000015 R_X86_64_PC32 ELFMAINY+0xfffffffffffffffc
RELOCATION RECORDS FOR [ELFMAINY]:
OFFSET TYPE VALUE