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:
parent
743eb5cc26
commit
c924c32d54
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
1008
src/stub/amd64-darwin.dylib-entry.h
generated
1008
src/stub/amd64-darwin.dylib-entry.h
generated
File diff suppressed because it is too large
Load Diff
1029
src/stub/amd64-darwin.macho-entry.h
generated
1029
src/stub/amd64-darwin.macho-entry.h
generated
File diff suppressed because it is too large
Load Diff
6
src/stub/amd64-linux.elf-entry.h
generated
6
src/stub/amd64-linux.elf-entry.h
generated
@ -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,
|
||||
|
||||
1916
src/stub/amd64-linux.elf-fold.h
generated
1916
src/stub/amd64-linux.elf-fold.h
generated
File diff suppressed because it is too large
Load Diff
1898
src/stub/amd64-linux.elf-so_fold.h
generated
1898
src/stub/amd64-linux.elf-so_fold.h
generated
File diff suppressed because it is too large
Load Diff
1018
src/stub/amd64-linux.shlib-init.h
generated
1018
src/stub/amd64-linux.shlib-init.h
generated
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
20
src/stub/tmp/amd64-darwin.dylib-entry.bin.dump
generated
vendored
20
src/stub/tmp/amd64-darwin.dylib-entry.bin.dump
generated
vendored
@ -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
|
||||
|
||||
20
src/stub/tmp/amd64-darwin.macho-entry.bin.dump
generated
vendored
20
src/stub/tmp/amd64-darwin.macho-entry.bin.dump
generated
vendored
@ -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
|
||||
|
||||
26
src/stub/tmp/amd64-linux.elf-fold.map
generated
vendored
26
src/stub/tmp/amd64-linux.elf-fold.map
generated
vendored
@ -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
|
||||
|
||||
46
src/stub/tmp/amd64-linux.elf-so_fold.bin.dump
generated
vendored
46
src/stub/tmp/amd64-linux.elf-so_fold.bin.dump
generated
vendored
@ -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
|
||||
|
||||
20
src/stub/tmp/amd64-linux.shlib-init.bin.dump
generated
vendored
20
src/stub/tmp/amd64-linux.shlib-init.bin.dump
generated
vendored
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user