mirror of
https://github.com/upx/upx.git
synced 2025-02-25 10:31:15 +00:00
Fix AT_PHDR and AT_ENTRY for amd64-linux.elf (-pie, libmusl)
modified: stub/src/amd64-linux.elf-main.c modified: ../.github/travis_testsuite_1.sh modified: stub/amd64-linux.elf-fold.h modified: stub/tmp/amd64-linux.elf-fold.map
This commit is contained in:
parent
f496010273
commit
62815f5c3c
14
.github/travis_testsuite_1.sh
vendored
14
.github/travis_testsuite_1.sh
vendored
@ -149,7 +149,7 @@ c3f44b4d00a87384c03a6f9e7aec809c1addfe3e271244d38a474f296603088c *mipsel-linux.e
|
|||||||
b8c35fa2956da17ca505956e9f5017bb5f3a746322647e24ccb8ff28059cafa4 *powerpc-linux.elf/upx-3.91
|
b8c35fa2956da17ca505956e9f5017bb5f3a746322647e24ccb8ff28059cafa4 *powerpc-linux.elf/upx-3.91
|
||||||
"
|
"
|
||||||
expected_sha256sums__t110_compress_ucl_nrv2b_3_no_filter="\
|
expected_sha256sums__t110_compress_ucl_nrv2b_3_no_filter="\
|
||||||
a0913116e3b695d647ba70267394dd3c53014ae63700b6e96bd788562468b12e *amd64-linux.elf/upx-3.91
|
5b7938b426ea815f13f4f5e5c416c67df32650ba08fdc2a83cc7676f88cec461 *amd64-linux.elf/upx-3.91
|
||||||
c1a6ef9d0b8a26f1d6e3307af6f119bc95411a54421c7da3bd6ade9c4eead187 *arm-wince.pe/upx-3.91.exe
|
c1a6ef9d0b8a26f1d6e3307af6f119bc95411a54421c7da3bd6ade9c4eead187 *arm-wince.pe/upx-3.91.exe
|
||||||
0fd6649894fb3c4e12a705b576db7677f239b28774008039ae457d8ce980c9e3 *armeb-linux.elf/upx-3.91
|
0fd6649894fb3c4e12a705b576db7677f239b28774008039ae457d8ce980c9e3 *armeb-linux.elf/upx-3.91
|
||||||
7d5f0fd6f18e4cd16655ef58805f228bcaddd5b035ce998faed446e290aea3d9 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
7d5f0fd6f18e4cd16655ef58805f228bcaddd5b035ce998faed446e290aea3d9 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||||
@ -160,7 +160,7 @@ c4c8b912a48bcaaef72fd94cd0c307659a03be2ec359bf01a42a2a39307dd964 *m68k-atari.tos
|
|||||||
680df2db2771adcbc8f7826928c6f6583b54297943fd6a314f2a8873ed9858ea *powerpc-linux.elf/upx-3.91
|
680df2db2771adcbc8f7826928c6f6583b54297943fd6a314f2a8873ed9858ea *powerpc-linux.elf/upx-3.91
|
||||||
"
|
"
|
||||||
expected_sha256sums__t120_compress_ucl_nrv2d_3_no_filter="\
|
expected_sha256sums__t120_compress_ucl_nrv2d_3_no_filter="\
|
||||||
cbe28df166de59ed113282d3091b1d0fc95f202908480006c3fc4c0703b6056e *amd64-linux.elf/upx-3.91
|
70c7e9da1ea26ff9369560b4b33f49296fff9b6d7bb5683d06d2ceb31f5d3405 *amd64-linux.elf/upx-3.91
|
||||||
2bb2477bdf4643954b4bb707b1017459238b03f66883303cd20e9e8740764dd7 *arm-wince.pe/upx-3.91.exe
|
2bb2477bdf4643954b4bb707b1017459238b03f66883303cd20e9e8740764dd7 *arm-wince.pe/upx-3.91.exe
|
||||||
9f891f381e1b6bdb4e2a59f267f7664ef41eb20b4f1f7052e467d499588eac47 *armeb-linux.elf/upx-3.91
|
9f891f381e1b6bdb4e2a59f267f7664ef41eb20b4f1f7052e467d499588eac47 *armeb-linux.elf/upx-3.91
|
||||||
c52473f5dbdac560c05d5d173e5342b5e696e604517359baef581672eb25a9e6 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
c52473f5dbdac560c05d5d173e5342b5e696e604517359baef581672eb25a9e6 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||||
@ -171,7 +171,7 @@ ef94d8b0e02a650c302bec9f2d50462f2accc2fbb8003cc4977bc550d2e5b9f2 *m68k-atari.tos
|
|||||||
a2c7b256d4173122f2c5f1e90f4354e6259a18739e66b3a4b671bb921d8be915 *powerpc-linux.elf/upx-3.91
|
a2c7b256d4173122f2c5f1e90f4354e6259a18739e66b3a4b671bb921d8be915 *powerpc-linux.elf/upx-3.91
|
||||||
"
|
"
|
||||||
expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\
|
expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\
|
||||||
2aed4168f81888310d31b70785be4371222b22a5092e29d12d67fd5c4cb16d12 *amd64-linux.elf/upx-3.91
|
0aa0397c6e6e728992c8cd09fb203bc90d7e114ed9f40c2880b72ed78fa63589 *amd64-linux.elf/upx-3.91
|
||||||
0915344e0ee8e7c006e6cce71c024f518e097a88820c7ab3ca183ab1c614ce82 *arm-wince.pe/upx-3.91.exe
|
0915344e0ee8e7c006e6cce71c024f518e097a88820c7ab3ca183ab1c614ce82 *arm-wince.pe/upx-3.91.exe
|
||||||
540a4bb29d5f5914cc6e61aef154aa37bc440485661272375196dbd34e05bf47 *armeb-linux.elf/upx-3.91
|
540a4bb29d5f5914cc6e61aef154aa37bc440485661272375196dbd34e05bf47 *armeb-linux.elf/upx-3.91
|
||||||
5c5ff78652e76834f3f9ab110c42e3a34ef54c748bce212b0e942049f43f5d4d *i386-dos32.djgpp2.coff/upx-3.91.exe
|
5c5ff78652e76834f3f9ab110c42e3a34ef54c748bce212b0e942049f43f5d4d *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||||
@ -182,7 +182,7 @@ dfc6abff2d3417b9708b1232d5791a9232c6623dcedb9dcb59428b67bbf864e9 *m68k-atari.tos
|
|||||||
342350804bd91a64825dc022142df9efac0f98a400dd24ad49d890865fcdd10e *powerpc-linux.elf/upx-3.91
|
342350804bd91a64825dc022142df9efac0f98a400dd24ad49d890865fcdd10e *powerpc-linux.elf/upx-3.91
|
||||||
"
|
"
|
||||||
expected_sha256sums__t140_compress_lzma_2_no_filter="\
|
expected_sha256sums__t140_compress_lzma_2_no_filter="\
|
||||||
41f33ec208cc78c98b092a2f39234207d0c5506ed56b78c1a66198248d3cf7a7 *amd64-linux.elf/upx-3.91
|
926006d4461c7df64659aa7b484a663ff0d482712c2240c3b40f7a63d3f9c07c *amd64-linux.elf/upx-3.91
|
||||||
3af2a2346a252dfacefb6209725907b2947dc1ccf5e99af139608354f852507c *arm-wince.pe/upx-3.91.exe
|
3af2a2346a252dfacefb6209725907b2947dc1ccf5e99af139608354f852507c *arm-wince.pe/upx-3.91.exe
|
||||||
b6d9bbea12420305e7dc8cea57b6246ad834b60279fce17b5d6d78e109ff79e2 *armeb-linux.elf/upx-3.91
|
b6d9bbea12420305e7dc8cea57b6246ad834b60279fce17b5d6d78e109ff79e2 *armeb-linux.elf/upx-3.91
|
||||||
964fb400b0b4a2b1926ce7076610db8c3a8e41807fe030209af1615d43b6a020 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
964fb400b0b4a2b1926ce7076610db8c3a8e41807fe030209af1615d43b6a020 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||||
@ -193,7 +193,7 @@ bd9b3d1d7f66bf3b2394d3c96b61613323df15ab48d877621576637feecb445f *mipsel-linux.e
|
|||||||
b599ec1ac95748e5964fed0a262d6fdf45eb2677289d00675e3a20dbd182593a *powerpc-linux.elf/upx-3.91
|
b599ec1ac95748e5964fed0a262d6fdf45eb2677289d00675e3a20dbd182593a *powerpc-linux.elf/upx-3.91
|
||||||
"
|
"
|
||||||
expected_sha256sums__t150_compress_ucl_2_all_filters="\
|
expected_sha256sums__t150_compress_ucl_2_all_filters="\
|
||||||
9c6e21f46dc930ea297f3f5eeab6ea3bc89a1aac30d6dc8f134ca0764346a1ea *amd64-linux.elf/upx-3.91
|
b7ae93def74c119d62ef1a92eb06074b8ce3a4429512ac64de6120097fb48692 *amd64-linux.elf/upx-3.91
|
||||||
dc7323e753ce62e6a1c22112f139953dbaa1e5268530479f8ad48e0c54062295 *arm-wince.pe/upx-3.91.exe
|
dc7323e753ce62e6a1c22112f139953dbaa1e5268530479f8ad48e0c54062295 *arm-wince.pe/upx-3.91.exe
|
||||||
0d9c7a5bb1ba29350ac28a8da3a55da5cf5472a2c86b93841fa9e3a87e6264f9 *armeb-linux.elf/upx-3.91
|
0d9c7a5bb1ba29350ac28a8da3a55da5cf5472a2c86b93841fa9e3a87e6264f9 *armeb-linux.elf/upx-3.91
|
||||||
8614d93ba30def6866b3be92ae5bdd5f294266e0fc4a26c078682917f127656d *i386-dos32.djgpp2.coff/upx-3.91.exe
|
8614d93ba30def6866b3be92ae5bdd5f294266e0fc4a26c078682917f127656d *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||||
@ -204,7 +204,7 @@ eee63c54f29698bef0824028002e7a4d7876a54d0a32de7a3c27a84b153d19b2 *i386-linux.elf
|
|||||||
c7a9e77ca00eee8116513ad27b82de1d9d1c9100c7d533113ccbd3b99c91fc67 *powerpc-linux.elf/upx-3.91
|
c7a9e77ca00eee8116513ad27b82de1d9d1c9100c7d533113ccbd3b99c91fc67 *powerpc-linux.elf/upx-3.91
|
||||||
"
|
"
|
||||||
expected_sha256sums__t160_compress_all_methods_1_no_filter="\
|
expected_sha256sums__t160_compress_all_methods_1_no_filter="\
|
||||||
6083fa9eeea05daee7aaf34e0c6e1e25bc7d0c5709546f0e8fe3dac60480e774 *amd64-linux.elf/upx-3.91
|
e091849d471a5eb866a34ebe09ca4ccae014dae5b592b59b013a4a689bd67385 *amd64-linux.elf/upx-3.91
|
||||||
1c9c618741739404f40d198d2fc77010539589379bf260502af9f10f1ec0d05b *arm-wince.pe/upx-3.91.exe
|
1c9c618741739404f40d198d2fc77010539589379bf260502af9f10f1ec0d05b *arm-wince.pe/upx-3.91.exe
|
||||||
08367c30cb96e1ffe362b676de05f4ef870467e84f0829c49c07f75b7df20942 *armeb-linux.elf/upx-3.91
|
08367c30cb96e1ffe362b676de05f4ef870467e84f0829c49c07f75b7df20942 *armeb-linux.elf/upx-3.91
|
||||||
863bbf7f3cf41296987b085a4db8acba372e3d65d8d9c656f9a7276f2e7aa4d3 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
863bbf7f3cf41296987b085a4db8acba372e3d65d8d9c656f9a7276f2e7aa4d3 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||||
@ -215,7 +215,7 @@ cf18d628feb7720b962a64b5b240dc86268257973cce46e2d98c67de4e4cdf50 *mipsel-linux.e
|
|||||||
2e46e51385a86ac403da8edefe595d0627259ab483f871a53d228ca21a03ede7 *powerpc-linux.elf/upx-3.91
|
2e46e51385a86ac403da8edefe595d0627259ab483f871a53d228ca21a03ede7 *powerpc-linux.elf/upx-3.91
|
||||||
"
|
"
|
||||||
expected_sha256sums__t170_compress_all_methods_no_lzma_5_no_filter="\
|
expected_sha256sums__t170_compress_all_methods_no_lzma_5_no_filter="\
|
||||||
2c4a71ca28d7f64adc7f2ad7bf6490482cb3d87c21dc23f055a8b9ded130555b *amd64-linux.elf/upx-3.91
|
46d8a75ddc5141f042431188404f720aa2966982d3df25d058b43f4dec692eb0 *amd64-linux.elf/upx-3.91
|
||||||
66653a91c355a1ad1ab7b07c6c20b2d2899d0f42078683d0f4d540df476b1afb *arm-wince.pe/upx-3.91.exe
|
66653a91c355a1ad1ab7b07c6c20b2d2899d0f42078683d0f4d540df476b1afb *arm-wince.pe/upx-3.91.exe
|
||||||
bb480f1cde2f25ad3047d96abf90332d947c41189770be14d5114d9d219d9977 *armeb-linux.elf/upx-3.91
|
bb480f1cde2f25ad3047d96abf90332d947c41189770be14d5114d9d219d9977 *armeb-linux.elf/upx-3.91
|
||||||
490a196fbba4a8f21bfb9ac2a3b92a6dc7e287f255a3ab987f7d29d5a75d8db4 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
490a196fbba4a8f21bfb9ac2a3b92a6dc7e287f255a3ab987f7d29d5a75d8db4 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* amd64-linux.elf-fold.h
|
/* amd64-linux.elf-fold.h
|
||||||
created from amd64-linux.elf-fold.bin, 2080 (0x820) bytes
|
created from amd64-linux.elf-fold.bin, 2073 (0x819) bytes
|
||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
@ -31,20 +31,20 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#define STUB_AMD64_LINUX_ELF_FOLD_SIZE 2080
|
#define STUB_AMD64_LINUX_ELF_FOLD_SIZE 2073
|
||||||
#define STUB_AMD64_LINUX_ELF_FOLD_ADLER32 0xb97519dc
|
#define STUB_AMD64_LINUX_ELF_FOLD_ADLER32 0x04ae143b
|
||||||
#define STUB_AMD64_LINUX_ELF_FOLD_CRC32 0x24735e3b
|
#define STUB_AMD64_LINUX_ELF_FOLD_CRC32 0x08c80b0e
|
||||||
|
|
||||||
unsigned char stub_amd64_linux_elf_fold[2080] = {
|
unsigned char stub_amd64_linux_elf_fold[2073] = {
|
||||||
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0010 */ 2, 0, 62, 0, 1, 0, 0, 0,188, 0, 16, 0, 0, 0, 0, 0,
|
/* 0x0010 */ 2, 0, 62, 0, 1, 0, 0, 0,188, 0, 16, 0, 0, 0, 0, 0,
|
||||||
/* 0x0020 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0020 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0030 */ 0, 0, 0, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0030 */ 0, 0, 0, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0040 */ 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0040 */ 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0,
|
/* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0,
|
||||||
/* 0x0060 */ 32, 8, 0, 0, 0, 0, 0, 0, 32, 8, 0, 0, 0, 0, 0, 0,
|
/* 0x0060 */ 25, 8, 0, 0, 0, 0, 0, 0, 28, 8, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0070 */ 0, 0, 16, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0070 */ 0, 0, 16, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0080 */ 32, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0080 */ 25, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0090 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0090 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x00a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0,
|
/* 0x00a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0,
|
||||||
/* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 89, 0, 0,
|
/* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 89, 0, 0,
|
||||||
@ -139,31 +139,31 @@ unsigned char stub_amd64_linux_elf_fold[2080] = {
|
|||||||
/* 0x0640 */ 148, 36,160, 0, 0, 0, 72,137, 2, 73,139, 87, 24, 72, 1, 84,
|
/* 0x0640 */ 148, 36,160, 0, 0, 0, 72,137, 2, 73,139, 87, 24, 72, 1, 84,
|
||||||
/* 0x0650 */ 36, 24, 72,139, 68, 36, 24, 72,131,196,104, 91, 93, 65, 92, 65,
|
/* 0x0650 */ 36, 24, 72,139, 68, 36, 24, 72,131,196,104, 91, 93, 65, 92, 65,
|
||||||
/* 0x0660 */ 93, 65, 94, 65, 95,195, 65, 87, 77,137,207, 65, 86, 73,137,206,
|
/* 0x0660 */ 93, 65, 94, 65, 95,195, 65, 87, 77,137,207, 65, 86, 73,137,206,
|
||||||
/* 0x0670 */ 49,201, 65, 85, 77,137,197, 65, 84, 85, 72,137,213, 83, 72,141,
|
/* 0x0670 */ 49,201, 65, 85, 77,137,197, 65, 84, 85, 83, 72,137,211, 72,141,
|
||||||
/* 0x0680 */ 90, 64, 72,131,236, 56,139, 7, 72,137, 52, 36, 72,137,116, 36,
|
/* 0x0680 */ 107, 64, 72,131,236, 56,139, 7, 72,137, 52, 36, 72,137,116, 36,
|
||||||
/* 0x0690 */ 16, 72,141,116, 36, 32, 72,137, 84, 36, 40, 72,137,124, 36, 8,
|
/* 0x0690 */ 16, 72,141,116, 36, 32, 72,137, 84, 36, 40, 72,137,124, 36, 8,
|
||||||
/* 0x06a0 */ 76,137,194, 72,137,124, 36, 24, 72,137,231, 72,137, 68, 36, 32,
|
/* 0x06a0 */ 76,137,194, 72,137,124, 36, 24, 72,137,231, 72,137, 68, 36, 32,
|
||||||
/* 0x06b0 */ 232,215,251,255,255, 72,139, 83, 16,190, 3, 0, 0, 0, 76,137,
|
/* 0x06b0 */ 232,215,251,255,255, 72,139, 83, 32, 72, 3, 84, 36,112,190, 3,
|
||||||
/* 0x06c0 */ 247,232,211,252,255,255, 72, 15,183, 85, 56,190, 5, 0, 0, 0,
|
/* 0x06c0 */ 0, 0, 0, 76,137,247,232,206,252,255,255, 72, 15,183, 83, 56,
|
||||||
/* 0x06d0 */ 76,137,247,232,193,252,255,255, 68, 15,183,101, 16, 65,131,252,
|
/* 0x06d0 */ 190, 5, 0, 0, 0, 76,137,247,232,188,252,255,255, 68, 15,183,
|
||||||
/* 0x06e0 */ 3,117, 74, 72,139, 84, 36,112, 72, 3, 85, 24,190, 9, 0, 0,
|
/* 0x06e0 */ 99, 16, 65,131,252, 3,117, 61, 72,139, 84, 36,112, 72, 3, 83,
|
||||||
/* 0x06f0 */ 0,102,199, 69, 16, 2, 0, 76,137,247,232,154,252,255,255, 15,
|
/* 0x06f0 */ 24,190, 9, 0, 0, 0,102,199, 67, 16, 2, 0, 76,137,247, 72,
|
||||||
/* 0x0700 */ 183, 69, 56,133,192,116, 21, 72,139, 84, 36,112, 72, 1, 83, 16,
|
/* 0x0700 */ 137, 83, 24,232,145,252,255,255, 15,183, 67, 56,133,192,116, 21,
|
||||||
/* 0x0710 */ 72, 1, 83, 24, 72,131,195, 56,255,200,117,240, 72,139, 85, 80,
|
/* 0x0710 */ 72,139, 84, 36,112, 72, 1, 85, 16, 72, 1, 85, 24, 72,131,197,
|
||||||
/* 0x0720 */ 190, 3, 0, 0, 0, 76,137,247,232,108,252,255,255, 65, 83, 77,
|
/* 0x0720 */ 56,255,200,117,240, 65, 83, 77,137,249, 77,137,232, 49,210, 76,
|
||||||
/* 0x0730 */ 137,249, 77,137,232, 49,210, 76,137,241, 72,141, 68, 36,120, 72,
|
/* 0x0730 */ 137,241, 72,141, 68, 36,120, 72,141,116, 36, 24, 72,137,223, 80,
|
||||||
/* 0x0740 */ 141,116, 36, 24, 72,137,239, 80,232,126,252,255,255, 65, 89, 65,
|
/* 0x0740 */ 232,134,252,255,255, 65, 89, 65,131,252, 3, 73,137,197, 65, 90,
|
||||||
/* 0x0750 */ 131,252, 3, 73,137,197, 65, 90,116, 16, 72,137,194,190, 9, 0,
|
/* 0x0750 */ 116, 16, 72,137,194,190, 9, 0, 0, 0, 76,137,247,232, 55,252,
|
||||||
/* 0x0760 */ 0, 0, 76,137,247,232, 47,252,255,255, 69, 49,255,102,131,125,
|
/* 0x0760 */ 255,255, 69, 49,255,102,131,123, 56, 0, 72,141,107, 64, 15,132,
|
||||||
/* 0x0770 */ 56, 0, 72,141, 93, 64, 15,132,146, 0, 0, 0,131, 59, 3,117,
|
/* 0x0770 */ 147, 0, 0, 0,131,125, 0, 3,117,121, 72,139,124, 36,112, 72,
|
||||||
/* 0x0780 */ 121, 72,139,124, 36,112, 72, 3,123, 16, 49,210, 49,246,232,172,
|
/* 0x0780 */ 3,125, 16, 49,210, 49,246,232,179,250,255,255,133,192, 65,137,
|
||||||
/* 0x0790 */ 250,255,255,133,192, 65,137,196,120, 23,186, 0, 4, 0, 0, 72,
|
/* 0x0790 */ 196,120, 23,186, 0, 4, 0, 0, 72,137,222,137,199,232,173,250,
|
||||||
/* 0x07a0 */ 137,238,137,199,232,166,250,255,255, 72, 61, 0, 4, 0, 0,116,
|
/* 0x07a0 */ 255,255, 72, 61, 0, 4, 0, 0,116, 10,191,127, 0, 0, 0,232,
|
||||||
/* 0x07b0 */ 10,191,127, 0, 0, 0,232,120,250,255,255, 65, 80, 69, 49,201,
|
/* 0x07b0 */ 127,250,255,255, 65, 80, 69, 49,201, 69, 49,192, 49,201, 68,137,
|
||||||
/* 0x07c0 */ 69, 49,192, 49,201, 68,137,226, 72,141, 68, 36,120, 49,246, 72,
|
/* 0x07c0 */ 226, 72,141, 68, 36,120, 49,246, 72,137,223, 80,232,250,251,255,
|
||||||
/* 0x07d0 */ 137,239, 80,232,243,251,255,255, 72,139,148, 36,128, 0, 0, 0,
|
/* 0x07d0 */ 255, 72,139,148, 36,128, 0, 0, 0,190, 7, 0, 0, 0, 76,137,
|
||||||
/* 0x07e0 */ 190, 7, 0, 0, 0, 76,137,247, 73,137,197,232,169,251,255,255,
|
/* 0x07e0 */ 247, 73,137,197,232,176,251,255,255, 68,137,231,232, 74,250,255,
|
||||||
/* 0x07f0 */ 68,137,231,232, 67,250,255,255, 94, 95, 15,183, 69, 56, 65,255,
|
/* 0x07f0 */ 255, 94, 95, 15,183, 67, 56, 65,255,199, 72,131,197, 56, 65, 57,
|
||||||
/* 0x0800 */ 199, 72,131,195, 56, 65, 57,199, 15,130,110,255,255,255, 72,131,
|
/* 0x0800 */ 199, 15,130,109,255,255,255, 72,131,196, 56, 76,137,232, 91, 93,
|
||||||
/* 0x0810 */ 196, 56, 76,137,232, 91, 93, 65, 92, 65, 93, 65, 94, 65, 95,195
|
/* 0x0810 */ 65, 92, 65, 93, 65, 94, 65, 95,195
|
||||||
};
|
};
|
||||||
|
@ -283,6 +283,7 @@ do_xmap(
|
|||||||
char *v_brk;
|
char *v_brk;
|
||||||
unsigned long const reloc = xfind_pages(
|
unsigned long const reloc = xfind_pages(
|
||||||
((ET_DYN!=ehdr->e_type) ? MAP_FIXED : 0), phdr, ehdr->e_phnum, &v_brk);
|
((ET_DYN!=ehdr->e_type) ? MAP_FIXED : 0), phdr, ehdr->e_phnum, &v_brk);
|
||||||
|
DPRINTF("do_xmap reloc=%%p", reloc);
|
||||||
int j;
|
int j;
|
||||||
for (j=0; j < ehdr->e_phnum; ++phdr, ++j)
|
for (j=0; j < ehdr->e_phnum; ++phdr, ++j)
|
||||||
if (xi && PT_PHDR==phdr->p_type) {
|
if (xi && PT_PHDR==phdr->p_type) {
|
||||||
@ -363,8 +364,6 @@ upx_main( // returns entry address
|
|||||||
Elf64_Addr reloc // IN OUT; value result for ET_DYN
|
Elf64_Addr reloc // IN OUT; value result for ET_DYN
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
Elf64_Phdr *phdr = (Elf64_Phdr *)(1+ ehdr);
|
|
||||||
|
|
||||||
Extent xo, xi1, xi2;
|
Extent xo, xi1, xi2;
|
||||||
xo.buf = (char *)ehdr;
|
xo.buf = (char *)ehdr;
|
||||||
xo.size = bi->sz_unc;
|
xo.size = bi->sz_unc;
|
||||||
@ -375,27 +374,28 @@ upx_main( // returns entry address
|
|||||||
unpackExtent(&xi2, &xo, f_decompress, 0); // never filtered?
|
unpackExtent(&xi2, &xo, f_decompress, 0); // never filtered?
|
||||||
|
|
||||||
// AT_PHDR.a_un.a_val is set again by do_xmap if PT_PHDR is present.
|
// AT_PHDR.a_un.a_val is set again by do_xmap if PT_PHDR is present.
|
||||||
auxv_up(av, AT_PHDR , (unsigned long)phdr->p_vaddr);
|
auxv_up(av, AT_PHDR , reloc + ehdr->e_phoff);
|
||||||
auxv_up(av, AT_PHNUM , ehdr->e_phnum);
|
auxv_up(av, AT_PHNUM, ehdr->e_phnum);
|
||||||
//auxv_up(av, AT_PHENT , ehdr->e_phentsize); /* this can never change */
|
//auxv_up(av, AT_PHENT , ehdr->e_phentsize); /* this can never change */
|
||||||
//auxv_up(av, AT_PAGESZ, PAGE_SIZE); /* ld-linux.so.2 does not need this */
|
//auxv_up(av, AT_PAGESZ, PAGE_SIZE); /* ld-linux.so.2 does not need this */
|
||||||
|
|
||||||
|
DPRINTF("upx_main1 .e_entry=%%p reloc=%%p", ehdr->e_entry, reloc);
|
||||||
|
Elf64_Phdr *phdr = (Elf64_Phdr *)(1+ ehdr);
|
||||||
unsigned const orig_e_type = ehdr->e_type;
|
unsigned const orig_e_type = ehdr->e_type;
|
||||||
if (ET_DYN==orig_e_type /*&& phdr->p_vaddr==0*/) { // -fpie /*FIXME: and not pre-linked*/
|
if (ET_DYN==orig_e_type /*&& phdr->p_vaddr==0*/) { // -pie /*FIXME: and not pre-linked*/
|
||||||
// Unpacked must start at same place as packed, so that brk(0) works.
|
// Unpacked must start at same place as packed, so that brk(0) works.
|
||||||
ehdr->e_type = ET_EXEC;
|
ehdr->e_type = ET_EXEC;
|
||||||
auxv_up(av, AT_ENTRY, ehdr->e_entry + reloc);
|
auxv_up(av, AT_ENTRY, ehdr->e_entry += reloc);
|
||||||
phdr = (Elf64_Phdr *)(1+ ehdr);
|
|
||||||
unsigned j;
|
unsigned j;
|
||||||
for (j=0; j < ehdr->e_phnum; ++phdr, ++j) {
|
for (j=0; j < ehdr->e_phnum; ++phdr, ++j) {
|
||||||
phdr->p_vaddr += reloc;
|
phdr->p_vaddr += reloc;
|
||||||
phdr->p_paddr += reloc;
|
phdr->p_paddr += reloc;
|
||||||
}
|
}
|
||||||
// Needed for libmusl which has no PT_PHDR
|
|
||||||
auxv_up(av, AT_PHDR, (unsigned long)((Elf64_Phdr *)(1+ ehdr))->p_vaddr);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Elf64_Addr entry = do_xmap(ehdr, &xi1, 0, av, f_decompress, f_unf, &reloc); // "rewind"
|
// De-compress Ehdr again into actual position, then de-compress the rest.
|
||||||
|
Elf64_Addr entry = do_xmap(ehdr, &xi1, 0, av, f_decompress, f_unf, &reloc);
|
||||||
|
DPRINTF("upx_main2 entry=%%p reloc=%%p", entry, reloc);
|
||||||
if (ET_DYN!=orig_e_type) {
|
if (ET_DYN!=orig_e_type) {
|
||||||
auxv_up(av, AT_ENTRY , entry);
|
auxv_up(av, AT_ENTRY , entry);
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@ Linker script and memory map
|
|||||||
|
|
||||||
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
|
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
|
||||||
|
|
||||||
.text 0x00000000001000bc 0x764
|
.text 0x00000000001000bc 0x760
|
||||||
*(.text)
|
*(.text)
|
||||||
.text 0x00000000001000bc 0x197 tmp/amd64-linux.elf-fold.o
|
.text 0x00000000001000bc 0x197 tmp/amd64-linux.elf-fold.o
|
||||||
0x0000000000100243 munmap
|
0x0000000000100243 munmap
|
||||||
@ -21,17 +21,18 @@ Linker script and memory map
|
|||||||
0x0000000000100247 mprotect
|
0x0000000000100247 mprotect
|
||||||
0x000000000010023b close
|
0x000000000010023b close
|
||||||
*fill* 0x0000000000100253 0x1 00
|
*fill* 0x0000000000100253 0x1 00
|
||||||
.text 0x0000000000100254 0x5cc tmp/amd64-linux.elf-main.o
|
.text 0x0000000000100254 0x5c5 tmp/amd64-linux.elf-main.o
|
||||||
0x0000000000100666 upx_main
|
0x0000000000100666 upx_main
|
||||||
*(.data)
|
*(.data)
|
||||||
.data 0x0000000000100820 0x0 tmp/amd64-linux.elf-fold.o
|
*fill* 0x0000000000100819 0x3 00
|
||||||
.data 0x0000000000100820 0x0 tmp/amd64-linux.elf-main.o
|
.data 0x000000000010081c 0x0 tmp/amd64-linux.elf-fold.o
|
||||||
|
.data 0x000000000010081c 0x0 tmp/amd64-linux.elf-main.o
|
||||||
|
|
||||||
.data
|
.data
|
||||||
|
|
||||||
.bss 0x0000000000100820 0x0
|
.bss 0x000000000010081c 0x0
|
||||||
.bss 0x0000000000100820 0x0 tmp/amd64-linux.elf-fold.o
|
.bss 0x000000000010081c 0x0 tmp/amd64-linux.elf-fold.o
|
||||||
.bss 0x0000000000100820 0x0 tmp/amd64-linux.elf-main.o
|
.bss 0x000000000010081c 0x0 tmp/amd64-linux.elf-main.o
|
||||||
|
|
||||||
.rela.dyn 0x0000000000100820 0x0
|
.rela.dyn 0x0000000000100820 0x0
|
||||||
.rela.text 0x0000000000000000 0x0 tmp/amd64-linux.elf-fold.o
|
.rela.text 0x0000000000000000 0x0 tmp/amd64-linux.elf-fold.o
|
||||||
|
Loading…
x
Reference in New Issue
Block a user