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
+14 -14
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
+1 -1
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
+509 -499
View File
File diff suppressed because it is too large Load Diff
+519 -510
View File
File diff suppressed because it is too large Load Diff
+3 -3
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,
+966 -950
View File
File diff suppressed because it is too large Load Diff
+957 -941
View File
File diff suppressed because it is too large Load Diff
+514 -504
View File
File diff suppressed because it is too large Load Diff
+20 -7
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
+1 -1
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
+3 -3
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
+25 -10
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
+12 -8
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
+12 -8
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
+13 -13
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
+25 -21
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
+12 -8
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