ELF2 for i386-linux main programs

OpenBSD and NetBSD main programs probably need work.
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_lx_elf.cpp
	modified:   stub/Makefile
	modified:   stub/src/i386-linux.elf-entry.S
	new file:   stub/src/i386-linux.elf-entry.lds
	modified:   stub/src/i386-linux.elf-fold.S
	modified:   stub/src/i386-linux.elf-fold.lds
	new file:   stub/src/i386-linux.elf-main2.c
	new file:   stub/src/i386-linux.elf-so_entry.lds
	modified:   stub/src/upxfd_android.c
           plus generated *.h *.map *.dump
This commit is contained in:
John Reiser
2024-07-07 17:52:26 -07:00
parent 83e2df4c46
commit f7cab0cf71
29 changed files with 4047 additions and 3808 deletions
+14 -14
View File
@@ -56,8 +56,8 @@ d63d4c9886b175c5388758c3d963e8d0b1e562536cf22e85792df35b028a94c1 *arm64-linux.el
6e4ff31a80809fc5058ae714ab10ad7810c310bd7d116fad8b198009b9872312 *armeb-linux.elf/upx-3.95
e17a126cebc32977991a292b7434d1435a7c95862ccece0e4acbf6e810bd3443 *i386-dos32.djgpp2.coff/upx-3.91.exe
88c54fa6bda1bbee0317c839dd756458ebe9bf4b0f6d746139517c7e0c3c9c6f *i386-dos32.djgpp2.coff/upx-3.95.exe
154b474e63268578910a2117b25fd3838647fdb5af878db368f766155389c8dd *i386-linux.elf/upx-3.91
a1bb8789d6ee1668e6dc4b0816172c14dec1745496b9e11b172dd9af37a06462 *i386-linux.elf/upx-3.95
e5ccaa48ec0223990abc7681bb97a9f49b0192db4d04a21b0525dd610bfcbcae *i386-linux.elf/upx-3.91
378c6902bb6c23cf425b3c135fc9bf264ae20b54b729aef0ba3cee9582131df1 *i386-linux.elf/upx-3.95
9bc7ba34e675311527776726a98450722ac9faee73ef5df96a8e8dbd2943b734 *i386-win32.pe/upx-3.91.exe
0a33acc8fa5549c59a87897b318ab83d1eb2ffa7d6c156e92d71c4e9ab4c6483 *i386-win32.pe/upx-3.95.exe
22a6fe5e84dc759675c14314f1d72b84b64e22d106b4158969f5bc4f572288a1 *m68k-atari.tos/upx-3.91.ttp
@@ -79,8 +79,8 @@ d7839b7dee866794e4ca3df32e2b1084b35aa22dee5f060fa14b5ca09c612ba3 *arm-wince.pe/u
4a9d498ec0df4923ebb475f634c25f9b47eea115998adfd9c46b7dc4a561cf47 *armeb-linux.elf/upx-3.95
4a434c3a14686786369c8bede8736d15e307ed7dd8c40cccb8f22003b05db968 *i386-dos32.djgpp2.coff/upx-3.91.exe
4ec6858a6c453176db25de5317269fa973f07051a15c9ff146920153dda52350 *i386-dos32.djgpp2.coff/upx-3.95.exe
b770116a55261222e825b7fb1f46f899e371d6f1a6468c61daa6651df5426e5f *i386-linux.elf/upx-3.91
a2e13e80a7bc4781f641ced647e37f636496dce582fa8e563d015259e136e43f *i386-linux.elf/upx-3.95
d1c2204d10c2753b485f0aac2d58e6ec614951271436467c345e113465e9fb9b *i386-linux.elf/upx-3.91
feda640e1409a0d7f7c84742832e76fbf9786d137eccc568b04913f24727eb51 *i386-linux.elf/upx-3.95
18c0e4fb6bf6b26b5c943c54571007b4aba4d0a4ba7391c149eeada54a0a404d *i386-win32.pe/upx-3.91.exe
8501c4a677eb66b482987122febc0360fc02f6720fd7c19d311cf60314d5705e *i386-win32.pe/upx-3.95.exe
b8d481769be7aa7768bb1bd8775e766512c5720813e5d8bab6decb200a916f11 *m68k-atari.tos/upx-3.91.ttp
@@ -102,8 +102,8 @@ expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\
c3ec4a5148e25f74f6c8dca92b608f65dc5539f9c5a0f839f801612b13505bd1 *armeb-linux.elf/upx-3.95
d454dd376db342e7650a93bd4859546711c94f5da55336e5b969dbea996465d9 *i386-dos32.djgpp2.coff/upx-3.91.exe
89fdaef155f19e1388412109c955b3368df7e39f13ae2ef5db5b0f0df3df81ab *i386-dos32.djgpp2.coff/upx-3.95.exe
f5458dc71e68e53c8746e5f98abdc093b0b0b37ae04a941bc8c4194af3b78966 *i386-linux.elf/upx-3.91
cd8591b7b1b3862d3c3aab6993792666be8792de474fe790ba70905cad9decbd *i386-linux.elf/upx-3.95
313f889ea2623c553c73989949dde6404243336ee7087901e860c882620379a1 *i386-linux.elf/upx-3.91
73857b83634cb00c62f841bce1fd6502d32392beaad3741639d4d45257e00716 *i386-linux.elf/upx-3.95
674216006959b78ef9bfeed682a6a858f657a860123c620dc77daf5d3c46c40d *i386-win32.pe/upx-3.91.exe
a47825b63e33e2ff5f07ec2b8e51991172a1e26e17fa1b2a19dc7857ab76db35 *i386-win32.pe/upx-3.95.exe
2fc38c89629269a6c5ec22113f6a84a8b91e04c861359125d1c8e44d17ac190a *m68k-atari.tos/upx-3.91.ttp
@@ -125,8 +125,8 @@ b2faa2181b1d5c3718c1c05c5ae130b61ee67a3b481b3235ac3af3d5de9ddce8 *arm64-linux.el
895a9facf830fbcf2953adc0d7cf364fc5ab716f03940fc6165b49343c5253de *armeb-linux.elf/upx-3.95
4e16bdab8b74ea5c7de4f255eec035189c24ac6374afef883c17696642c4fe16 *i386-dos32.djgpp2.coff/upx-3.91.exe
a526f335f984af6f8adb5dca85c5564ab888c009b79daead8631de766857e033 *i386-dos32.djgpp2.coff/upx-3.95.exe
698284cca405aea740f425697f2ffba8c99ce68048b5db917e4d2553f8668f58 *i386-linux.elf/upx-3.91
a66a42854bc6af7520d7f5b716353bba1e95a4837da4ba2e86bd4933e41e4221 *i386-linux.elf/upx-3.95
94f234404c58bf66ca9197eff731a84e8aac2ac57524ce20e7282664d6e98806 *i386-linux.elf/upx-3.91
ddaef53601380a2793b732c9c9583aa14dae24f35330007633d5f1b1aaf525c8 *i386-linux.elf/upx-3.95
3962e6a21c0c54faa0c356ef7be6d8f025f245a7c785135d063032b3456af9a9 *i386-win32.pe/upx-3.91.exe
2273e39a88ef856e17dddf9fc4e5b67b159fc6214b45c1110e446725239eaf97 *i386-win32.pe/upx-3.95.exe
d81bbba6a8ede3aa9bebcd28280914c1084dc0a9ff1d000389e3f52ff05a1ac7 *m68k-atari.tos/upx-3.91.ttp
@@ -148,8 +148,8 @@ fe3bb2d827888c20e34bf86f6b1593408d91338934530df2e7aa2af2149a1627 *arm64-linux.el
591f023a8c6506cf8113fcb8a8672d0044890d60c6b9372a7eeeb40c9f5af464 *armeb-linux.elf/upx-3.95
2957b481e67689a5ad43dcfdfde207b9eb16142c161f3e43fd0eeff5917fefbd *i386-dos32.djgpp2.coff/upx-3.91.exe
8f02dbfdbddad405ec599afba4ead6d300ab792f7188df7a32a9d7d3dc7d72c9 *i386-dos32.djgpp2.coff/upx-3.95.exe
262a3de42c5cee2f9b7d38e5be0df45d9df7ee88d83b36fc566fdb0154ccec8c *i386-linux.elf/upx-3.91
5d753125d3b1b027deccd582e6606bbb522df2c80afba13d1d5bad5dd6f2861f *i386-linux.elf/upx-3.95
10fa881f45706adef32effd3320566d46af2f9e4c9e6198ceade511f324c3952 *i386-linux.elf/upx-3.91
db91d9f600cdfe4996fd7b34bd89911fce9dbb9ff1f0c2363a286075f40564e4 *i386-linux.elf/upx-3.95
b233f8508a150a20dffaeb6da057ccfd1cf78fbb89d9bdf3fbdd1c21716665e3 *i386-win32.pe/upx-3.91.exe
57a4ff483773e64ab95963445049bff4044e055f31c13bd74c039fba1f113401 *i386-win32.pe/upx-3.95.exe
1c8973e104c93be98db7d5411b478d0badb7b6d5373f7d28e94f435fb31faa7e *m68k-atari.tos/upx-3.91.ttp
@@ -171,8 +171,8 @@ d33a702da5d0c46e744056c24e8323360223ed8e1be07660eecc28ade7b5fc75 *armeb-linux.el
57790e4d030d32d19ae6ba2a485a5bc6f7244c7e65d3ec4c8b0afe395927dd83 *armeb-linux.elf/upx-3.95
8673a20ba4b83e25daab30431ed215dcb35f595fa0cabf67ff57368a07ba4c14 *i386-dos32.djgpp2.coff/upx-3.91.exe
c7eb37a33f4f044ce444e5c258fade07c8fdf6d64236900c839196bedcb241fe *i386-dos32.djgpp2.coff/upx-3.95.exe
498471f3578ac0272f46a4036f318374a75c147f99f93ee2bd2a85eeadd87c90 *i386-linux.elf/upx-3.91
7a7b40312319054cb8dfa9281014e13592a93f3b7f55aa285658cb76e87c847c *i386-linux.elf/upx-3.95
e40f96019386617f462a0216d6301639fae7ca0ed16cd7c0d52e8a95372d60c1 *i386-linux.elf/upx-3.91
89030f9375babb8a2b72282e9fe48785bc7f2b91b23d2cb4b95d01ac405e4d70 *i386-linux.elf/upx-3.95
577f01e1f02bf8cc9632057cf59c2a146456d768c60aa2df69c34d4631023f9d *i386-win32.pe/upx-3.91.exe
f6a7a90073cf16f53c17a2ae7aea1c91beff0c2926d41c628a8d1a724bc37e6b *i386-win32.pe/upx-3.95.exe
0bc481806564627f23125e3ab6fa59e8b90e35f0f117c3d185a728086ad02351 *m68k-atari.tos/upx-3.91.ttp
@@ -194,8 +194,8 @@ cdc4ed9c5f1f724c436a3fc97a45b6b89605b34d8210ab6fdbbefb5954b5361b *amd64-linux.el
03e9bb54264382f17dc15e451b9aff634e41d0b3e14585350479bf143b612c09 *armeb-linux.elf/upx-3.95
6f9fbac216cd42aa370cb90965e74669daf33fd403bf0a250aaec06dd3439009 *i386-dos32.djgpp2.coff/upx-3.91.exe
902f1c5036680b0fadbebaef913c4062f0ce5ef0f2d537f7e6da31d23974139d *i386-dos32.djgpp2.coff/upx-3.95.exe
9bfc26e7b89180c4f093dfee47c9f7b7029aec54883fa26ac2335c980eff0e74 *i386-linux.elf/upx-3.91
6b49e38fbd8ce8db7cbdd1d438c10ba3d24bc0f03c56f1c39deabd3340eeaae7 *i386-linux.elf/upx-3.95
5716eeb0a4dc7320c9b4f871d4bc4ad0ac33b9e7aed1437c316e1dd63f981b70 *i386-linux.elf/upx-3.91
bbcffe672440af91438919f52d79414fb0e658ab4d97cf11d996c01ba88f69eb *i386-linux.elf/upx-3.95
63afac5307a2385757b3d29753c64e0026241ea2ca1324f53e8ccb4263cc9f62 *i386-win32.pe/upx-3.91.exe
eb01b6f27798690115cabb88314551579da509455232bbaa3276eddc25106d0d *i386-win32.pe/upx-3.95.exe
3a5fa857ff517e41386062a0fb2be4f8b6fa5cb79d5624b5a00947c1f2758afb *m68k-atari.tos/upx-3.91.ttp
+6 -4
View File
@@ -1496,7 +1496,7 @@ PackLinuxElf32::buildLinuxLoader(
method = M_NRV2B_8; //only ARM v6 and above has unaligned fetch
} // end shlib
else if (0
//ELF2 NYI || this->e_machine==Elf32_Ehdr::EM_386
|| this->e_machine==Elf32_Ehdr::EM_386
//ELF2 NYI || this->e_machine==Elf32_Ehdr::EM_MIPS
//ELF2 NYI || this->e_machine==Elf32_Ehdr::EM_PPC
//ELF2 NYI || this->e_machine==Elf32_Ehdr::EM_ARM
@@ -1567,10 +1567,11 @@ PackLinuxElf32::buildLinuxLoader(
linker->addSection("FOLDEXEC", mb_cprLoader, sizeof(b_info) + sz_cpr, 0);
if (xct_off // shlib
&& (0
|| this->e_machine==Elf32_Ehdr::EM_ARM
//ELF2 NYI || this->e_machine==Elf32_Ehdr::EM_ARM
//ELF2 NYI || this->e_machine==Elf32_Ehdr::EM_MIPS
//ELF2 NYI || this->e_machine==Elf32_Ehdr::EM_PPC
|| this->e_machine==Elf32_Ehdr::EM_386)
|| this->e_machine==Elf32_Ehdr::EM_386
)
) { // shlib with ELF2 de-compressor
addLoader("ELFMAINX,ELFMAINZ,FOLDEXEC,IDENTSTR");
}
@@ -1578,7 +1579,7 @@ PackLinuxElf32::buildLinuxLoader(
//ELF2 NYI || this->e_machine==Elf32_Ehdr::EM_ARM
//ELF2 NYI || this->e_machine==Elf32_Ehdr::EM_MIPS
//ELF2 NYI || this->e_machine==Elf32_Ehdr::EM_PPC
//ELF2 NYI || this->e_machine==Elf32_Ehdr::EM_386
|| this->e_machine==Elf32_Ehdr::EM_386
) { // main program with ELF2 de-compressor
addLoader("ELFMAINX,ELFMAINZ,FOLDEXEC,IDENTSTR");
defineSymbols(ft);
@@ -3628,6 +3629,7 @@ PackLinuxElf32::generateElfHdr(
h2->phdr[C_TEXT].p_vaddr = h2->phdr[C_BASE].p_vaddr;
h2->phdr[C_TEXT].p_paddr = h2->phdr[C_BASE].p_vaddr;
set_te32(&h2->phdr[C_BASE].p_type, PT_LOAD32); // be sure
set_te32(&h2->phdr[C_TEXT].p_type, PT_LOAD32); // be sure
h2->phdr[C_BASE].p_offset = 0;
h2->phdr[C_BASE].p_filesz = 0;
// .p_memsz = brka; temporary until sz_pack2
+40 -16
View File
@@ -1179,7 +1179,6 @@ i386-dos32.watcom.le.h : $(srcdir)/src/$$T.S
# /***********************************************************************
# // i386-linux.elf
# ************************************************************************/
i386-linux.elf%.h : tc_list = i386-linux.elf arch-i386 default
i386-linux.elf%.h : tc_bfdname = elf32-i386
@@ -1187,32 +1186,57 @@ tc.i386-linux.elf.gcc = i386-linux-gcc-3.4.6 -m32 -march=i386 -nostdinc -MM
tc.i386-linux.elf.gcc += -fno-exceptions -fno-asynchronous-unwind-tables
tc.i386-linux.elf.gcc += -Wall -W -Wcast-align -Wcast-qual -Wstrict-prototypes -Wwrite-strings -Werror
tc.i386-linux.elf.gcc += -mtune=k6
tc.i386-linux.elf.gcc += -Os -fno-omit-frame-pointer
tc.i386-linux.elf.gcc += -O2 -fno-omit-frame-pointer
tc.i386-linux.elf.gcc += -momit-leaf-frame-pointer
tc.i386-linux.elf.gcc += -fno-align-functions -fno-align-jumps -fno-align-labels -fno-align-loops
tc.i386-linux.elf.gcc += -mpreferred-stack-boundary=2
tc.i386-linux.elf.gcc += -fweb
i386-linux.elf-entry.h : $(srcdir)/src/$$T.S
$(call tc,gcc) -c -x assembler-with-cpp $< -o tmp/$T.bin
$(call tc,f-embed_objinfo,tmp/$T.bin)
$(call tc,bin2h) tmp/$T.bin $@
i386-linux.elf-so_entry.h: $(srcdir)/src/$$T.S
$(call tc,gcc) -c $< -o tmp/$T.bin
i386-linux.elf-entry.h : $(srcdir)/src/i386-linux.elf-entry.lds \
$(srcdir)/src/$$T.S \
tmp/i386-linux.elf-upxfd_android.o
$(call tc,gcc) -c $(srcdir)/src/$T.S -o tmp/$T.o
multiarch-ld-2.17 -r -Map tmp/$T.map -o tmp/$T.bin \
-T src/i386-linux.elf-entry.lds \
tmp/$T.o \
tmp/i386-linux.elf-upxfd_android.o
$(call tc,f-embed_objinfo_without_xstrip,tmp/$T.bin)
$(call tc,bin2h) tmp/$T.bin $@
i386-linux.elf-fold.h : tmp/$$T.o tmp/i386-linux.elf-main.o $(srcdir)/src/$$T.lds
$(call tc,ld) --strip-all -T $(srcdir)/src/$T.lds -Map tmp/$T.map $(filter %.o,$^) -o tmp/$T.bin
$(call tc,f-objstrip,tmp/$T.bin)
$(call tc,sstrip) tmp/$T.bin
i386-linux.elf-so_entry.h : $(srcdir)/src/i386-linux.elf-so_entry.lds \
$(srcdir)/src/$$T.S \
tmp/i386-linux.elf-upxfd_android.o
$(call tc,gcc) -c $(srcdir)/src/$T.S -o tmp/$T.o
multiarch-ld-2.17 -r -Map tmp/$T.map -o tmp/$T.bin \
-T src/i386-linux.elf-so_entry.lds \
tmp/$T.o \
tmp/i386-linux.elf-upxfd_android.o
$(call tc,f-embed_objinfo_without_xstrip,tmp/$T.bin)
$(call tc,bin2h) tmp/$T.bin $@
tmp/i386-linux.elf-upxfd_android.o : $(srcdir)/src/upxfd_android.c
$(call tc,gcc) -c -O $< -o $@
$(call tc,objcopy) -R .comment $@
$(call tc,objdump) -Dr $(tc_objdump_disasm_options) $@ | $(RTRIM) > $@.disasm
i386-linux.elf-fold.h : $(srcdir)/src/$$T.lds \
tmp/$$T.o \
tmp/i386-linux.elf-upxfd_android.o \
tmp/i386-expand.o \
tmp/i386-linux.elf-main2.o
$(call tc,ld) -r -T $(srcdir)/src/$T.lds -Map tmp/$T.map $(filter %.o,$^) -o tmp/$T.bin
$(call tc,f-embed_objinfo_without_xstrip_keep_dot_text,tmp/$T.bin)
$(call tc,brandelf) --elfosabi=linux tmp/$T.bin
$(call tc,bin2h) tmp/$T.bin $@
i386-linux.elf-so_fold.h : tmp/$$T.o tmp/i386-linux.elf-so_main.o $(srcdir)/src/$$T.lds tmp/i386-expand.o
multiarch-ld-2.17 -r -T $(srcdir)/src/$T.lds -Map tmp/$T.map $(filter %.o,$^) -o tmp/$T.bin
i386-linux.elf-so_fold.h : $(srcdir)/src/$$T.lds \
tmp/$$T.o \
tmp/i386-linux.elf-upxfd_android.o \
tmp/i386-expand.o \
tmp/i386-linux.elf-so_main.o
$(call tc,ld) -r -T $(srcdir)/src/$T.lds -Map tmp/$T.map $(filter %.o,$^) -o tmp/$T.bin
$(call tc,f-embed_objinfo_without_xstrip,tmp/$T.bin)
$(call tc,brandelf) --elfosabi=linux tmp/$T.bin
$(call tc,bin2h) tmp/$T.bin $@
tmp/i386-linux.elf-fold.o : $(srcdir)/src/$$T.S
@@ -1227,7 +1251,7 @@ tmp/i386-linux.elf-so_fold.o : $(srcdir)/src/$$T.S
tmp/i386-expand.o: $(srcdir)/src/$$T.S
$(call tc,gcc) -c $< -o $@
tmp/i386-linux.elf-main.o : $(srcdir)/src/$$T.c
tmp/i386-linux.elf-main2.o : $(srcdir)/src/$$T.c
$(call tc,gcc) -c $< -o $@
$(call tc,f-objstrip,$@)
+115 -102
View File
@@ -1,5 +1,5 @@
/* i386-bsd.elf-fold.h
created from i386-bsd.elf-fold.bin, 1813 (0x715) bytes
created from i386-bsd.elf-fold.bin, 2021 (0x7e5) bytes
This file is part of the UPX executable compressor.
@@ -32,17 +32,17 @@
/* clang-format off */
#define STUB_I386_BSD_ELF_FOLD_SIZE 1813
#define STUB_I386_BSD_ELF_FOLD_ADLER32 0xa3ac09fc
#define STUB_I386_BSD_ELF_FOLD_CRC32 0x02d4716d
#define STUB_I386_BSD_ELF_FOLD_SIZE 2021
#define STUB_I386_BSD_ELF_FOLD_ADLER32 0xa6e88778
#define STUB_I386_BSD_ELF_FOLD_CRC32 0xcef3e019
unsigned char stub_i386_bsd_elf_fold[1813] = {
unsigned char stub_i386_bsd_elf_fold[2021] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 9, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 3, 0, 1, 0, 0, 0,128, 16,192, 0, 52, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 16,192, 0,
/* 0x0040 */ 0, 16,192, 0, 21, 7, 0, 0, 24, 7, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0, 21, 7, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 0, 16,192, 0,229, 7, 0, 0,232, 7, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0,229, 7, 0, 0, 0, 0, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 41,201,186,248, 2, 0, 0,137,230,137,231,232,134, 0, 0, 0,
@@ -51,104 +51,117 @@ unsigned char stub_i386_bsd_elf_fold[1813] = {
/* 0x00b0 */ 141,148, 26,255, 31, 0, 0,129,226, 0,240,255,255, 82, 41,192,
/* 0x00c0 */ 102,131,123, 16, 3,117, 1,146, 80,139, 67, 24,139,112,248, 41,
/* 0x00d0 */ 240,139, 24,139, 72, 4,131,193, 12,141, 84, 36, 12, 96, 71,232,
/* 0x00e0 */ 140, 4, 0, 0,131,196, 36, 89, 91,129,196, 0, 10, 0, 0, 90,
/* 0x00e0 */ 75, 5, 0, 0,131,196, 36, 89, 91,129,196, 0, 10, 0, 0, 90,
/* 0x00f0 */ 193,226, 12, 1,211, 80,106, 0,137,229, 41,217, 41,192, 81, 83,
/* 0x0100 */ 80, 79, 60,175,175,117,252,255, 55, 49,255, 49,246, 49,210, 49,
/* 0x0110 */ 201, 49,219,176, 73,195,173,171,173,171,133,192,117,250,173,171,
/* 0x0120 */ 133,192,117,250, 87,173,171,131,248, 32,115, 3, 15,179,194,133,
/* 0x0130 */ 192,173,171,117,240,131,239, 8, 1,201, 64,243,171, 72,171,171,
/* 0x0140 */ 95,195, 0, 0, 85,137,229, 87, 86,137,206, 83,137,195, 57, 8,
/* 0x0150 */ 139,120, 4,115, 7,106,127,232,113, 5, 0, 0,133,201,116, 8,
/* 0x0160 */ 138, 7, 71,136, 2, 66,226,248, 1,115, 4, 41, 51,141,101,244,
/* 0x0170 */ 91, 94, 95,201,195, 85,137,229, 87, 86,137,198, 83,137,211,131,
/* 0x0180 */ 236, 24,139, 69, 8,139,125, 12,137, 69,220,131, 58, 0, 15,132,
/* 0x0190 */ 182, 0, 0, 0,141, 85,228,185, 12, 0, 0, 0,137,240,232,161,
/* 0x01a0 */ 255,255,255,139, 69,228,139, 77,232,133,192,117, 19,129,249, 85,
/* 0x01b0 */ 80, 88, 33,117, 15,131, 62, 0, 15,132,140, 0, 0, 0,235, 4,
/* 0x01c0 */ 133,201,117, 7,106,127,232, 2, 5, 0, 0, 57,193,119,245, 59,
/* 0x01d0 */ 3,119,241, 57,193,115, 86,137, 69,224,141, 69,224,255,117,236,
/* 0x01e0 */ 80,255,115, 4, 81,255,118, 4,255, 85,220,131,196, 20,133,192,
/* 0x01f0 */ 117,210,139, 85,224, 59, 85,228,117,202,138, 69,237,132,192,116,
/* 0x0200 */ 34,133,255,116, 30,129,250, 0, 2, 0, 0,119, 4, 57, 19,117,
/* 0x0210 */ 18, 15,182,192, 80, 15,182, 69,238, 80, 82,255,115, 4,255,215,
/* 0x0220 */ 131,196, 16,139, 69,232, 1, 70, 4, 41, 6,235, 10,139, 83, 4,
/* 0x0230 */ 137,240,232, 13,255,255,255,139, 85,228,139, 3, 1, 83, 4, 41,
/* 0x0240 */ 208,133,192,137, 3,233, 68,255,255,255,141,101,244, 91, 94, 95,
/* 0x0250 */ 201,195,133,192, 83,137,195,116, 35,168, 1,117, 31,139, 3, 57,
/* 0x0260 */ 208,116, 9,131,248, 1,117, 11,133,210,116, 11,137, 19,137, 75,
/* 0x0270 */ 4,235, 9,133,192,116, 5,131,195, 8,235,225, 91,195, 85,137,
/* 0x0280 */ 229, 87, 86, 83,131,236, 60,137, 85,224,137, 69,228,139, 85, 12,
/* 0x0290 */ 139, 69, 8,199, 69,204,255,255,255,255,137, 85,216,139,125,224,
/* 0x02a0 */ 139, 85,224,137, 69,220,139, 69, 20, 3,127, 28,137, 69,212, 49,
/* 0x02b0 */ 192,102,131,122, 16, 2, 15,183, 74, 44,137,251, 15,148,192, 49,
/* 0x02c0 */ 246,193,224, 4,137,202, 5, 2, 16, 0, 0, 74,120, 30,131, 59,
/* 0x02d0 */ 1,117, 20,139, 83, 8, 59, 85,204,115, 3,137, 85,204, 3, 83,
/* 0x02e0 */ 20, 57,214,115, 2,137,214,131,195, 32,226,226,139, 93,204,106,
/* 0x02f0 */ 0,106,255,129,227, 0,240,255,255, 80, 41,222,106, 0,129,198,
/* 0x0300 */ 255, 15, 0, 0,129,230, 0,240,255,255, 86, 83,232,151, 3, 0,
/* 0x0310 */ 0,131,196, 24,141, 52, 48, 41,216,137, 69,208,139, 69,224,137,
/* 0x0320 */ 117,240,102,131,120, 44, 0,199, 69,200, 0, 0, 0, 0, 15,132,
/* 0x0330 */ 242, 1, 0, 0,139, 7,131,248, 6,117, 34,131,125,220, 0, 15,
/* 0x0340 */ 132,203, 1, 0, 0,139, 77,208,186, 3, 0, 0, 0, 3, 79, 8,
/* 0x0350 */ 139, 69,216,232,250,254,255,255,233,179, 1, 0, 0, 72, 15,133,
/* 0x0360 */ 172, 1, 0, 0,139, 95, 20,133,219, 15,132,161, 1, 0, 0,139,
/* 0x0370 */ 79, 24,199, 69,196, 64, 98, 81,115,139, 69,208, 3, 71, 8,131,
/* 0x0380 */ 225, 7,193,225, 2,139, 87, 16,211,109,196,137,193,137,198,129,
/* 0x0390 */ 225,255, 15, 0, 0,131,101,196, 7,137, 85,232, 41,206, 1,202,
/* 0x03a0 */ 131,125,220, 0,141, 28, 24,137, 69,236,137, 93,188,137, 85,192,
/* 0x03b0 */ 116, 41,106, 0,139, 69,196,106,255,104, 18, 16, 0, 0,131,200,
/* 0x03c0 */ 2, 80,137,208,131,192, 3, 80, 86,232,218, 2, 0, 0,131,196,
/* 0x03d0 */ 24, 57,198, 15,133,226, 0, 0, 0,235, 36,139, 71, 4, 41,200,
/* 0x03e0 */ 80,255,117,228,106, 18,255,117,196,255,117,192, 86,232,182, 2,
/* 0x03f0 */ 0, 0,131,196, 24, 57,198, 15,133,190, 0, 0, 0,235, 34,131,
/* 0x0400 */ 125,220, 0,116, 28,246, 69,196, 4,139, 69,212,117, 2, 49,192,
/* 0x0410 */ 80,139, 69,220,255,117,228,141, 85,232,232, 86,253,255,255, 88,
/* 0x0420 */ 90,139, 85,192,247,218,129,226,255, 15, 0, 0,246, 69,196, 2,
/* 0x0430 */ 137, 85,184,116, 21,131,125,184, 0,139, 85,192,141, 4, 22,116,
/* 0x0440 */ 9,139, 77,184,198, 0, 0, 64,226,250,131,125,220, 0,116,114,
/* 0x0450 */ 131, 63, 1,117, 83,246, 71, 24, 1,116, 77,139, 87, 20,139, 95,
/* 0x0460 */ 8,141, 12, 26, 3, 77,208, 59, 87, 16,117, 14,137,200,247,216,
/* 0x0470 */ 37,255, 15, 0, 0,131,248, 3,119, 14,107, 69,208, 52,131,127,
/* 0x0480 */ 4, 0,141, 76, 3, 12,117, 15,139, 1, 61,205,128,201,195,116,
/* 0x0490 */ 6,199, 1,205,128,201,195,133,201,116, 13,139, 69,216, 49,210,
/* 0x04a0 */ 131,224,254,232,170,253,255,255,255,117,196,255,117,192, 86,232,
/* 0x04b0 */ 53, 2, 0, 0,131,196, 12,133,192,116, 7,106,127,232, 11, 2,
/* 0x04c0 */ 0, 0,139, 69,192, 3, 69,184,141, 28, 6, 59, 93,188,115, 33,
/* 0x04d0 */ 106, 0,106,255,104, 18, 16, 0, 0,255,117,196, 41, 93,188,255,
/* 0x04e0 */ 117,188, 83,232,192, 1, 0, 0,131,196, 24, 57,195,116, 33,235,
/* 0x04f0 */ 202,131,125,220, 0,116, 25,139, 69,192,131,192, 3, 37,255, 15,
/* 0x0500 */ 0, 0,131,248, 3,119, 9, 80, 83,232,215, 1, 0, 0, 89, 91,
/* 0x0510 */ 139, 85,224,131,199, 32,255, 69,200, 15,183, 66, 44, 57, 69,200,
/* 0x0520 */ 15,140, 14,254,255,255,131,125,220, 0,117, 15,255,117,228,232,
/* 0x0530 */ 173, 1, 0, 0, 90,133,192,116, 21,235,128,139, 69,224,102,131,
/* 0x0540 */ 120, 16, 3,116, 9,255,117,240,232,127, 1, 0, 0, 88,131,125,
/* 0x0550 */ 16, 0,116, 8,139, 69,208,139, 85, 16,137, 2,139, 85,224,139,
/* 0x0560 */ 82, 24, 1, 85,208,139, 69,208,141,101,244, 91, 94, 95,201,195,
/* 0x0570 */ 85,137,229, 87, 86, 83,131,236, 16,141, 85, 24,139, 69, 8,106,
/* 0x0580 */ 0,139,125, 28,137, 69,236,139, 69, 16,139, 93, 32,141,119, 52,
/* 0x0590 */ 137, 69,232,131,192, 2,255,117,232,137, 69,228,141, 69, 32,232,
/* 0x05a0 */ 209,251,255,255,139, 69, 12,185, 0, 16, 0, 0,186, 6, 0, 0,
/* 0x05b0 */ 0,137, 69, 32,139, 69,236, 41, 93, 36,232,147,252,255,255, 15,
/* 0x05c0 */ 183, 79, 44,139, 69,236,186, 5, 0, 0, 0,232,130,252,255,255,
/* 0x05d0 */ 15,183, 79, 42,139, 69,236,186, 4, 0, 0, 0,232,113,252,255,
/* 0x05e0 */ 255,139, 77, 40, 3, 78, 8,186, 3, 0, 0, 0,139, 69,236,131,
/* 0x05f0 */ 193, 52,232, 91,252,255,255,141, 69,240,255,117,228,137,250, 80,
/* 0x0600 */ 141, 69, 32,255,117,236, 80,139, 69,232,232,111,252,255,255,186,
/* 0x0610 */ 9, 0, 0, 0,137,193,137,195,139, 69,236,232, 50,252,255,255,
/* 0x0620 */ 102,139, 79, 44,131,196, 24, 49,210,102,133,201,116,112,131, 62,
/* 0x0630 */ 3,117, 96,106, 0,139, 69,240,106, 0, 3, 70, 8, 80,232,154,
/* 0x0640 */ 0, 0, 0,131,196, 12,133,192,137,195,120, 22,104, 0, 2, 0,
/* 0x0650 */ 0, 87, 80,232,125, 0, 0, 0,131,196, 12, 61, 0, 2, 0, 0,
/* 0x0660 */ 116, 7,106,127,232,100, 0, 0, 0,141, 69,240,137,250,106, 0,
/* 0x0670 */ 80,137,216,106, 0,106, 0,232, 2,252,255,255,139, 77,240,137,
/* 0x0680 */ 195,139, 69,236,186, 7, 0, 0, 0,232,196,251,255,255,131,196,
/* 0x0690 */ 16,235, 11, 66, 15,183,193,131,198, 32, 57,194,124,144,141,101,
/* 0x06a0 */ 244,137,216, 91, 94, 95,201,195, 85,137,229, 49,192, 80,255,117,
/* 0x06b0 */ 28, 80,255,117, 24,255,117, 20,255,117, 16,255,117, 12,255,117,
/* 0x06c0 */ 8, 80,176,197, 80, 80,176,198,205,128,201,195,195,176, 1, 15,
/* 0x06d0 */ 182,192,205,128,195,176, 3,235,246,176, 4,235,242,176, 5,235,
/* 0x06e0 */ 238,176, 6,235,234,176, 73,235,230,176, 74,235,226,176, 33,235,
/* 0x06f0 */ 222,176, 20,235,218,176, 92,235,214,176, 59,235,210,176, 2,235,
/* 0x0700 */ 206,176,130,235,202,176,116,235,198,176,240,235,194,176, 10,235,
/* 0x0710 */ 190,176, 7,235,186
/* 0x0140 */ 95,195, 0, 0, 85,137,229, 87, 86,137,199, 83,137,206,139, 15,
/* 0x0150 */ 139, 64, 4, 57,241,137,195,114, 36,133,246,116, 15,137,241,138,
/* 0x0160 */ 3, 67,136, 2, 66,226,248,139, 71, 4,139, 15, 1,240, 41,241,
/* 0x0170 */ 137, 71, 4,137, 15,141,101,244, 91, 94, 95,201,195,106,127,232,
/* 0x0180 */ 25, 6, 0, 0, 85,137,229, 87, 86,137,198, 83,137,211,131,236,
/* 0x0190 */ 24,139, 58,139, 69, 8,133,255,137, 69,220, 15,132,153, 0, 0,
/* 0x01a0 */ 0,141,125,228,137,240,185, 12, 0, 0, 0,137,250,232,146,255,
/* 0x01b0 */ 255,255,139, 69,228,133,192, 15,132,203, 0, 0, 0,139, 77,232,
/* 0x01c0 */ 133,201, 15,132,201, 0, 0, 0, 57,193, 15,135,193, 0, 0, 0,
/* 0x01d0 */ 59, 3, 15,135,185, 0, 0, 0, 57,193,115,102,137, 69,224,141,
/* 0x01e0 */ 69,224,255,117,236, 80,255,115, 4, 81,255,118, 4,255, 85,220,
/* 0x01f0 */ 131,196, 20,133,192, 15,133,150, 0, 0, 0,139, 85,228, 59, 85,
/* 0x0200 */ 224, 15,133,138, 0, 0, 0,138, 69,237,132,192,116, 19,139, 77,
/* 0x0210 */ 12,133,201,116, 12,129,250, 0, 2, 0, 0,119, 75, 57, 19,116,
/* 0x0220 */ 71,139, 69,232, 1, 70, 4, 41, 6,139, 3, 1, 83, 4, 41,208,
/* 0x0230 */ 133,192,137, 3, 15,133,106,255,255,255,141,101,244, 91, 94, 95,
/* 0x0240 */ 201,195,139, 83, 4,137,240,232,248,254,255,255,139, 85,228,139,
/* 0x0250 */ 3, 1, 83, 4, 41,208,133,192,137, 3, 15,133, 68,255,255,255,
/* 0x0260 */ 141,101,244, 91, 94, 95,201,195, 15,182,192, 80, 15,182, 69,238,
/* 0x0270 */ 80, 82,255,115, 4,255, 85, 12,139, 69,232, 1, 70, 4,131,196,
/* 0x0280 */ 16, 41, 6,139, 85,228,235,161,129,125,232, 85, 80, 88, 33,116,
/* 0x0290 */ 7,106,127,232, 5, 5, 0, 0,139, 30,133,219,116,156,235,241,
/* 0x02a0 */ 133,192, 83,137,195,116, 33,168, 1,117, 29,139, 3, 57,208,116,
/* 0x02b0 */ 18,131,248, 1,116, 20,133,192,116, 14,131,195, 8,139, 3, 57,
/* 0x02c0 */ 208,117,238,137, 19,137, 75, 4, 91,195,133,210,117,245,131,195,
/* 0x02d0 */ 8,235,234, 85,137,229, 87, 86,190, 0, 0, 0, 0, 83,131,236,
/* 0x02e0 */ 64,137, 69,228,139, 69, 8,137, 85,224,139,125,224,199, 69,204,
/* 0x02f0 */ 255,255,255,255,139, 85, 12,137, 69,220,139, 69,224,139, 77, 20,
/* 0x0300 */ 137, 85,216, 3,127, 28,139, 85,224,137, 77,212,102,131,120, 16,
/* 0x0310 */ 2, 15,183, 74, 44,137,251, 15,148,192, 15,182,192,137,202,193,
/* 0x0320 */ 224, 4, 5, 2, 16, 0, 0, 74,120, 14,131, 59, 1, 15,132,209,
/* 0x0330 */ 0, 0, 0,131,195, 32,226,242,139, 93,204,106, 0,106,255,129,
/* 0x0340 */ 227, 0,240,255,255, 80, 41,222,106, 0,129,198,255, 15, 0, 0,
/* 0x0350 */ 129,230, 0,240,255,255, 86, 83,232, 27, 4, 0, 0,139, 77,224,
/* 0x0360 */ 141, 52, 48,131,196, 24,102,139, 81, 44, 41,216,137,117,240,190,
/* 0x0370 */ 0, 0, 0, 0,102,133,210,137, 69,208,117, 20,235, 69, 72, 15,
/* 0x0380 */ 132,156, 0, 0, 0, 70, 15,183,194,131,199, 32, 57,240,126, 51,
/* 0x0390 */ 139, 7,131,248, 6,117,231,139, 69,220,133,192,116,231,139, 77,
/* 0x03a0 */ 208,186, 3, 0, 0, 0, 3, 79, 8,139, 69,216,232,239,254,255,
/* 0x03b0 */ 255,139, 69,224, 70,131,199, 32,102,139, 80, 44, 15,183,194, 57,
/* 0x03c0 */ 240,127,205,139, 77,220,133,201, 15,132, 56, 2, 0, 0,139, 85,
/* 0x03d0 */ 224,102,131,122, 16, 3,116, 9,255,117,240,232,188, 3, 0, 0,
/* 0x03e0 */ 88,139, 69, 16,133,192,116, 8,139, 69,208,139, 77, 16,137, 1,
/* 0x03f0 */ 139, 85,224,139, 82, 24, 1, 85,208,139, 69,208,141,101,244, 91,
/* 0x0400 */ 94, 95,201,195,139, 83, 8, 59, 85,204,115, 3,137, 85,204, 3,
/* 0x0410 */ 83, 20, 57,242, 15,134, 25,255,255,255,137,214,233, 18,255,255,
/* 0x0420 */ 255,139, 95, 20,133,219, 15,132, 89,255,255,255,139, 69,208,199,
/* 0x0430 */ 69,200, 64, 98, 81,115, 3, 71, 8,139, 79, 24,139, 87, 16,131,
/* 0x0440 */ 225, 7, 1,195,193,225, 2,137, 93,188,211,109,200,137,193,139,
/* 0x0450 */ 93,220,129,225,255, 15, 0, 0,131,101,200, 7,137, 85,232, 1,
/* 0x0460 */ 202,137, 69,236, 41,200,133,219,137, 85,196,137, 69,192, 15,132,
/* 0x0470 */ 104, 1, 0, 0,106, 0,139, 69,200,106,255,104, 18, 16, 0, 0,
/* 0x0480 */ 131,200, 2, 80,137,208,131,192, 3, 80,255,117,192,232,230, 2,
/* 0x0490 */ 0, 0,131,196, 24, 59, 69,192, 15,133,204, 0, 0, 0,139, 77,
/* 0x04a0 */ 220,133,201,116, 31,246, 69,200, 4,139, 69,212,117, 5,184, 0,
/* 0x04b0 */ 0, 0, 0, 80,139, 69,220,255,117,228,141, 85,232,232,194,252,
/* 0x04c0 */ 255,255, 88, 90,139, 93,196,247,219,129,227,255, 15, 0, 0,246,
/* 0x04d0 */ 69,200, 2,116, 14,139, 69,192, 3, 69,196,133,219, 15,133,142,
/* 0x04e0 */ 0, 0, 0,139, 69,220,133,192,116, 30,131, 63, 1, 15,132,139,
/* 0x04f0 */ 0, 0, 0,255,117,200,255,117,196,255,117,192,232,184, 2, 0,
/* 0x0500 */ 0,131,196, 12,133,192,117, 98,139, 69,196, 1,216,139, 93,192,
/* 0x0510 */ 1,195, 59, 93,188,114, 48,139, 69,220,133,192,116, 29,139, 69,
/* 0x0520 */ 196,131,192, 3, 37,255, 15, 0, 0,131,248, 3, 15,135,127,254,
/* 0x0530 */ 255,255, 80, 83,232,124, 2, 0, 0, 91, 88,139, 77,224,102,139,
/* 0x0540 */ 81, 44,233, 62,254,255,255,106, 0,106,255,104, 18, 16, 0, 0,
/* 0x0550 */ 255,117,200, 41, 93,188,255,117,188, 83,232, 25, 2, 0, 0,131,
/* 0x0560 */ 196, 24, 57,216, 15,132, 71,254,255,255,106,127,232, 44, 2, 0,
/* 0x0570 */ 0,137,217,198, 0, 0, 64,226,250,233,101,255,255,255,246, 71,
/* 0x0580 */ 24, 1, 15,132,107,255,255,255,139, 87, 20,139, 79, 8,137, 77,
/* 0x0590 */ 184, 1,209,137, 77,180, 3, 77,208, 59, 87, 16,116,126,107, 69,
/* 0x05a0 */ 208, 52,139, 85,184,141, 76, 2, 12,139, 71, 4,133,192,117, 15,
/* 0x05b0 */ 139, 1, 61,205,128,201,195,116, 6,199, 1,205,128,201,195,133,
/* 0x05c0 */ 201, 15,132, 44,255,255,255,139, 69,216,186, 0, 0, 0, 0,131,
/* 0x05d0 */ 224,254,232,201,252,255,255,233, 23,255,255,255,139, 71, 4, 41,
/* 0x05e0 */ 200, 80,255,117,228,106, 18,255,117,200,255,117,196,255,117,192,
/* 0x05f0 */ 232,131, 1, 0, 0,131,196, 24, 59, 69,192, 15,132,195,254,255,
/* 0x0600 */ 255,233,100,255,255,255,255,117,228,232,163, 1, 0, 0, 90,133,
/* 0x0610 */ 192, 15,132,202,253,255,255,233, 78,255,255,255,137,200,247,216,
/* 0x0620 */ 37,255, 15, 0, 0,131,248, 3,119,134,233,111,255,255,255, 85,
/* 0x0630 */ 137,229, 87, 86, 83,131,236, 16,141, 85, 24,139, 69, 8,106, 0,
/* 0x0640 */ 139,117, 16,137, 69,236,139, 69, 28, 86,139, 93, 32,137, 69,228,
/* 0x0650 */ 137,199,141, 70, 2,131,199, 52,137, 69,232,141, 69, 32,232, 33,
/* 0x0660 */ 251,255,255,139, 69, 12,185, 0, 16, 0, 0,186, 6, 0, 0, 0,
/* 0x0670 */ 137, 69, 32,139, 69,236, 41, 93, 36,232, 34,252,255,255,139, 69,
/* 0x0680 */ 228,186, 5, 0, 0, 0, 15,183, 72, 44,139, 69,236,232, 14,252,
/* 0x0690 */ 255,255,139, 69,228,186, 4, 0, 0, 0, 15,183, 72, 42,139, 69,
/* 0x06a0 */ 236,232,250,251,255,255,139, 77, 40, 3, 79, 8,186, 3, 0, 0,
/* 0x06b0 */ 0,139, 69,236,131,193, 52,232,228,251,255,255,141, 69,240,255,
/* 0x06c0 */ 117,232, 80,139, 85,228,255,117,236,141, 69, 32, 80,137,240,232,
/* 0x06d0 */ 255,251,255,255,186, 9, 0, 0, 0,137,193,137,195,139, 69,236,
/* 0x06e0 */ 232,187,251,255,255,139, 69,228,131,196, 24,186, 0, 0, 0, 0,
/* 0x06f0 */ 102,139, 72, 44,102,133,201,116, 16,131, 63, 3,116, 21, 66, 15,
/* 0x0700 */ 183,193,131,199, 32, 57,208,127,240,141,101,244,137,216, 91, 94,
/* 0x0710 */ 95,201,195,106, 0,139, 69,240,106, 0, 3, 71, 8, 80,232,138,
/* 0x0720 */ 0, 0, 0,131,196, 12,133,192,137,195,120, 24,104, 0, 2, 0,
/* 0x0730 */ 0,255,117,228, 80,232,107, 0, 0, 0,131,196, 12, 61, 0, 2,
/* 0x0740 */ 0, 0,116, 7,106,127,232, 82, 0, 0, 0,141, 69,240,139, 85,
/* 0x0750 */ 228,106, 0, 80,137,216,106, 0,106, 0,232,116,251,255,255,139,
/* 0x0760 */ 77,240,137,195,139, 69,236,186, 7, 0, 0, 0,232, 47,251,255,
/* 0x0770 */ 255,131,196, 16,235,147, 0, 0, 85,137,229, 49,192, 80,255,117,
/* 0x0780 */ 28, 80,255,117, 24,255,117, 20,255,117, 16,255,117, 12,255,117,
/* 0x0790 */ 8, 80,176,197, 80, 80,176,198,205,128,201,195,195,176, 1, 15,
/* 0x07a0 */ 182,192,205,128,195,176, 3,235,246,176, 4,235,242,176, 5,235,
/* 0x07b0 */ 238,176, 6,235,234,176, 73,235,230,176, 74,235,226,176, 33,235,
/* 0x07c0 */ 222,176, 20,235,218,176, 92,235,214,176, 59,235,210,176, 2,235,
/* 0x07d0 */ 206,176,130,235,202,176,116,235,198,176,240,235,194,176, 10,235,
/* 0x07e0 */ 190,176, 7,235,186
};
+47 -47
View File
@@ -33,8 +33,8 @@
/* clang-format off */
#define STUB_I386_BSD_ELF_EXECVE_FOLD_SIZE 1031
#define STUB_I386_BSD_ELF_EXECVE_FOLD_ADLER32 0x73c799a0
#define STUB_I386_BSD_ELF_EXECVE_FOLD_CRC32 0xef2fbdb2
#define STUB_I386_BSD_ELF_EXECVE_FOLD_ADLER32 0x978c9983
#define STUB_I386_BSD_ELF_EXECVE_FOLD_CRC32 0x28f950a1
unsigned char stub_i386_bsd_elf_execve_fold[1031] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 9, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -46,53 +46,53 @@ unsigned char stub_i386_bsd_elf_execve_fold[1031] = {
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 88,137,225,141, 84,132, 4,139,123, 24,141,179,128, 0, 0, 0,
/* 0x0090 */ 41,247,141, 93, 2, 96,232,184, 0, 0, 0,244, 83,137,195,139,
/* 0x0090 */ 41,247,141, 93, 2, 96,232,188, 0, 0, 0,244, 83,137,195,139,
/* 0x00a0 */ 76, 36, 8,136,208,131,224, 31, 60, 25,118, 3,131,232, 43,131,
/* 0x00b0 */ 192, 65, 75,136, 3,137,208,193,232, 5,137,194,226,229, 91,195,
/* 0x00c0 */ 85,137,229, 87, 86, 83,131,236, 32,106, 0,106, 0,255,117, 8,
/* 0x00d0 */ 232,212, 2, 0, 0,131,196, 12,133,192,137,198,120,105,141, 93,
/* 0x00e0 */ 218,199, 69,212, 47,112,114,111,199, 69,216, 99, 47, 0, 0,232,
/* 0x00f0 */ 201, 2, 0, 0,137,218,141,125,212,232,230, 2, 0, 0,141, 80,
/* 0x0100 */ 4,199, 0, 47,102,100, 47,137,240,232,214, 2, 0, 0,106, 5,
/* 0x0110 */ 87,232,163, 2, 0, 0, 90, 61, 85, 80, 88, 50, 89,117, 33,255,
/* 0x0120 */ 117, 8,232,178, 2, 0, 0,106, 1,106, 2, 86,232,144, 2, 0,
/* 0x0130 */ 0,255,117, 16,255,117, 12, 87,232,136, 2, 0, 0,131,196, 28,
/* 0x0140 */ 86,232,103, 2, 0, 0, 88,141,101,244,137,240, 91, 94, 95,201,
/* 0x0150 */ 194, 12, 0, 85,137,229, 87, 86, 83,131,236, 92,141,125,228,139,
/* 0x0160 */ 69, 16,139,117, 12,137, 69,156,165,165,165,131,109, 8, 12,129,
/* 0x0170 */ 125,228, 85, 80, 88, 51,137,117, 12, 15,133,110, 1, 0, 0,141,
/* 0x0180 */ 93,215,199, 69,196, 47,116,109,112,199, 69,200, 47,117,112,120,
/* 0x0190 */ 232, 40, 2, 0, 0,137,194,106, 4,137,216,141,117,211,232,249,
/* 0x01a0 */ 254,255,255,106, 0,137,195,141, 69,172, 51, 93,228,198, 69,215,
/* 0x01b0 */ 0, 80,232, 26, 2, 0, 0, 51, 93,172,139, 69,176,106, 7,193,
/* 0x01c0 */ 224, 12, 49,195,137,240,137,218,232,207,254,255,255,141, 69,196,
/* 0x01d0 */ 80,232, 3, 2, 0, 0,131,196, 20,131,248,254,116, 8,133,192,
/* 0x01e0 */ 15,133, 7, 1, 0, 0,104,192, 1, 0, 0,141, 85,196,104,194,
/* 0x01f0 */ 0, 0, 0, 82,232,176, 1, 0, 0,255,117,232, 80,137, 69,152,
/* 0x0200 */ 232,200, 1, 0, 0,131,196, 20,133,192, 15,133,211, 0, 0, 0,
/* 0x0210 */ 106, 0,255,117,152,106, 1,106, 3,255,117,232,106, 0,232, 81,
/* 0x0220 */ 1, 0, 0,131,196, 24, 61, 0,240,255,255,137,195, 15,135,176,
/* 0x0230 */ 0, 0, 0,139, 69,232,106, 0,106,255, 5,255, 15, 0, 0,104,
/* 0x0240 */ 18, 16, 0, 0, 37, 0,240,255,255,106, 3,141, 4, 3,104, 0,
/* 0x0250 */ 16, 0, 0, 80,232, 27, 1, 0, 0,131,196, 24,141,125,180,139,
/* 0x0260 */ 117, 12,165,165,165,139, 77,180,131,109, 8, 12,133,201,137,117,
/* 0x0270 */ 12,139, 85,184,117, 16,129,250, 85, 80, 88, 33,117,101,131,125,
/* 0x0280 */ 232, 0,116,109,235, 93, 57,202,119, 89, 59, 85,236,119, 84, 57,
/* 0x0290 */ 202,115, 35,141, 69,168,255,117,188, 80, 83, 82,255,117, 12,137,
/* 0x02a0 */ 77,168,255, 85,156,131,196, 20,133,192,117, 55,139, 69,180, 57,
/* 0x02b0 */ 69,168,117, 47,235, 7,137,223,139,117, 12,243,164,255,117,180,
/* 0x02c0 */ 83,232,235, 0, 0, 0,139, 69,180, 41, 69,232, 1,195,139, 69,
/* 0x02d0 */ 184, 41, 69, 8, 1, 69, 12,131,125, 8, 0, 95, 88, 15,137,121,
/* 0x02e0 */ 255,255,255,141, 69,196, 80,232,237, 0, 0, 0, 94,106,127,235,
/* 0x02f0 */ 89,255,117,152,232,180, 0, 0, 0, 91,133,192,117,229,255,117,
/* 0x0300 */ 28,255,117, 32,141, 85,196, 82,232,179,253,255,255,133,192,120,
/* 0x0310 */ 210,232,179, 0, 0, 0,133,192,117, 53,232,170, 0, 0, 0,133,
/* 0x0320 */ 192,117, 37,141, 69,160,106, 0,141,117,196, 80,199, 69,160, 85,
/* 0x0330 */ 80, 88, 52,199, 69,164, 0, 0, 0, 0,232,150, 0, 0, 0, 86,
/* 0x0340 */ 232,148, 0, 0, 0,131,196, 12,106, 0,232, 74, 0, 0, 0,106,
/* 0x0350 */ 0,106, 0,106,255,232,131, 0, 0, 0,255,117, 28,255,117, 32,
/* 0x0360 */ 141, 69,196, 80,232, 92, 0, 0, 0,131,196, 24,233,114,255,255,
/* 0x0370 */ 255, 0, 0, 0, 85,137,229, 49,192, 80,255,117, 28, 80,255,117,
/* 0x00c0 */ 85,137,229, 87, 86, 83,131,236, 32,106, 0,139,125, 8,106, 0,
/* 0x00d0 */ 87,232,211, 2, 0, 0,131,196, 12,133,192,137,198,120, 72,141,
/* 0x00e0 */ 93,218,199, 69,212, 47,112,114,111,199, 69,216, 99, 47, 0, 0,
/* 0x00f0 */ 232,200, 2, 0, 0,137,218,232,232, 2, 0, 0,141, 80, 4,199,
/* 0x0100 */ 0, 47,102,100, 47,137,240,232,216, 2, 0, 0,141, 69,212,106,
/* 0x0110 */ 5, 80,232,162, 2, 0, 0, 90, 61, 85, 80, 88, 50, 89,116, 19,
/* 0x0120 */ 86,232,135, 2, 0, 0, 88,141,101,244,137,240, 91, 94, 95,201,
/* 0x0130 */ 194, 12, 0, 87,232,160, 2, 0, 0,106, 1,106, 2, 86,232,126,
/* 0x0140 */ 2, 0, 0,255,117, 16,255,117, 12,141, 69,212, 80,232,115, 2,
/* 0x0150 */ 0, 0,131,196, 28,235,201, 85,137,229, 87, 86, 83,131,236, 92,
/* 0x0160 */ 141,125,228,139, 69, 16,139,117, 12,137, 69,156,165,165,165,131,
/* 0x0170 */ 109, 8, 12,129,125,228, 85, 80, 88, 51,137,117, 12, 15,133, 90,
/* 0x0180 */ 1, 0, 0,141, 93,215,199, 69,196, 47,116,109,112,199, 69,200,
/* 0x0190 */ 47,117,112,120,232, 36, 2, 0, 0,137,194,106, 4,137,216,141,
/* 0x01a0 */ 117,211,232,245,254,255,255,106, 0,137,195,141, 69,172, 51, 93,
/* 0x01b0 */ 228,198, 69,215, 0, 80,232, 22, 2, 0, 0, 51, 93,172,139, 69,
/* 0x01c0 */ 176,106, 7,193,224, 12, 49,195,137,240,137,218,232,203,254,255,
/* 0x01d0 */ 255,141, 69,196, 80,232,255, 1, 0, 0,131,196, 20,131,248,254,
/* 0x01e0 */ 116, 8,133,192, 15,133,243, 0, 0, 0,104,192, 1, 0, 0,141,
/* 0x01f0 */ 85,196,104,194, 0, 0, 0, 82,232,172, 1, 0, 0,255,117,232,
/* 0x0200 */ 80,137, 69,152,232,196, 1, 0, 0,131,196, 20,133,192, 15,133,
/* 0x0210 */ 191, 0, 0, 0,106, 0,255,117,152,106, 1,106, 3,255,117,232,
/* 0x0220 */ 106, 0,232, 77, 1, 0, 0,131,196, 24, 61, 0,240,255,255,137,
/* 0x0230 */ 195, 15,135,156, 0, 0, 0,106, 0,139, 69,232,106,255,104, 18,
/* 0x0240 */ 16, 0, 0, 5,255, 15, 0, 0,106, 3, 37, 0,240,255,255,104,
/* 0x0250 */ 0, 16, 0, 0, 1,216, 80,232, 24, 1, 0, 0,131,196, 24,235,
/* 0x0260 */ 42,137,223,139,117, 12,243,164,255,117,180, 83,232, 64, 1, 0,
/* 0x0270 */ 0,139, 69,180, 41, 69,232, 1,195,139, 69,184, 41, 69, 8,139,
/* 0x0280 */ 125, 8, 1, 69, 12, 88,133,255, 90,120, 72,141,125,180,139,117,
/* 0x0290 */ 12,165,165,165,139, 77,180,131,109, 8, 12,133,201,137,117, 12,
/* 0x02a0 */ 116, 66,139, 85,184, 57,202,119, 42, 59, 85,236,119, 37, 57,202,
/* 0x02b0 */ 115,175,141, 69,168,255,117,188, 80, 83, 82,255,117, 12,137, 77,
/* 0x02c0 */ 168,255, 85,156,131,196, 20,133,192,117, 8,139, 69,168, 57, 69,
/* 0x02d0 */ 180,116,149,141, 69,196, 80,232,253, 0, 0, 0, 94,106,127,232,
/* 0x02e0 */ 181, 0, 0, 0,129,125,184, 85, 80, 88, 33,117,230,139, 77,232,
/* 0x02f0 */ 133,201,117,223,255,117,152,232,177, 0, 0, 0, 91,133,192,117,
/* 0x0300 */ 210,255,117, 28,255,117, 32,141, 85,196, 82,232,176,253,255,255,
/* 0x0310 */ 133,192,120,191,232,176, 0, 0, 0,133,192,116, 31,106, 0,106,
/* 0x0320 */ 0,106,255,232,181, 0, 0, 0,255,117, 28,255,117, 32,141, 69,
/* 0x0330 */ 196, 80,232,142, 0, 0, 0,131,196, 24,235,151,232,136, 0, 0,
/* 0x0340 */ 0,133,192,117, 37,141, 69,160,106, 0,141,117,196, 80,199, 69,
/* 0x0350 */ 160, 85, 80, 88, 52,199, 69,164, 0, 0, 0, 0,232,116, 0, 0,
/* 0x0360 */ 0, 86,232,114, 0, 0, 0,131,196, 12,106, 0,232, 40, 0, 0,
/* 0x0370 */ 0, 0, 0, 0, 85,137,229, 49,192, 80,255,117, 28, 80,255,117,
/* 0x0380 */ 24,255,117, 20,255,117, 16,255,117, 12,255,117, 8, 80,176,197,
/* 0x0390 */ 80, 80,176,198,205,128,201,195,195,176, 1, 15,182,192,205,128,
/* 0x03a0 */ 195,176, 3,235,246,176, 4,235,242,176, 5,235,238,176, 6,235,
+223 -1902
View File
File diff suppressed because it is too large Load Diff
+973 -136
View File
File diff suppressed because it is too large Load Diff
+176 -69
View File
@@ -1,5 +1,5 @@
/* i386-linux.elf-so_entry.h
created from i386-linux.elf-so_entry.bin, 1295 (0x50f) bytes
created from i386-linux.elf-so_entry.bin, 3001 (0xbb9) bytes
This file is part of the UPX executable compressor.
@@ -32,14 +32,14 @@
/* clang-format off */
#define STUB_I386_LINUX_ELF_SO_ENTRY_SIZE 1295
#define STUB_I386_LINUX_ELF_SO_ENTRY_ADLER32 0x9b5a12ef
#define STUB_I386_LINUX_ELF_SO_ENTRY_CRC32 0xae0c7724
#define STUB_I386_LINUX_ELF_SO_ENTRY_SIZE 3001
#define STUB_I386_LINUX_ELF_SO_ENTRY_ADLER32 0x202c422f
#define STUB_I386_LINUX_ELF_SO_ENTRY_CRC32 0xe8c600b0
unsigned char stub_i386_linux_elf_so_entry[1295] = {
unsigned char stub_i386_linux_elf_so_entry[3001] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 1, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 96, 1, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
/* 0x0020 */ 224, 4, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
/* 0x0030 */ 8, 0, 5, 0,144, 96,232,252,255,255,255, 1,219,116, 2,243,
/* 0x0040 */ 195,139, 30,131,238,252, 17,219,195, 94,102,131,126, 8, 2,116,
/* 0x0050 */ 1,244,141, 74,233, 81,139, 6, 80,137,229, 41,196,131,228,248,
@@ -55,67 +55,174 @@ unsigned char stub_i386_linux_elf_so_entry[1295] = {
/* 0x00f0 */ 106, 5,255,116, 36, 16,106, 0,137,227,106, 90, 88,205,128,131,
/* 0x0100 */ 196, 24, 80,137,251,106, 6, 88,205,128, 88, 80,255,224,141, 92,
/* 0x0110 */ 36, 4,106, 90, 88,205,128, 61, 0,240,255,255,114, 1,244,194,
/* 0x0120 */ 24, 0, 90,232, 17, 0, 0, 0, 0, 46,115,121,109,116, 97, 98,
/* 0x0130 */ 0, 46,115,116,114,116, 97, 98, 0, 46,115,104,115,116,114,116,
/* 0x0140 */ 97, 98, 0, 46,114,101,108, 69, 76, 70, 77, 65, 73, 78, 88, 0,
/* 0x0150 */ 46,114,101,108, 69, 76, 70, 77, 65, 73, 78, 90, 0, 0, 0, 0,
/* 0x0160 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0170 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0180 */ 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,
/* 0x0190 */ 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0,238, 0, 0, 0,
/* 0x01a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x01b0 */ 27, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x01c0 */ 232, 2, 0, 0, 8, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0,
/* 0x01d0 */ 4, 0, 0, 0, 8, 0, 0, 0, 44, 0, 0, 0, 1, 0, 0, 0,
/* 0x01e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 34, 1, 0, 0, 6, 0, 0, 0,
/* 0x01f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0200 */ 40, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0210 */ 240, 2, 0, 0, 8, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0,
/* 0x0220 */ 4, 0, 0, 0, 8, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0,
/* 0x0230 */ 0, 0, 0, 0, 0, 0, 0, 0, 40, 1, 0, 0, 53, 0, 0, 0,
/* 0x0240 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0250 */ 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0260 */ 160, 2, 0, 0, 64, 0, 0, 0, 7, 0, 0, 0, 4, 0, 0, 0,
/* 0x0270 */ 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0,
/* 0x0280 */ 0, 0, 0, 0, 0, 0, 0, 0,224, 2, 0, 0, 8, 0, 0, 0,
/* 0x0290 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x02a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x02b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0,
/* 0x02c0 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
/* 0x02d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0,
/* 0x02e0 */ 0, 95,115,116, 97,114,116, 0, 3, 0, 0, 0, 2, 3, 0, 0,
/* 0x02f0 */ 2, 0, 0, 0, 2, 1, 0, 0,102,105,108,101, 32,102,111,114,
/* 0x0300 */ 109, 97,116, 32,101,108,102, 51, 50, 45,105, 51, 56, 54, 10, 10,
/* 0x0310 */ 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,
/* 0x0320 */ 109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101,
/* 0x0330 */ 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32,
/* 0x0340 */ 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,
/* 0x0350 */ 102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10,
/* 0x0360 */ 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32,
/* 0x0370 */ 32, 32, 48,101,101, 32, 32, 48, 32, 32, 48, 32, 32, 48, 51, 52,
/* 0x0380 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
/* 0x0390 */ 10, 32, 32, 49, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32,
/* 0x03a0 */ 32, 32, 32, 48, 54, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 50,
/* 0x03b0 */ 50, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
/* 0x03c0 */ 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10,
/* 0x03d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32,
/* 0x03e0 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 69, 76, 70, 77,
/* 0x03f0 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x0400 */ 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48,
/* 0x0410 */ 32, 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x0420 */ 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x0430 */ 90, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, 82, 69,
/* 0x0440 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83,
/* 0x0450 */ 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58,
/* 0x0460 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32,
/* 0x0470 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
/* 0x0480 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 51, 32, 82, 95, 51, 56, 54,
/* 0x0490 */ 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70,
/* 0x04a0 */ 77, 65, 73, 78, 90, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79,
/* 0x04b0 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69,
/* 0x04c0 */ 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84,
/* 0x04d0 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x04e0 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48,
/* 0x04f0 */ 48, 48, 50, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32,
/* 0x0500 */ 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10
/* 0x0120 */ 24, 0, 0, 0, 85,137,229, 86, 83,131,236, 64,139,117, 8,106,
/* 0x0130 */ 64,104,255, 0, 0, 0,141, 93,184, 83,232,252,255,255,255, 83,
/* 0x0140 */ 86,232,252,255,255,255,137,194,131,196, 20,133,192,120, 21, 15,
/* 0x0150 */ 183, 69,192, 37, 0,240, 0, 0,185, 0, 0, 0, 0, 61, 0, 64,
/* 0x0160 */ 0, 0,116, 23,131,250,254,117, 16,104,192, 1, 0, 0, 86,232,
/* 0x0170 */ 252,255,255,255,137,194,131,196, 8,137,209,137,200,141,101,248,
/* 0x0180 */ 91, 94,201,195,139, 68, 36, 4,137,194,131,226, 31,131,224, 63,
/* 0x0190 */ 131,250, 26,118, 12,168, 32,116, 5,131,232, 70,235, 3,131,232,
/* 0x01a0 */ 43,131,192, 64,195, 85,137,229, 87, 86, 83,131,236, 20,232, 12,
/* 0x01b0 */ 0, 0, 0, 47,100, 97,116, 97, 47,100, 97,116, 97, 47, 0, 90,
/* 0x01c0 */ 139, 2,139, 77, 8,137, 1,139, 66, 4,137, 65, 4,102,139, 66,
/* 0x01d0 */ 8,102,137, 65, 8,138, 66, 10,136, 65, 10,198, 65, 11, 0, 81,
/* 0x01e0 */ 232, 63,255,255,255,131,196, 4,232, 19, 0, 0, 0, 47,112,114,
/* 0x01f0 */ 111, 99, 47,115,101,108,102, 47, 99,109,100,108,105,110,101, 0,
/* 0x0200 */ 94,185, 0, 0, 0, 0,137,243,137,202,106, 5, 88,205,128,137,
/* 0x0210 */ 69,232,139,117, 12,186,255, 15, 0, 0,137,195,137,241,106, 3,
/* 0x0220 */ 88,205,128,137,199,139, 93,232,106, 6, 88,205,128,137,248,133,
/* 0x0230 */ 255, 15,136,178, 0, 0, 0,198, 4, 62, 0,128, 62, 0,116, 6,
/* 0x0240 */ 70,128, 62, 0,117,250,137,240,128, 62, 47,116, 6, 78,128, 62,
/* 0x0250 */ 47,117,250, 41,240, 80, 86,139, 69, 8,131,192, 10, 80,232,252,
/* 0x0260 */ 255,255,255,137,195,198, 0, 0,255,117, 8,232,180,254,255,255,
/* 0x0270 */ 131,196, 16,232, 7, 0, 0, 0, 47, 99, 97, 99,104,101, 0, 90,
/* 0x0280 */ 139, 2,137, 3,102,139, 66, 4,102,137, 67, 4,131,195, 6,198,
/* 0x0290 */ 3, 0,255,117, 8,232,138,254,255,255,232, 5, 0, 0, 0, 47,
/* 0x02a0 */ 117,112,120, 0, 88,139, 0,137, 3,141,115, 4,106, 20, 88,205,
/* 0x02b0 */ 128,137,195,137, 4, 36,232,201,254,255,255,136, 6,137,216,193,
/* 0x02c0 */ 232, 6,137, 4, 36,232,186,254,255,255,136, 70, 1,137,216,193,
/* 0x02d0 */ 232, 12,137, 4, 36,232,170,254,255,255,131,196, 4,136, 70, 2,
/* 0x02e0 */ 198, 70, 3, 0,184, 0, 0, 0, 0,141,101,244, 91, 94, 95,201,
/* 0x02f0 */ 195, 86, 83,139,116, 36, 12,139, 92, 36, 16,139, 76, 36, 20, 73,
/* 0x0300 */ 131,249,255,116, 30,138, 22,131,202, 32, 15,190,210,138, 3,131,
/* 0x0310 */ 200, 32, 15,190,192, 67, 70, 41,194,137,208,117, 11, 73,131,249,
/* 0x0320 */ 255,117,226,184, 0, 0, 0, 0, 91, 94,195, 85,137,229, 87, 86,
/* 0x0330 */ 83,129,236, 44, 16, 0, 0,232, 4, 0, 0, 0,117,112,120, 0,
/* 0x0340 */ 91,185, 16, 0, 0, 0,186,100, 1, 0, 0,137,208,205,128,137,
/* 0x0350 */ 198,141, 68, 36, 15,131,224,240,137, 69,240,199, 0, 0, 0, 0,
/* 0x0360 */ 0, 80,232,252,255,255,255,232, 5, 0, 0, 0, 97,110,100,114,
/* 0x0370 */ 0, 88,199, 4, 36, 4, 0, 0, 0,255,117,240, 80,232,111,255,
/* 0x0380 */ 255,255,137,199,131,196, 12,133,192,117, 99,131,125, 16, 0,117,
/* 0x0390 */ 8,232,252,255,255,255,137, 69, 16,133,255,117, 81,131,254,218,
/* 0x03a0 */ 117, 76,131,125, 16, 0,116, 70,139, 85, 16,128, 58, 0,117, 22,
/* 0x03b0 */ 255,117,240, 82,232,236,253,255,255,131,196, 8,137,193,133,192,
/* 0x03c0 */ 15,136,211, 0, 0, 0,185,194, 0, 0, 0,190,192, 1, 0, 0,
/* 0x03d0 */ 139, 93, 16,137,242,106, 5, 88,205,128,137,198,137,193,133,192,
/* 0x03e0 */ 15,136,179, 0, 0, 0,139, 93, 16,106, 10, 88,205,128,131,125,
/* 0x03f0 */ 12, 0,116,106,133,255,116, 22,137,243,139, 77, 12,106, 93, 88,
/* 0x0400 */ 205,128,137,193,133,192, 15,136,141, 0, 0, 0,235, 80,104, 0,
/* 0x0410 */ 16, 0, 0,106, 0,255,117,240,232,252,255,255,255,139,125, 12,
/* 0x0420 */ 131,196, 12,133,255,116, 41,137,125,216,129,255, 0, 16, 0, 0,
/* 0x0430 */ 118, 7,199, 69,216, 0, 16, 0, 0,137,243,139, 77,240,139, 85,
/* 0x0440 */ 216,106, 4, 88,205,128, 59, 69,216,117, 64, 43,125,216,117,215,
/* 0x0450 */ 185, 0, 0, 0, 0,137,243,137,202,106, 19, 88,205,128,106, 0,
/* 0x0460 */ 86,131,125, 8, 1, 25,192,131,224,240,131,192, 17, 80,106, 3,
/* 0x0470 */ 255,117, 12,255,117, 8,232,252,255,255,255,137,194,131,196, 24,
/* 0x0480 */ 137,193, 61, 0,240,255,255,119, 16,235, 7,185,228,255,255,255,
/* 0x0490 */ 235, 7,141, 70, 1,137,193, 9,209,137,200,141,101,244, 91, 94,
/* 0x04a0 */ 95,201,195, 90,232, 17, 0, 0, 0, 0, 46,115,121,109,116, 97,
/* 0x04b0 */ 98, 0, 46,115,116,114,116, 97, 98, 0, 46,115,104,115,116,114,
/* 0x04c0 */ 116, 97, 98, 0, 46,114,101,108, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x04d0 */ 0, 46,114,101,108, 69, 76, 70, 77, 65, 73, 78, 90, 0, 0, 0,
/* 0x04e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x04f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0500 */ 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,
/* 0x0510 */ 6, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0,111, 4, 0, 0,
/* 0x0520 */ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
/* 0x0530 */ 27, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0540 */ 44, 7, 0, 0, 72, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0,
/* 0x0550 */ 4, 0, 0, 0, 8, 0, 0, 0, 44, 0, 0, 0, 1, 0, 0, 0,
/* 0x0560 */ 0, 0, 0, 0, 0, 0, 0, 0,163, 4, 0, 0, 6, 0, 0, 0,
/* 0x0570 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0580 */ 40, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0590 */ 116, 7, 0, 0, 8, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0,
/* 0x05a0 */ 4, 0, 0, 0, 8, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0,
/* 0x05b0 */ 0, 0, 0, 0, 0, 0, 0, 0,169, 4, 0, 0, 53, 0, 0, 0,
/* 0x05c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x05d0 */ 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x05e0 */ 32, 6, 0, 0,192, 0, 0, 0, 7, 0, 0, 0, 4, 0, 0, 0,
/* 0x05f0 */ 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0,
/* 0x0600 */ 0, 0, 0, 0, 0, 0, 0, 0,224, 6, 0, 0, 76, 0, 0, 0,
/* 0x0610 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0620 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0630 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0,
/* 0x0640 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0,
/* 0x0650 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
/* 0x0660 */ 8, 0, 0, 0,247, 2, 0, 0,120, 1, 0, 0, 18, 0, 1, 0,
/* 0x0670 */ 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,
/* 0x0680 */ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,
/* 0x0690 */ 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,
/* 0x06a0 */ 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,
/* 0x06b0 */ 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,
/* 0x06c0 */ 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,
/* 0x06d0 */ 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,
/* 0x06e0 */ 0, 95,115,116, 97,114,116, 0,117,112,120, 95,109,109, 97,112,
/* 0x06f0 */ 95, 97,110,100, 95,102,100, 0,109,101,109,112, 99,112,121, 0,
/* 0x0700 */ 109,109, 97,112, 0,117,110, 97,109,101, 0,103,101,116, 95,117,
/* 0x0710 */ 112,120,102,110, 95,112, 97,116,104, 0,109,101,109,115,101,116,
/* 0x0720 */ 0,115,116, 97,116, 0,109,107,100,105,114, 0, 3, 0, 0, 0,
/* 0x0730 */ 2, 2, 0, 0, 7, 1, 0, 0, 2, 9, 0, 0, 14, 1, 0, 0,
/* 0x0740 */ 2, 10, 0, 0, 60, 1, 0, 0, 2, 11, 0, 0, 43, 2, 0, 0,
/* 0x0750 */ 2, 5, 0, 0, 47, 3, 0, 0, 2, 7, 0, 0, 94, 3, 0, 0,
/* 0x0760 */ 2, 8, 0, 0,229, 3, 0, 0, 2, 9, 0, 0, 67, 4, 0, 0,
/* 0x0770 */ 2, 6, 0, 0, 2, 0, 0, 0, 2, 1, 0, 0,102,105,108,101,
/* 0x0780 */ 32,102,111,114,109, 97,116, 32,101,108,102, 51, 50, 45,105, 51,
/* 0x0790 */ 56, 54, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,
/* 0x07a0 */ 120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x07b0 */ 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32,
/* 0x07c0 */ 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,
/* 0x07d0 */ 108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108,
/* 0x07e0 */ 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x07f0 */ 32, 32, 32, 32, 32, 32, 48, 52, 54,102, 32, 32, 48, 32, 32, 48,
/* 0x0800 */ 32, 32, 48, 51, 52, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78,
/* 0x0810 */ 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, 69, 76, 70, 77, 65, 73,
/* 0x0820 */ 78, 90, 32, 32, 32, 32, 32, 32, 48, 54, 32, 32, 48, 32, 32, 48,
/* 0x0830 */ 32, 32, 48, 52, 97, 51, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
/* 0x0840 */ 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65,
/* 0x0850 */ 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x0860 */ 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48,
/* 0x0870 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48,
/* 0x0880 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65,
/* 0x0890 */ 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48,
/* 0x08a0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, 32, 32, 32,
/* 0x08b0 */ 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 95,115,116, 97,114,
/* 0x08c0 */ 116, 10, 48, 48, 48, 48, 48, 50,102, 55, 32,103, 32, 32, 32, 32,
/* 0x08d0 */ 32, 70, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 49, 55, 56,
/* 0x08e0 */ 32,117,112,120, 95,109,109, 97,112, 95, 97,110,100, 95,102,100,
/* 0x08f0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32,
/* 0x0900 */ 32, 32, 42, 85, 78, 68, 42, 32, 48, 32,109,101,109,112, 99,112,
/* 0x0910 */ 121, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32,
/* 0x0920 */ 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32,109,109, 97,112, 10,
/* 0x0930 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0940 */ 32, 42, 85, 78, 68, 42, 32, 48, 32,117,110, 97,109,101, 10, 48,
/* 0x0950 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0960 */ 42, 85, 78, 68, 42, 32, 48, 32,103,101,116, 95,117,112,120,102,
/* 0x0970 */ 110, 95,112, 97,116,104, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x0980 */ 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32,
/* 0x0990 */ 109,101,109,115,101,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x09a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32,
/* 0x09b0 */ 115,116, 97,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32,
/* 0x09c0 */ 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32,109,107,
/* 0x09d0 */ 100,105,114, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32,
/* 0x09e0 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70,
/* 0x09f0 */ 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32,
/* 0x0a00 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0a10 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x0a20 */ 51, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32,
/* 0x0a30 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48,
/* 0x0a40 */ 48, 48, 49, 48, 55, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50,
/* 0x0a50 */ 32, 32, 32, 32, 32, 32, 32, 32,109,101,109,115,101,116, 10, 48,
/* 0x0a60 */ 48, 48, 48, 48, 49, 48,101, 32, 82, 95, 51, 56, 54, 95, 80, 67,
/* 0x0a70 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,115,116, 97,116, 10, 48,
/* 0x0a80 */ 48, 48, 48, 48, 49, 51, 99, 32, 82, 95, 51, 56, 54, 95, 80, 67,
/* 0x0a90 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,107,100,105,114, 10,
/* 0x0aa0 */ 48, 48, 48, 48, 48, 50, 50, 98, 32, 82, 95, 51, 56, 54, 95, 80,
/* 0x0ab0 */ 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,101,109,112, 99,
/* 0x0ac0 */ 112,121, 10, 48, 48, 48, 48, 48, 51, 50,102, 32, 82, 95, 51, 56,
/* 0x0ad0 */ 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,117,110,
/* 0x0ae0 */ 97,109,101, 10, 48, 48, 48, 48, 48, 51, 53,101, 32, 82, 95, 51,
/* 0x0af0 */ 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,103,
/* 0x0b00 */ 101,116, 95,117,112,120,102,110, 95,112, 97,116,104, 10, 48, 48,
/* 0x0b10 */ 48, 48, 48, 51,101, 53, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51,
/* 0x0b20 */ 50, 32, 32, 32, 32, 32, 32, 32, 32,109,101,109,115,101,116, 10,
/* 0x0b30 */ 48, 48, 48, 48, 48, 52, 52, 51, 32, 82, 95, 51, 56, 54, 95, 80,
/* 0x0b40 */ 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,109, 97,112, 10,
/* 0x0b50 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79,
/* 0x0b60 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78,
/* 0x0b70 */ 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80,
/* 0x0b80 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86,
/* 0x0b90 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 50, 32, 82, 95,
/* 0x0ba0 */ 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0bb0 */ 69, 76, 70, 77, 65, 73, 78, 88, 10
};
+66 -64
View File
@@ -1,5 +1,5 @@
/* i386-linux.elf.execve-fold.h
created from i386-linux.elf.execve-fold.bin, 1095 (0x447) bytes
created from i386-linux.elf.execve-fold.bin, 1135 (0x46f) bytes
This file is part of the UPX executable compressor.
@@ -32,78 +32,80 @@
/* clang-format off */
#define STUB_I386_LINUX_ELF_EXECVE_FOLD_SIZE 1095
#define STUB_I386_LINUX_ELF_EXECVE_FOLD_ADLER32 0xd19cb5b7
#define STUB_I386_LINUX_ELF_EXECVE_FOLD_CRC32 0xc7a67867
#define STUB_I386_LINUX_ELF_EXECVE_FOLD_SIZE 1135
#define STUB_I386_LINUX_ELF_EXECVE_FOLD_ADLER32 0xdc72c842
#define STUB_I386_LINUX_ELF_EXECVE_FOLD_CRC32 0xf94d4195
unsigned char stub_i386_linux_elf_execve_fold[1095] = {
unsigned char stub_i386_linux_elf_execve_fold[1135] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 16, 64, 0,
/* 0x0040 */ 0, 16, 64, 0, 71, 4, 0, 0, 72, 4, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0, 71, 4, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 0, 16, 64, 0,111, 4, 0, 0,112, 4, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0,111, 4, 0, 0, 0, 0, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 88,137,225,141, 84,132, 4,139,123, 24,141,179,128, 0, 0, 0,
/* 0x0090 */ 41,247,141, 93, 2, 96,232, 39, 1, 0, 0,244, 83,141, 92, 36,
/* 0x0090 */ 41,247,141, 93, 2, 96,232, 43, 1, 0, 0,244, 83,141, 92, 36,
/* 0x00a0 */ 8,106, 90, 88,205,128, 91,195, 83,137,195,139, 76, 36, 8,136,
/* 0x00b0 */ 208,131,224, 31, 60, 25,118, 3,131,232, 43,131,192, 65, 75,136,
/* 0x00c0 */ 3,137,208,193,232, 5,137,194,226,229, 91,195, 85,137,229, 87,
/* 0x00d0 */ 86, 49,255, 83,137,249,131,236, 96,137,250,139, 93, 8,106, 5,
/* 0x00e0 */ 88,205,128,133,192,137,198, 15,136,199, 0, 0, 0,199, 69,212,
/* 0x00f0 */ 47,112,114,111,199, 69,216, 99, 47, 0, 0,106, 20, 88,205,128,
/* 0x0100 */ 141, 85,218,141, 93,212,232, 25, 3, 0, 0,141, 80, 4,199, 0,
/* 0x0110 */ 47,102,100, 47,137,240,232, 9, 3, 0, 0,186, 1, 0, 0, 0,
/* 0x0120 */ 106, 33, 88,106, 5, 89,205,128, 61, 85, 80, 88, 50,117,126,139,
/* 0x0130 */ 93, 8,106, 10, 88,205,128,185, 2, 0, 0, 0,137,243,106, 55,
/* 0x0140 */ 88,205,128,141, 93,212,139, 77, 12,139, 85, 16,106, 11, 88,205,
/* 0x0150 */ 128,186, 2, 0, 0, 0,137,243,137,249,106, 19, 88,205,128,106,
/* 0x0160 */ 0,137,199, 86,106, 2,106, 3, 80,106, 0,232, 44,255,255,255,
/* 0x0170 */ 131,196, 24,137, 69,152,185,193, 0, 0, 0,186,192, 1, 0, 0,
/* 0x0180 */ 139, 93, 8,106, 5, 88,205,128,137, 69,148,137,195,139, 77,152,
/* 0x0190 */ 137,250,106, 4, 88,205,128, 57,199,116, 10,106,127, 91,106, 1,
/* 0x01a0 */ 88,205,128,235,254,139, 93,148,106, 6, 88,205,128,137,243,106,
/* 0x01b0 */ 6, 88,205,128,141,101,244,137,240, 91, 94, 95,201,194, 12, 0,
/* 0x01c0 */ 204,195, 85,137,229, 87, 86, 83,131,236,124,141,125,228,139, 69,
/* 0x01d0 */ 16,139,117, 12,137, 69,156,165,165,165,131,109, 8, 12,129,125,
/* 0x01e0 */ 228, 85, 80, 88, 51,137,117, 12,116, 4,106, 11,235,107,199, 69,
/* 0x01f0 */ 196, 47,116,109,112,199, 69,200, 47,117,112,120,141, 77,215,106,
/* 0x0200 */ 20, 88,205,128,137,194,106, 4,137,200,141,125,211,232,150,254,
/* 0x0210 */ 255,255,139, 85,228,198, 69,215, 0, 49,201, 49,208,141, 93,172,
/* 0x0220 */ 137, 69,132,106, 78, 88,205,128,139, 85,172,137,248, 49, 85,132,
/* 0x0230 */ 139, 85,176,199, 4, 36, 7, 0, 0, 0,141, 93,196,193,226, 12,
/* 0x0240 */ 51, 85,132,232, 96,254,255,255, 89,106, 10, 88,205,128,131,248,
/* 0x0250 */ 254,116, 17,133,192,116, 13,106, 12,232, 98,255,255,255, 90,233,
/* 0x0260 */ 43, 1, 0, 0,185,194, 0, 0, 0,186,192, 1, 0, 0,141, 93,
/* 0x0270 */ 196,106, 5, 88,205,128,139, 85,232,137, 69,148,137,195,137,209,
/* 0x0280 */ 106, 93, 88,205,128,133,192,116, 7,106, 14,233,137, 1, 0, 0,
/* 0x0290 */ 106, 0,255,117,148,106, 1,141,130, 0, 16, 0, 0,106, 3, 80,
/* 0x02a0 */ 106, 0,232,245,253,255,255,131,196, 24, 61, 0,240,255,255,137,
/* 0x02b0 */ 69,136,118, 7,106, 15,233, 94, 1, 0, 0,139, 69,232,106, 0,
/* 0x02c0 */ 106,255, 5,255, 15, 0, 0,106, 50, 37, 0,240,255,255,106, 3,
/* 0x02d0 */ 3, 69,136,104, 0, 16, 0, 0, 80,232,190,253,255,255,131,196,
/* 0x02e0 */ 24,141,125,180,139,117, 12,165,165,165,139, 77,180,131,109, 8,
/* 0x02f0 */ 12,133,201,137,117, 12,139, 85,184,117, 32,129,250, 85, 80, 88,
/* 0x0300 */ 33,116, 7,106, 17,233, 15, 1, 0, 0,131,125,232, 0, 15,132,
/* 0x0310 */ 133, 0, 0, 0,106, 18,233,254, 0, 0, 0, 57,202,119, 5, 59,
/* 0x0320 */ 85,236,118, 7,106, 19,233,238, 0, 0, 0, 57,202,115, 42,141,
/* 0x0330 */ 69,168,255,117,188, 80,255,117,136, 82,255,117, 12,137, 77,168,
/* 0x0340 */ 255, 85,156,131,196, 20,133,192,117, 8,139, 69,180, 57, 69,168,
/* 0x0350 */ 116, 15,106, 20,233,192, 0, 0, 0,139,125,136,139,117, 12,243,
/* 0x0360 */ 164,139, 85,180,139, 93,136,137,209,106, 91, 88,205,128,139, 69,
/* 0x0370 */ 184, 41, 69, 8, 1, 85,136, 41, 85,232, 1, 69, 12,131,125, 8,
/* 0x0380 */ 0, 15,137, 90,255,255,255,141, 93,196,106, 10, 88,205,128,106,
/* 0x0390 */ 127, 91,106, 1, 88,205,128,235,254,139, 93,148,106, 6, 88,205,
/* 0x03a0 */ 128,133,192,116, 4,106, 22,235,112,255,117, 28,255,117, 32,141,
/* 0x03b0 */ 117,196, 86,232, 20,253,255,255,133,192,121, 4,106, 23,235, 89,
/* 0x03c0 */ 106, 2, 88,205,128,133,192,117, 52,106, 2, 88,205,128,133,192,
/* 0x03d0 */ 137,193,117, 32,199, 69,160, 85, 80, 88, 52,184,162, 0, 0, 0,
/* 0x03e0 */ 141, 93,160,199, 69,164, 0, 0, 0, 0,205,128,141, 93,196,106,
/* 0x03f0 */ 10, 88,205,128, 49,219,106, 1, 88,205,128,235,254, 49,201,131,
/* 0x0400 */ 203,255,137,202,106, 7, 88,205,128,141, 93,196,139, 77, 32,139,
/* 0x0410 */ 85, 28,106, 11, 88,205,128,106, 24,232,162,253,255,255, 88,233,
/* 0x0420 */ 99,255,255,255, 87,137,215,106, 10,252, 89,232, 5, 0, 0, 0,
/* 0x0430 */ 136, 39,151, 95,195,153,247,241, 82,133,192,116, 5,232,243,255,
/* 0x0440 */ 255,255, 88, 4, 48,170,195
/* 0x00d0 */ 86,191, 0, 0, 0, 0, 83,137,249,131,236, 96,137,250,139, 93,
/* 0x00e0 */ 8,106, 5, 88,205,128,133,192,137,198,120, 73,199, 69,212, 47,
/* 0x00f0 */ 112,114,111,199, 69,216, 99, 47, 0, 0,106, 20, 88,205,128,141,
/* 0x0100 */ 85,218,141, 93,212,232, 66, 3, 0, 0,141, 80, 4,199, 0, 47,
/* 0x0110 */ 102,100, 47,137,240,232, 50, 3, 0, 0,186, 1, 0, 0, 0,106,
/* 0x0120 */ 33, 88,106, 5, 89,205,128, 61, 85, 80, 88, 50,116, 19,137,243,
/* 0x0130 */ 106, 6, 88,205,128,141,101,244,137,240, 91, 94, 95,201,194, 12,
/* 0x0140 */ 0,139, 93, 8,106, 10, 88,205,128,185, 2, 0, 0, 0,137,243,
/* 0x0150 */ 106, 55, 88,205,128,141, 93,212,139, 77, 12,139, 85, 16,106, 11,
/* 0x0160 */ 88,205,128,186, 2, 0, 0, 0,137,243,137,249,106, 19, 88,205,
/* 0x0170 */ 128,106, 0,137,199, 86,106, 2,106, 3, 80,106, 0,232, 26,255,
/* 0x0180 */ 255,255,131,196, 24,137, 69,152,185,193, 0, 0, 0,186,192, 1,
/* 0x0190 */ 0, 0,139, 93, 8,106, 5, 88,205,128,137, 69,148,137,195,139,
/* 0x01a0 */ 77,152,137,250,106, 4, 88,205,128, 57,248,116, 10,106,127, 91,
/* 0x01b0 */ 106, 1, 88,205,128,235,254,139, 93,148,106, 6, 88,205,128,233,
/* 0x01c0 */ 106,255,255,255,204,195, 85,137,229, 87, 86, 83,131,236,120,141,
/* 0x01d0 */ 125,228,139, 69, 16,139,117, 12,137, 69,156,165,165,165,131,109,
/* 0x01e0 */ 8, 12,129,125,228, 85, 80, 88, 51,137,117, 12, 15,133,203, 1,
/* 0x01f0 */ 0, 0,199, 69,196, 47,116,109,112,199, 69,200, 47,117,112,120,
/* 0x0200 */ 141, 77,215,106, 20, 88,205,128,137,194,106, 4,137,200,141,125,
/* 0x0210 */ 211,232,146,254,255,255,139, 85,228,198, 69,215, 0,185, 0, 0,
/* 0x0220 */ 0, 0, 49,208,141, 93,172,137, 69,136,106, 78, 88,205,128,139,
/* 0x0230 */ 85,172,137,248, 49, 85,136,139, 85,176,199, 4, 36, 7, 0, 0,
/* 0x0240 */ 0,141, 93,196,193,226, 12, 51, 85,136,232, 89,254,255,255, 94,
/* 0x0250 */ 106, 10, 88,205,128,131,248,254,116, 8,133,192, 15,133,109, 1,
/* 0x0260 */ 0, 0,185,194, 0, 0, 0,186,192, 1, 0, 0,141, 93,196,106,
/* 0x0270 */ 5, 88,205,128,139, 85,232,137, 69,148,137,195,137,209,106, 93,
/* 0x0280 */ 88,205,128,133,192, 15,133,145, 1, 0, 0,106, 0,255,117,148,
/* 0x0290 */ 106, 1,141,130, 0, 16, 0, 0,106, 3, 80,106, 0,232,250,253,
/* 0x02a0 */ 255,255,131,196, 24, 61, 0,240,255,255,137, 69,140, 15,135,101,
/* 0x02b0 */ 1, 0, 0,139, 69,232,106, 0,106,255, 5,255, 15, 0, 0,106,
/* 0x02c0 */ 50, 37, 0,240,255,255,106, 3, 3, 69,140,104, 0, 16, 0, 0,
/* 0x02d0 */ 80,232,198,253,255,255,131,196, 24,235, 75,139, 69,184, 57,200,
/* 0x02e0 */ 15,135,237, 0, 0, 0, 59, 69,236, 15,135,228, 0, 0, 0, 57,
/* 0x02f0 */ 200, 15,130,238, 0, 0, 0,139,125,140,139,117, 12,243,164,139,
/* 0x0300 */ 85,180,139, 93,140,137,209,106, 91, 88,205,128,139, 69,184, 41,
/* 0x0310 */ 69, 8, 1, 85,140, 41, 85,232,139, 85, 8, 1, 69, 12,133,210,
/* 0x0320 */ 15,136,181, 0, 0, 0,141,125,180,139,117, 12,165,165,165,139,
/* 0x0330 */ 77,180,131,109, 8, 12,133,201,137,117, 12,117,158,129,125,184,
/* 0x0340 */ 85, 80, 88, 33, 15,133,202, 0, 0, 0,139, 77,232,133,201, 15,
/* 0x0350 */ 133,242, 0, 0, 0,139, 93,148,106, 6, 88,205,128,133,192, 15,
/* 0x0360 */ 133,171, 0, 0, 0,255,117, 28,255,117, 32,141,117,196, 86,232,
/* 0x0370 */ 88,253,255,255,133,192, 15,136,199, 0, 0, 0,106, 2, 88,205,
/* 0x0380 */ 128,133,192, 15,133,151, 0, 0, 0,106, 2, 88,205,128,133,192,
/* 0x0390 */ 137,193,117, 32,199, 69,160, 85, 80, 88, 52,184,162, 0, 0, 0,
/* 0x03a0 */ 141, 93,160,199, 69,164, 0, 0, 0, 0,205,128,141, 93,196,106,
/* 0x03b0 */ 10, 88,205,128, 49,219,106, 1, 88,205,128,235,254,106, 11,232,
/* 0x03c0 */ 0,254,255,255, 91,106,127, 91,106, 1, 88,205,128,235,254,106,
/* 0x03d0 */ 12,235,236,106, 19,232,234,253,255,255, 88,141, 93,196,106, 10,
/* 0x03e0 */ 88,205,128,235,224,141, 85,168,255,117,188, 82,255,117,140, 80,
/* 0x03f0 */ 255,117, 12,137, 77,168,255, 85,156,131,196, 20,133,192,117, 12,
/* 0x0400 */ 139, 85,180, 59, 85,168, 15,132,246,254,255,255,106, 20,235,197,
/* 0x0410 */ 106, 22,235,193,106, 17,235,189,106, 15,235,185,106, 14,235,181,
/* 0x0420 */ 185, 0, 0, 0, 0,187,255,255,255,255,137,202,106, 7, 88,205,
/* 0x0430 */ 128,141, 93,196,139, 77, 32,139, 85, 28,106, 11, 88,205,128,106,
/* 0x0440 */ 24,235,146,106, 23,235,142,106, 18,235,138, 0, 87,137,215,106,
/* 0x0450 */ 10,252, 89,232, 5, 0, 0, 0,136, 39,151, 95,195,153,247,241,
/* 0x0460 */ 82,133,192,116, 5,232,243,255,255,255, 88, 4, 48,170,195
};
+101 -90
View File
@@ -1,5 +1,5 @@
/* i386-linux.elf.interp-fold.h
created from i386-linux.elf.interp-fold.bin, 1525 (0x5f5) bytes
created from i386-linux.elf.interp-fold.bin, 1699 (0x6a3) bytes
This file is part of the UPX executable compressor.
@@ -32,105 +32,116 @@
/* clang-format off */
#define STUB_I386_LINUX_ELF_INTERP_FOLD_SIZE 1525
#define STUB_I386_LINUX_ELF_INTERP_FOLD_ADLER32 0x416b996b
#define STUB_I386_LINUX_ELF_INTERP_FOLD_CRC32 0x97caa5e0
#define STUB_I386_LINUX_ELF_INTERP_FOLD_SIZE 1699
#define STUB_I386_LINUX_ELF_INTERP_FOLD_ADLER32 0x99edeba0
#define STUB_I386_LINUX_ELF_INTERP_FOLD_CRC32 0x216ca19d
unsigned char stub_i386_linux_elf_interp_fold[1525] = {
unsigned char stub_i386_linux_elf_interp_fold[1699] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 3, 0, 1, 0, 0, 0,116, 0, 1, 0, 52, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
/* 0x0040 */ 0, 0, 1, 0,245, 5, 0, 0,248, 5, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0,245, 5, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 0, 0, 1, 0,163, 6, 0, 0,164, 6, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0,163, 6, 0, 0, 0, 0, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 16, 0, 0, 93, 89, 88,141,124,132, 4, 80, 41,192,175,117,
/* 0x0080 */ 253,175,137,254,139, 6,131,248, 3,116, 8,131,198, 8,131,248,
/* 0x0090 */ 0,117,241,139, 94, 4, 83,129,236, 0, 10, 0, 0,137,226, 81,
/* 0x00a0 */ 141, 67, 88,139,115, 24, 41,198,139, 24,139, 72, 4,131,193, 12,
/* 0x00b0 */ 96,232, 68, 4, 0, 0,129,196, 36, 10, 0, 0, 91, 80,139, 75,
/* 0x00b0 */ 96,232,233, 4, 0, 0,129,196, 36, 10, 0, 0, 91, 80,139, 75,
/* 0x00c0 */ 20,139, 91, 8,184, 91, 0, 0, 0,205,128, 41,192, 41,201, 41,
/* 0x00d0 */ 210, 41,219, 41,237, 41,246, 41,255,195, 83,141, 92, 36, 8,106,
/* 0x00e0 */ 90, 88,205,128, 91,195, 0, 0, 87, 86,137,206, 83,137,195, 57,
/* 0x00f0 */ 8,139,120, 4,115, 10,106,127, 91,106, 1, 88,205,128,235,254,
/* 0x0100 */ 133,201,116, 8,138, 7, 71,136, 2, 66,226,248, 1,115, 4, 41,
/* 0x0110 */ 51, 91, 94, 95,195, 85,137,229, 87, 86,137,198, 83,137,211,131,
/* 0x0120 */ 236, 20,139,125, 12,131, 58, 0, 15,132,185, 0, 0, 0,141, 85,
/* 0x0130 */ 228,185, 12, 0, 0, 0,137,240,232,171,255,255,255,139, 69,228,
/* 0x0140 */ 139, 77,232,133,192,117, 19,129,249, 85, 80, 88, 33,117, 15,131,
/* 0x0150 */ 62, 0, 15,132,143, 0, 0, 0,235, 4,133,201,117, 10,106,127,
/* 0x0160 */ 91,106, 1, 88,205,128,235,254, 57,193,119,242, 59, 3,119,238,
/* 0x0170 */ 57,193,115, 86,137, 69,224, 15,182, 69,236, 80,255, 85, 8, 90,
/* 0x0180 */ 141, 85,224,255,117,236, 82,255,115, 4,255,117,232,255,118, 4,
/* 0x0190 */ 255, 16,131,196, 20,133,192,117,197,139, 69,228, 57, 69,224,117,
/* 0x01a0 */ 189,138, 69,237,132,192,116, 24, 15,182,192, 80,255,215, 15,182,
/* 0x01b0 */ 85,238,137, 20, 36,255,117,224,255,115, 4,255, 16,131,196, 12,
/* 0x01c0 */ 139, 69,232, 1, 70, 4, 41, 6,235, 10,139, 83, 4,137,240,232,
/* 0x01d0 */ 20,255,255,255,139, 85,228,139, 3, 1, 83, 4, 41,208,133,192,
/* 0x01e0 */ 137, 3,233, 65,255,255,255,141,101,244, 91, 94, 95,201,195,133,
/* 0x01f0 */ 210,137,209,116, 6,198, 0, 0, 64,226,250,195,133,192, 83,137,
/* 0x0200 */ 195,116, 35,168, 1,117, 31,139, 3, 57,208,116, 9,131,248, 1,
/* 0x0210 */ 117, 11,133,210,116, 11,137, 19,137, 75, 4,235, 9,133,192,116,
/* 0x0220 */ 5,131,195, 8,235,225, 91,195, 85,137,229, 87, 86, 83,131,236,
/* 0x0230 */ 84,137, 69,228,139, 69, 8,137, 85,224,139, 77, 16,137, 69,220,
/* 0x0240 */ 3, 64, 28,139, 93,220,137, 77,212,139, 85, 12,137, 69,208, 49,
/* 0x0250 */ 192,102,131,123, 16, 3,137, 85,216, 15,183, 75, 44,139, 85,208,
/* 0x0260 */ 15,149,192,131,206,255,193,224, 4,131,192, 34, 49,219,137, 69,
/* 0x0270 */ 184,137,200, 49,255, 72,120, 31,131, 58, 1,117, 21,139, 66, 8,
/* 0x0280 */ 57,240,115, 5,137,198,139,122, 16, 3, 66, 20, 57,195,115, 2,
/* 0x0290 */ 137,195,131,194, 32,226,225,137,240,129,230, 0,240,255,255,106,
/* 0x02a0 */ 0, 41,243,106, 0, 37,255, 15, 0, 0,137,117,188,141,179,255,
/* 0x02b0 */ 15, 0, 0,255,117,184,129,230, 0,240,255,255,106, 7, 86,255,
/* 0x02c0 */ 117,188,141,188, 7,255, 15, 0, 0,232, 12,254,255,255,129,231,
/* 0x02d0 */ 0,240,255,255,137,194,137,195, 1,242, 41,254,131,196, 24,137,
/* 0x02e0 */ 69,172,137, 85,240, 1,251,137,241,106, 91, 88,205,128,139, 69,
/* 0x02f0 */ 220,199, 69,196, 0, 0, 0, 0,139, 93,172, 43, 93,188,102,131,
/* 0x0300 */ 120, 44, 0,137, 93,204, 15,132,180, 1, 0, 0,139, 85,208,139,
/* 0x0310 */ 2,131,248, 6,117, 24,139, 77,204, 3, 74, 8,186, 3, 0, 0,
/* 0x0320 */ 0,139, 69,212,232,211,254,255,255,233,123, 1, 0, 0, 72, 15,
/* 0x0330 */ 133,116, 1, 0, 0,139, 93,208,199, 69,192, 64, 98, 81,115,139,
/* 0x0340 */ 75, 24,139, 67, 8,131,225, 7,139, 83, 16,193,225, 2,137, 69,
/* 0x0350 */ 236,211,109,192,137,193, 3, 75, 20,137,195,129,227,255, 15, 0,
/* 0x0360 */ 0,137, 85,232,141, 60, 26,139, 85,204, 41,216,131,101,192, 7,
/* 0x0370 */ 1,209,141, 52, 16,137, 77,176,139, 77,208,139, 65, 4, 41,216,
/* 0x0380 */ 131,125,216, 1, 80,255,117,228, 25,192,131,224,224,131,192, 50,
/* 0x0390 */ 131,125,216, 0, 80,137,248,106, 3,116, 3,141, 71, 3, 80, 86,
/* 0x03a0 */ 232, 53,253,255,255,131,196, 24, 57,198, 15,133,170, 0, 0, 0,
/* 0x03b0 */ 131,125,216, 0,116, 19,255,117,224,255,117,228,139, 69,216,141,
/* 0x03c0 */ 85,232,232, 78,253,255,255, 89, 88,137,218,137,251,137,240,247,
/* 0x03d0 */ 219,232, 25,254,255,255,129,227,255, 15, 0, 0,141, 4, 62,137,
/* 0x03e0 */ 218,137, 93,180,232, 6,254,255,255,131,125,216, 0,116, 91,139,
/* 0x03f0 */ 69,208,131, 56, 1,117, 83,246, 64, 24, 1,116, 77,139, 93,208,
/* 0x0400 */ 137,194,139, 64, 20, 59, 67, 16,139, 82, 8,141, 12, 16,117, 14,
/* 0x0410 */ 137,200,247,216, 37,255, 15, 0, 0,131,248, 3,119, 12,139, 69,
/* 0x0420 */ 208,141, 74, 12,131,120, 4, 0,117, 15,139, 1, 61,205,128, 97,
/* 0x0430 */ 195,116, 6,199, 1,205,128, 97,195,133,201,116, 13,139, 69,212,
/* 0x0440 */ 49,210,131,224,254,232,178,253,255,255,137,243,137,249,139, 85,
/* 0x0450 */ 192,106,125, 88,205,128,133,192,116, 10,106,127, 91,106, 1, 88,
/* 0x0460 */ 205,128,235,254,139, 85,180,141, 4, 23,141, 28, 6, 59, 93,176,
/* 0x0470 */ 115, 30,106, 0,106, 0,106, 50,255,117,192, 41, 93,176,255,117,
/* 0x0480 */ 176, 83,232, 83,252,255,255,131,196, 24, 57,195,116, 27,235,202,
/* 0x0490 */ 131,125,216, 0,116, 19,141, 79, 3,129,225,255, 15, 0, 0,131,
/* 0x04a0 */ 249, 3,119, 5,106, 91, 88,205,128,139, 77,220,255, 69,196, 15,
/* 0x04b0 */ 183, 65, 44,131, 69,208, 32, 57, 69,196, 15,140, 76,254,255,255,
/* 0x04c0 */ 131,125,216, 0,117, 14,139, 93,228,106, 6, 88,205,128,133,192,
/* 0x04d0 */ 116, 20,235,134,139, 69,220,102,131,120, 16, 3,116, 8,139, 93,
/* 0x04e0 */ 240,106, 45, 88,205,128,139, 85,220,139, 82, 24, 1, 85,204,139,
/* 0x04f0 */ 69,204,141,101,244, 91, 94, 95,201,195, 85,137,229, 87, 86, 83,
/* 0x0500 */ 131,236, 16,141, 85, 24,139,125, 20,255,117, 40,141, 71, 52,139,
/* 0x0510 */ 93, 8,255,117, 16,137, 69,240,139,117, 32,141, 69, 32,232,242,
/* 0x0520 */ 251,255,255,139, 85,240,139, 69, 12,139, 74, 8,186, 3, 0, 0,
/* 0x0530 */ 0,137, 69, 32,137,216,131,193, 52, 41,117, 36,232,187,252,255,
/* 0x0540 */ 255, 15,183, 79, 42,137,216,186, 4, 0, 0, 0,232,171,252,255,
/* 0x0550 */ 255, 15,183, 79, 44,137,216,186, 5, 0, 0, 0,232,155,252,255,
/* 0x0560 */ 255,139, 79, 24,137,216,186, 9, 0, 0, 0,232,140,252,255,255,
/* 0x0570 */ 141, 69, 32, 83,139, 85, 40, 80,139, 69, 16, 87,232,167,252,255,
/* 0x0580 */ 255,102,139, 79, 44,131,196, 20, 49,210,102,133,201,137,195,116,
/* 0x0590 */ 90,139, 69,240,131, 56, 3,117, 70, 49,201,139, 88, 8,137,202,
/* 0x05a0 */ 106, 5, 88,205,128,133,192,137,198,120, 21,186, 0, 2, 0, 0,
/* 0x05b0 */ 137,195,137,249,106, 3, 88,205,128, 61, 0, 2, 0, 0,116, 10,
/* 0x05c0 */ 106,127, 91,106, 1, 88,205,128,235,254,106, 0, 49,210,106, 0,
/* 0x05d0 */ 137,240, 87,232, 80,252,255,255,131,196, 12,137,195,235, 12, 66,
/* 0x05e0 */ 15,183,193,131, 69,240, 32, 57,194,124,166,141,101,244,137,216,
/* 0x05f0 */ 91, 94, 95,201,195
/* 0x00e0 */ 90, 88,205,128, 91,195, 0, 0, 85, 87,137,215, 86,137,206, 83,
/* 0x00f0 */ 137,195,139, 19,139, 64, 4, 57,202,137,197,115, 10,106,127, 91,
/* 0x0100 */ 106, 1, 88,205,128,235,254,133,201,116, 14,138, 69, 0, 69,136,
/* 0x0110 */ 7, 71,226,247,139, 67, 4,139, 19, 1,240, 41,242,137, 67, 4,
/* 0x0120 */ 137, 19, 91, 94, 95, 93,195, 85,137,229, 87, 86,137,198, 83,137,
/* 0x0130 */ 211,131,236, 20,131, 58, 0,139,125, 8, 15,132,133, 0, 0, 0,
/* 0x0140 */ 141, 85,228,137,240,185, 12, 0, 0, 0,232,153,255,255,255,139,
/* 0x0150 */ 69,228,133,192, 15,132,160, 0, 0, 0,139, 77,232,133,201, 15,
/* 0x0160 */ 132,164, 0, 0, 0, 57,193, 15,135,156, 0, 0, 0, 59, 3, 15,
/* 0x0170 */ 135,148, 0, 0, 0, 57,193,115, 84,137, 69,224, 15,182, 69,236,
/* 0x0180 */ 80,255,215, 90,141, 85,224,255,117,236, 82,255,115, 4,255,117,
/* 0x0190 */ 232,255,118, 4,255, 16,131,196, 20,133,192,117,108,139, 85,228,
/* 0x01a0 */ 59, 85,224,117,100,138, 69,237,132,192,117, 48,139, 69,232, 1,
/* 0x01b0 */ 70, 4, 41, 6,139, 3, 1, 83, 4, 41,208,137, 3,133,192, 15,
/* 0x01c0 */ 133,123,255,255,255,141,101,244, 91, 94, 95,201,195,139, 83, 4,
/* 0x01d0 */ 137,240,232, 17,255,255,255,139, 85,228,235,216, 15,182,192, 80,
/* 0x01e0 */ 255, 85, 12, 15,182, 85,238,137, 20, 36,255,117,224,255,115, 4,
/* 0x01f0 */ 255, 16,139, 85,228,131,196, 12,235,178,129,125,232, 85, 80, 88,
/* 0x0200 */ 33,117, 6,139, 14,133,201,116,188,106,127, 91,106, 1, 88,205,
/* 0x0210 */ 128,235,254,133,210,116, 8,137,209,198, 0, 0, 64,226,250,195,
/* 0x0220 */ 133,192, 83,137,195,116, 33,168, 1,117, 29,139, 3, 57,208,116,
/* 0x0230 */ 18,131,248, 1,116, 20,133,192,116, 14,131,195, 8,139, 3, 57,
/* 0x0240 */ 208,117,238,137, 19,137, 75, 4, 91,195,133,210,117,245,131,195,
/* 0x0250 */ 8,235,234, 85,137,229, 87, 86,191, 0, 0, 0, 0, 83,190, 0,
/* 0x0260 */ 0, 0, 0,131,236, 84,137, 69,228,139, 69, 8,137, 85,224,139,
/* 0x0270 */ 77, 16,137, 69,220, 3, 64, 28,139, 93,220,137, 77,212,139, 85,
/* 0x0280 */ 12,102,131,123, 16, 3,137, 69,208,184, 0, 0, 0, 0, 15,183,
/* 0x0290 */ 75, 44,137, 85,216,187,255,255,255,255, 15,149,192,139, 85,208,
/* 0x02a0 */ 193,224, 4,131,192, 34,137, 69,184,137,200, 72,120, 14,131, 58,
/* 0x02b0 */ 1, 15,132,249, 1, 0, 0,131,194, 32,226,242,106, 0,137,216,
/* 0x02c0 */ 129,227, 0,240,255,255,106, 0, 41,222,255,117,184,129,198,255,
/* 0x02d0 */ 15, 0, 0,106, 7,129,230, 0,240,255,255, 37,255, 15, 0, 0,
/* 0x02e0 */ 86, 83,141,188, 7,255, 15, 0, 0,137, 93,188,232,233,253,255,
/* 0x02f0 */ 255,129,231, 0,240,255,255,137,194, 1,242,137,195, 41,254,131,
/* 0x0300 */ 196, 24,137, 69,172, 1,251,137, 85,240,137,241,106, 91, 88,205,
/* 0x0310 */ 128,139, 69,220,139, 93,172,199, 69,196, 0, 0, 0, 0, 43, 93,
/* 0x0320 */ 188,102,139, 80, 44,102,133,210,137, 93,204,117, 24,233, 77, 1,
/* 0x0330 */ 0, 0,255, 69,196, 15,183,194,131, 69,208, 32, 59, 69,196, 15,
/* 0x0340 */ 142, 58, 1, 0, 0,139, 77,208,139, 1,131,248, 6, 15,132,253,
/* 0x0350 */ 1, 0, 0, 72,117,220,139, 85,208,199, 69,192, 64, 98, 81,115,
/* 0x0360 */ 139, 74, 24,131,225, 7,193,225, 2,211,109,192,137,209,139, 65,
/* 0x0370 */ 8,139, 82, 16,137,195,139, 73, 20,129,227,255, 15, 0, 0,137,
/* 0x0380 */ 85,232,141, 52, 26,139, 85,204, 1,193,137, 69,236, 1,209, 41,
/* 0x0390 */ 216,137, 77,176,139, 77,208,141, 60, 16,139, 85,216,139, 65, 4,
/* 0x03a0 */ 131,101,192, 7, 41,216,131,125,216, 1, 80,255,117,228, 25,192,
/* 0x03b0 */ 131,224,224,131,192, 50,133,210, 80,137,240,106, 3,116, 3,141,
/* 0x03c0 */ 70, 3, 80, 87,232, 17,253,255,255,131,196, 24, 57,248, 15,133,
/* 0x03d0 */ 174, 1, 0, 0,139, 77,216,133,201,116, 19,255,117,224,255,117,
/* 0x03e0 */ 228,141, 85,232,139, 69,216,232, 59,253,255,255, 88, 90,137,218,
/* 0x03f0 */ 137,243,137,248,247,219,232, 24,254,255,255,129,227,255, 15, 0,
/* 0x0400 */ 0,141, 4, 55,137,218,137, 93,180,232, 5,254,255,255,139, 69,
/* 0x0410 */ 216,133,192,116, 12,139, 69,208,131, 56, 1, 15,132,217, 0, 0,
/* 0x0420 */ 0,137,251,137,241,139, 85,192,106,125, 88,205,128,133,192, 15,
/* 0x0430 */ 133, 77, 1, 0, 0,139, 85,180,141, 4, 22,141, 28, 7, 59, 93,
/* 0x0440 */ 176, 15,130,135, 0, 0, 0,139,125,216,133,255, 15,132, 20, 1,
/* 0x0450 */ 0, 0,141, 78, 3,129,225,255, 15, 0, 0,131,249, 3,119, 5,
/* 0x0460 */ 106, 91, 88,205,128,139, 77,220,255, 69,196,102,139, 81, 44,131,
/* 0x0470 */ 69,208, 32, 15,183,194, 59, 69,196, 15,143,198,254,255,255,139,
/* 0x0480 */ 93,216,133,219, 15,132,232, 0, 0, 0,139, 69,220,102,131,120,
/* 0x0490 */ 16, 3,116, 8,139, 93,240,106, 45, 88,205,128,139, 85,220,139,
/* 0x04a0 */ 82, 24, 1, 85,204,139, 69,204,141,101,244, 91, 94, 95,201,195,
/* 0x04b0 */ 139, 66, 8, 57,216,115, 5,137,195,139,122, 16, 3, 66, 20, 57,
/* 0x04c0 */ 240, 15,134,240,253,255,255,137,198,233,233,253,255,255,106, 0,
/* 0x04d0 */ 106, 0,106, 50,255,117,192, 41, 93,176,255,117,176, 83,232,247,
/* 0x04e0 */ 251,255,255,131,196, 24, 57,216, 15,133,148, 0, 0, 0,139, 93,
/* 0x04f0 */ 220,102,139, 83, 44,233, 56,254,255,255,246, 64, 24, 1, 15,132,
/* 0x0500 */ 29,255,255,255,139, 93,208,137,194,139, 64, 20, 59, 67, 16,139,
/* 0x0510 */ 82, 8,141, 12, 16,116,117,139, 69,208,141, 74, 12,139, 64, 4,
/* 0x0520 */ 133,192,117, 15,139, 1, 61,205,128, 97,195,116, 6,199, 1,205,
/* 0x0530 */ 128, 97,195,133,201, 15,132,230,254,255,255,139, 69,212,186, 0,
/* 0x0540 */ 0, 0, 0,131,224,254,232,213,252,255,255,233,209,254,255,255,
/* 0x0550 */ 139, 93,208,186, 3, 0, 0, 0,139, 77,204, 3, 75, 8,139, 69,
/* 0x0560 */ 212,232,186,252,255,255,139, 69,220,102,139, 80, 44,233,192,253,
/* 0x0570 */ 255,255,139, 93,228,106, 6, 88,205,128,133,192, 15,132, 26,255,
/* 0x0580 */ 255,255,106,127, 91,106, 1, 88,205,128,235,254,137,200,247,216,
/* 0x0590 */ 37,255, 15, 0, 0,131,248, 3,119,138,233,120,255,255,255, 85,
/* 0x05a0 */ 137,229, 87, 86, 83,131,236, 16,141, 85, 24,139,125, 20,255,117,
/* 0x05b0 */ 40,141, 71, 52,139, 93, 8,255,117, 16,137, 69,240,139,117, 32,
/* 0x05c0 */ 141, 69, 32,232, 95,251,255,255,139, 85,240,139, 69, 12,139, 74,
/* 0x05d0 */ 8,186, 3, 0, 0, 0,137, 69, 32,137,216,131,193, 52, 41,117,
/* 0x05e0 */ 36,232, 58,252,255,255, 15,183, 79, 42,137,216,186, 4, 0, 0,
/* 0x05f0 */ 0,232, 42,252,255,255, 15,183, 79, 44,137,216,186, 5, 0, 0,
/* 0x0600 */ 0,232, 26,252,255,255,139, 79, 24,137,216,186, 9, 0, 0, 0,
/* 0x0610 */ 232, 11,252,255,255,141, 69, 32, 83,139, 85, 40, 80,139, 69, 16,
/* 0x0620 */ 87,232, 45,252,255,255,102,139, 79, 44,131,196, 20,137,195,102,
/* 0x0630 */ 133,201,186, 0, 0, 0, 0,116, 20,139, 69,240,131, 56, 3,116,
/* 0x0640 */ 22, 66, 15,183,193,131, 69,240, 32, 57,208,127,236,141,101,244,
/* 0x0650 */ 137,216, 91, 94, 95,201,195,185, 0, 0, 0, 0,139, 88, 8,137,
/* 0x0660 */ 202,106, 5, 88,205,128,133,192,137,198,120, 21,186, 0, 2, 0,
/* 0x0670 */ 0,137,195,137,249,106, 3, 88,205,128, 61, 0, 2, 0, 0,116,
/* 0x0680 */ 10,106,127, 91,106, 1, 88,205,128,235,254,106, 0,186, 0, 0,
/* 0x0690 */ 0, 0,106, 0,137,240, 87,232,183,251,255,255,131,196, 12,137,
/* 0x06a0 */ 195,235,170
};
+72 -68
View File
@@ -1,5 +1,5 @@
/* i386-linux.elf.shell-fold.h
created from i386-linux.elf.shell-fold.bin, 1324 (0x52c) bytes
created from i386-linux.elf.shell-fold.bin, 1392 (0x570) bytes
This file is part of the UPX executable compressor.
@@ -32,24 +32,24 @@
/* clang-format off */
#define STUB_I386_LINUX_ELF_SHELL_FOLD_SIZE 1324
#define STUB_I386_LINUX_ELF_SHELL_FOLD_ADLER32 0x62152a92
#define STUB_I386_LINUX_ELF_SHELL_FOLD_CRC32 0x427dee0b
#define STUB_I386_LINUX_ELF_SHELL_FOLD_SIZE 1392
#define STUB_I386_LINUX_ELF_SHELL_FOLD_ADLER32 0xea6047e4
#define STUB_I386_LINUX_ELF_SHELL_FOLD_CRC32 0x840b538d
unsigned char stub_i386_linux_elf_shell_fold[1324] = {
unsigned char stub_i386_linux_elf_shell_fold[1392] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1,
/* 0x0040 */ 0, 0, 64, 1, 44, 5, 0, 0, 44, 5, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0, 44, 5, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 0, 0, 64, 1,112, 5, 0, 0,112, 5, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0,112, 5, 0, 0, 0, 0, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 137,230,129,236, 80, 1, 0, 0,137,231,173,171,173,171,133,192,
/* 0x0090 */ 117,250,173,171,133,192,117,250, 87, 64,106, 82, 89,243,171, 72,
/* 0x00a0 */ 171,171, 95,173,133,192,145,173,116, 15,131,249, 42,115,244,137,
/* 0x00b0 */ 76,207,248,137, 68,207,252,235,234,129,236, 0, 10, 0, 0,147,
/* 0x00c0 */ 139, 10,139, 90, 4,137,198, 96,232,239, 2, 0, 0, 89, 80, 97,
/* 0x00c0 */ 139, 10,139, 90, 4,137,198, 96,232, 31, 3, 0, 0, 89, 80, 97,
/* 0x00d0 */ 129,196, 0, 10, 0, 0, 89, 90, 82, 65, 86,131,238, 3,102,199,
/* 0x00e0 */ 6, 45, 99, 65, 86, 65, 82, 81, 87,141,188, 36, 0,245,255,255,
/* 0x00f0 */ 96,137,227,137,252,185,192, 2, 0, 0, 49,192,243,171,137,220,
@@ -60,64 +60,68 @@ unsigned char stub_i386_linux_elf_shell_fold[1324] = {
/* 0x0140 */ 247, 60, 10,116, 12,141, 78,255,172, 60, 10,117,251,198, 70,255,
/* 0x0150 */ 0, 86, 87,227, 1, 81, 85,137,225,106, 11, 88,205,128,247,216,
/* 0x0160 */ 147,106, 1, 88,205,128,244, 83,141, 92, 36, 8,106, 90, 88,205,
/* 0x0170 */ 128, 91,195, 0, 87, 86, 83,137,195,139,124, 36, 16, 57, 56,139,
/* 0x0180 */ 112, 4,115, 10,106,127, 91,106, 1, 88,205,128,235,254,133,255,
/* 0x0190 */ 116, 10,137,249,138, 6, 70,136, 2, 66,226,248, 1,123, 4, 41,
/* 0x01a0 */ 59, 91, 94, 95,195,133,210,137,209,116, 6,198, 0, 0, 64,226,
/* 0x01b0 */ 250,195, 85, 49,201,137,229, 87, 86, 83,137,195,131,236, 52,137,
/* 0x01c0 */ 85,240,139, 69, 8,137,202,137, 69,236,106, 5, 88,205,128,133,
/* 0x01d0 */ 192,137, 69,232,121, 10,106,127, 91,106, 1, 88,205,128,235,254,
/* 0x01e0 */ 186, 0, 2, 0, 0,139, 93,232,139, 77,240,106, 3, 88,205,128,
/* 0x01f0 */ 61, 0, 2, 0, 0,117,223,139, 85,240,102,184, 1, 0,102,131,
/* 0x0200 */ 122, 18, 3, 15,133,171, 1, 0, 0, 3, 82, 28, 49,192,139, 77,
/* 0x0210 */ 240,102,131,121, 16, 3,137, 85,228,137,209,139, 85,240, 15,149,
/* 0x0220 */ 192, 15,183, 90, 44,193,224, 4,131,192, 34,131,207,255,137, 69,
/* 0x0230 */ 212,137,216, 49,210, 72,120, 33,137,222,131, 57, 1,117, 20,139,
/* 0x0240 */ 65, 8, 57,248,115, 2,137,199,139, 89, 20, 1,195, 57,218,115,
/* 0x0250 */ 2,137,218,131,193, 32, 78,117,225,246, 69,212, 16,116, 7,137,
/* 0x0260 */ 211,106, 45, 88,205,128,137,251,106, 0,129,227, 0,240,255,255,
/* 0x0270 */ 106,255, 41,218,255,117,212,141,130,255, 15, 0, 0,106, 7, 37,
/* 0x0280 */ 0,240,255,255, 80, 83,232,220,254,255,255,131,196, 24, 41,216,
/* 0x0290 */ 199, 69,220, 0, 0, 0, 0,137, 69,224,139, 69,240,102,131,120,
/* 0x02a0 */ 44, 0, 15,132,247, 0, 0, 0,139, 85,228,139, 2,131,248, 6,
/* 0x02b0 */ 117, 14,139, 66, 8,139, 77,236,137, 65, 20,233,200, 0, 0, 0,
/* 0x02c0 */ 72, 15,133,193, 0, 0, 0,139, 93,228,199, 69,216, 64, 98, 81,
/* 0x02d0 */ 115,139, 75, 24,139, 67, 8,131,225, 7,193,225, 2,137,194,211,
/* 0x02e0 */ 109,216,139, 77,228, 3, 83, 20,137,195,139,121, 16,129,227,255,
/* 0x02f0 */ 15, 0, 0,139, 77,224, 41,216, 1,223,131,101,216, 7, 1,202,
/* 0x0300 */ 141, 52, 8,137, 85,204,139, 85,228,139, 66, 4, 41,216, 80,255,
/* 0x0310 */ 117,232,106, 18,106, 3, 87, 86,232, 74,254,255,255,131,196, 24,
/* 0x0320 */ 57,198,117, 48,137,218,137,240,232,120,254,255,255,137,249,247,
/* 0x0330 */ 217,141, 4, 62,129,225,255, 15, 0, 0,137,243,137,202,137, 77,
/* 0x0340 */ 208,232, 95,254,255,255,137,249,139, 85,216,106,125, 88,205,128,
/* 0x0350 */ 133,192,116, 10,106,127, 91,106, 1, 88,205,128,235,254,139, 85,
/* 0x0360 */ 208,141, 4, 23,141, 28, 6, 59, 93,204,115, 28,106, 0,106,255,
/* 0x0370 */ 106, 50,255,117,216, 41, 93,204,255,117,204, 83,232,230,253,255,
/* 0x0380 */ 255,131,196, 24, 57,195,117,204,139, 77,240,255, 69,220, 15,183,
/* 0x0390 */ 65, 44,131, 69,228, 32, 57, 69,220, 15,140, 9,255,255,255,139,
/* 0x03a0 */ 93,232,106, 6, 88,205,128,133,192,117,169,139, 85,240,139, 69,
/* 0x03b0 */ 224, 3, 66, 24,141,101,244, 91, 94, 95,201,195, 85,137,229, 87,
/* 0x03c0 */ 86, 83,131,236, 36,141,117, 32,139, 69, 16,141, 93, 24,139, 85,
/* 0x03d0 */ 20,137, 69,212,139, 69, 36,139,125, 8,137, 85,208, 5, 85, 80,
/* 0x03e0 */ 88, 50,137, 69,240,139, 69,240, 5, 85, 80, 88, 51,131,125, 32,
/* 0x03f0 */ 0,137, 69,236, 15,132,140, 0, 0, 0,141, 85,220,137,216,106,
/* 0x0400 */ 12,232,110,253,255,255, 88,139, 69,220,139, 77,224,133,192,117,
/* 0x0410 */ 15,129,249, 85, 80, 88, 33,117, 11,131, 59, 0,116,104,235, 4,
/* 0x0420 */ 133,201,117, 10,106,127, 91,106, 1, 88,205,128,235,254, 57,193,
/* 0x0430 */ 119,242, 59, 6,119,238, 57,193,115, 45,137, 69,216,141, 69,216,
/* 0x0440 */ 255,117,228, 80,255,118, 4, 81,255,115, 4,255, 85,212,131,196,
/* 0x0450 */ 20,133,192,117,207,139, 69,220, 57, 69,216,117,199,139, 69,224,
/* 0x0460 */ 1, 67, 4, 41, 3,235, 12,139, 86, 4,137,216, 81,232, 2,253,
/* 0x0470 */ 255,255, 89,139, 85,220,139, 6, 1, 86, 4, 41,208,133,192,137,
/* 0x0480 */ 6,233,110,255,255,255,139, 69,236,139, 85,208,138, 24,139, 69,
/* 0x0490 */ 236,198, 0, 0,139, 69,240, 87,232, 21,253,255,255,137,198,139,
/* 0x04a0 */ 69,236,131,254, 1,136, 24,184, 1, 0, 0, 0, 90,116,117,235,
/* 0x04b0 */ 18,139, 66, 8,106, 0,139, 85,208,232,244,252,255,255,137,198,
/* 0x04c0 */ 88,235, 95,139, 85,208, 49,201,199, 71, 16, 3, 0, 0, 0, 15,
/* 0x04d0 */ 183, 66, 42,199, 71, 24, 4, 0, 0, 0,199, 71, 32, 5, 0, 0,
/* 0x04e0 */ 0,199, 71, 40, 6, 0, 0, 0,137, 71, 28, 15,183, 66, 44,199,
/* 0x04f0 */ 71, 44, 0, 16, 0, 0,137,119, 68,131,194, 52,199, 71, 64, 9,
/* 0x0500 */ 0, 0, 0,137, 71, 36,139, 69,208,102,139, 88, 44,102,133,219,
/* 0x0510 */ 116, 16,131, 58, 3,116,154, 65, 15,183,195,131,194, 32, 57,193,
/* 0x0520 */ 124,240,137,240,141,101,244, 91, 94, 95,201,195
/* 0x0170 */ 128, 91,195, 0, 87, 86, 83,137,195,139,124, 36, 16,139, 11,139,
/* 0x0180 */ 64, 4, 57,249,137,198,115, 10,106,127, 91,106, 1, 88,205,128,
/* 0x0190 */ 235,254,133,255,116, 15,137,249,138, 6, 70,136, 2, 66,226,248,
/* 0x01a0 */ 139, 67, 4,139, 11, 1,248, 41,249,137, 67, 4,137, 11, 91, 94,
/* 0x01b0 */ 95,195,133,210,116, 8,137,209,198, 0, 0, 64,226,250,195, 85,
/* 0x01c0 */ 185, 0, 0, 0, 0,137,229, 87, 86, 83,137,195,131,236, 52,137,
/* 0x01d0 */ 85,240,139, 69, 8,137,202,137, 69,236,106, 5, 88,205,128,133,
/* 0x01e0 */ 192,137, 69,232,120, 45,186, 0, 2, 0, 0,139, 93,232,139, 77,
/* 0x01f0 */ 240,106, 3, 88,205,128, 61, 0, 2, 0, 0,117, 22,139, 85,240,
/* 0x0200 */ 102,184, 1, 0,102,131,122, 18, 3,116, 18,141,101,244, 91, 94,
/* 0x0210 */ 95,201,195,106,127, 91,106, 1, 88,205,128,235,254, 3, 82, 28,
/* 0x0220 */ 184, 0, 0, 0, 0,139, 77,240,191,255,255,255,255,102,131,121,
/* 0x0230 */ 16, 3,137, 85,228,137,209,139, 85,240, 15,149,192, 15,183, 90,
/* 0x0240 */ 44,193,224, 4,186, 0, 0, 0, 0,131,192, 34,137, 69,212,137,
/* 0x0250 */ 216, 72,120, 37,137,222,235, 6,131,193, 32, 78,116, 27,131, 57,
/* 0x0260 */ 1,117,245,139, 65, 8, 57,248,115, 2,137,199,139, 89, 20, 1,
/* 0x0270 */ 195, 57,211,118,227,137,218,235,223,246, 69,212, 16,116, 7,137,
/* 0x0280 */ 211,106, 45, 88,205,128,137,251,106, 0,129,227, 0,240,255,255,
/* 0x0290 */ 106,255, 41,218,255,117,212,141,130,255, 15, 0, 0,106, 7, 37,
/* 0x02a0 */ 0,240,255,255, 80, 83,232,188,254,255,255,131,196, 24, 41,216,
/* 0x02b0 */ 199, 69,220, 0, 0, 0, 0,137, 69,224,139, 69,240,102,139, 80,
/* 0x02c0 */ 44,102,133,210,117, 20,235, 46, 72,116, 73,255, 69,220, 15,183,
/* 0x02d0 */ 194,131, 69,228, 32, 59, 69,220,126, 28,139, 77,228,139, 1,131,
/* 0x02e0 */ 248, 6,117,228,139, 65, 8,139, 93,236,137, 67, 20,139, 69,240,
/* 0x02f0 */ 102,139, 80, 44,235,213,139, 93,232,106, 6, 88,205,128,133,192,
/* 0x0300 */ 15,133,180, 0, 0, 0,139, 85,240,139, 69,224, 3, 66, 24,233,
/* 0x0310 */ 247,254,255,255,139, 85,228,199, 69,216, 64, 98, 81,115,139, 74,
/* 0x0320 */ 24,139, 66, 8,131,225, 7,193,225, 2,137,195,211,109,216,137,
/* 0x0330 */ 209,139, 82, 20,129,227,255, 15, 0, 0,139,121, 16,139, 77,224,
/* 0x0340 */ 1,194, 41,216, 1,223, 1,202,141, 52, 8,137, 85,204,139, 85,
/* 0x0350 */ 228,131,101,216, 7,139, 66, 4, 41,216, 80,255,117,232,106, 18,
/* 0x0360 */ 106, 3, 87, 86,232,254,253,255,255,131,196, 24, 57,240,117, 74,
/* 0x0370 */ 137,218,137,240,232, 57,254,255,255,137,249,247,217,141, 4, 62,
/* 0x0380 */ 129,225,255, 15, 0, 0,137,243,137,202,137, 77,208,232, 32,254,
/* 0x0390 */ 255,255,137,249,139, 85,216,106,125, 88,205,128,133,192,117, 26,
/* 0x03a0 */ 139, 85,208,141, 4, 23,141, 28, 6, 59, 93,204,114, 22,139, 93,
/* 0x03b0 */ 240,102,139, 83, 44,233, 17,255,255,255,106,127, 91,106, 1, 88,
/* 0x03c0 */ 205,128,235,254,106, 0,106,255,106, 50,255,117,216, 41, 93,204,
/* 0x03d0 */ 255,117,204, 83,232,142,253,255,255,131,196, 24, 57,216,117,218,
/* 0x03e0 */ 139, 77,240,102,139, 81, 44,233,223,254,255,255, 85,137,229, 87,
/* 0x03f0 */ 86, 83,131,236, 36,141, 93, 32,139, 69, 16,141,117, 24,139, 85,
/* 0x0400 */ 20,137, 69,212,139, 69, 36,139,125, 8,137, 85,208, 5, 85, 80,
/* 0x0410 */ 88, 50,137, 69,240,139, 69,240, 5, 85, 80, 88, 51,131,125, 32,
/* 0x0420 */ 0,137, 69,236,235, 62,137, 69,216,141, 69,216,255,117,228, 80,
/* 0x0430 */ 255,115, 4, 81,255,118, 4,255, 85,212,131,196, 20,133,192, 15,
/* 0x0440 */ 133, 13, 1, 0, 0,139, 85,220, 59, 85,216, 15,133, 1, 1, 0,
/* 0x0450 */ 0,139, 69,224, 1, 70, 4, 41, 6,139, 3, 1, 83, 4, 41,208,
/* 0x0460 */ 137, 3,133,192,116, 91,141, 85,220,137,240,106, 12,232, 2,253,
/* 0x0470 */ 255,255, 88,139, 69,220,133,192,116, 48,139, 77,224,133,201, 15,
/* 0x0480 */ 132,205, 0, 0, 0, 57,193, 15,135,197, 0, 0, 0, 59, 3, 15,
/* 0x0490 */ 135,189, 0, 0, 0, 57,193,114,141,139, 83, 4,137,240, 81,232,
/* 0x04a0 */ 208,252,255,255, 89,139, 85,220,235,175,129,125,224, 85, 80, 88,
/* 0x04b0 */ 33, 15,133,155, 0, 0, 0,139, 30,133,219, 15,133,145, 0, 0,
/* 0x04c0 */ 0,139, 69,236,139, 85,208,138, 24,139, 69,236,198, 0, 0,139,
/* 0x04d0 */ 69,240, 87,232,231,252,255,255,137,198,139, 69,236,131,254, 1,
/* 0x04e0 */ 136, 24,184, 1, 0, 0, 0, 90,116, 96,139, 93,208,185, 0, 0,
/* 0x04f0 */ 0, 0,199, 71, 16, 3, 0, 0, 0, 15,183, 67, 42,199, 71, 24,
/* 0x0500 */ 4, 0, 0, 0,199, 71, 32, 5, 0, 0, 0,199, 71, 40, 6, 0,
/* 0x0510 */ 0, 0,137, 71, 28, 15,183, 67, 44,199, 71, 44, 0, 16, 0, 0,
/* 0x0520 */ 137,119, 68,199, 71, 64, 9, 0, 0, 0,137, 71, 36,137,216, 15,
/* 0x0530 */ 183, 83, 44,131,192, 52,131,250, 0,235, 11,131, 56, 3,116, 28,
/* 0x0540 */ 65,131,192, 32, 57,202,127,243,137,240,141,101,244, 91, 94, 95,
/* 0x0550 */ 201,195,106,127, 91,106, 1, 88,205,128,235,254,139, 64, 8,106,
/* 0x0560 */ 0,139, 85,208,232, 86,252,255,255,137,198, 88,137,240,235,218
};
+115 -102
View File
@@ -1,5 +1,5 @@
/* i386-netbsd.elf-fold.h
created from i386-netbsd.elf-fold.bin, 1813 (0x715) bytes
created from i386-netbsd.elf-fold.bin, 2021 (0x7e5) bytes
This file is part of the UPX executable compressor.
@@ -32,17 +32,17 @@
/* clang-format off */
#define STUB_I386_NETBSD_ELF_FOLD_SIZE 1813
#define STUB_I386_NETBSD_ELF_FOLD_ADLER32 0x724a09f5
#define STUB_I386_NETBSD_ELF_FOLD_CRC32 0x2a95f51f
#define STUB_I386_NETBSD_ELF_FOLD_SIZE 2021
#define STUB_I386_NETBSD_ELF_FOLD_ADLER32 0x6fd68771
#define STUB_I386_NETBSD_ELF_FOLD_CRC32 0x23ed5a87
unsigned char stub_i386_netbsd_elf_fold[1813] = {
unsigned char stub_i386_netbsd_elf_fold[2021] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 3, 0, 1, 0, 0, 0,128, 16,192, 0, 52, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 16,192, 0,
/* 0x0040 */ 0, 16,192, 0, 21, 7, 0, 0, 24, 7, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0, 21, 7, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 0, 16,192, 0,229, 7, 0, 0,232, 7, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0,229, 7, 0, 0, 0, 0, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 41,201,186,248, 2, 0, 0,137,230,137,231,232,134, 0, 0, 0,
@@ -51,104 +51,117 @@ unsigned char stub_i386_netbsd_elf_fold[1813] = {
/* 0x00b0 */ 141,148, 26,255, 31, 0, 0,129,226, 0,240,255,255, 82, 41,192,
/* 0x00c0 */ 102,131,123, 16, 3,117, 1,146, 80,139, 67, 24,139,112,248, 41,
/* 0x00d0 */ 240,139, 24,139, 72, 4,131,193, 12,141, 84, 36, 12, 96, 71,232,
/* 0x00e0 */ 140, 4, 0, 0,131,196, 36, 89, 91,129,196, 0, 10, 0, 0, 90,
/* 0x00e0 */ 75, 5, 0, 0,131,196, 36, 89, 91,129,196, 0, 10, 0, 0, 90,
/* 0x00f0 */ 193,226, 12, 1,211, 80,106, 0,137,229, 41,217, 41,192, 81, 83,
/* 0x0100 */ 80, 79, 60,175,175,117,252,255, 55, 49,255, 49,246, 49,210, 49,
/* 0x0110 */ 201, 49,219,176, 73,195,173,171,173,171,133,192,117,250,173,171,
/* 0x0120 */ 133,192,117,250, 87,173,171,131,248, 32,115, 3, 15,179,194,133,
/* 0x0130 */ 192,173,171,117,240,131,239, 8, 1,201, 64,243,171, 72,171,171,
/* 0x0140 */ 95,195, 0, 0, 85,137,229, 87, 86,137,206, 83,137,195, 57, 8,
/* 0x0150 */ 139,120, 4,115, 7,106,127,232,113, 5, 0, 0,133,201,116, 8,
/* 0x0160 */ 138, 7, 71,136, 2, 66,226,248, 1,115, 4, 41, 51,141,101,244,
/* 0x0170 */ 91, 94, 95,201,195, 85,137,229, 87, 86,137,198, 83,137,211,131,
/* 0x0180 */ 236, 24,139, 69, 8,139,125, 12,137, 69,220,131, 58, 0, 15,132,
/* 0x0190 */ 182, 0, 0, 0,141, 85,228,185, 12, 0, 0, 0,137,240,232,161,
/* 0x01a0 */ 255,255,255,139, 69,228,139, 77,232,133,192,117, 19,129,249, 85,
/* 0x01b0 */ 80, 88, 33,117, 15,131, 62, 0, 15,132,140, 0, 0, 0,235, 4,
/* 0x01c0 */ 133,201,117, 7,106,127,232, 2, 5, 0, 0, 57,193,119,245, 59,
/* 0x01d0 */ 3,119,241, 57,193,115, 86,137, 69,224,141, 69,224,255,117,236,
/* 0x01e0 */ 80,255,115, 4, 81,255,118, 4,255, 85,220,131,196, 20,133,192,
/* 0x01f0 */ 117,210,139, 85,224, 59, 85,228,117,202,138, 69,237,132,192,116,
/* 0x0200 */ 34,133,255,116, 30,129,250, 0, 2, 0, 0,119, 4, 57, 19,117,
/* 0x0210 */ 18, 15,182,192, 80, 15,182, 69,238, 80, 82,255,115, 4,255,215,
/* 0x0220 */ 131,196, 16,139, 69,232, 1, 70, 4, 41, 6,235, 10,139, 83, 4,
/* 0x0230 */ 137,240,232, 13,255,255,255,139, 85,228,139, 3, 1, 83, 4, 41,
/* 0x0240 */ 208,133,192,137, 3,233, 68,255,255,255,141,101,244, 91, 94, 95,
/* 0x0250 */ 201,195,133,192, 83,137,195,116, 35,168, 1,117, 31,139, 3, 57,
/* 0x0260 */ 208,116, 9,131,248, 1,117, 11,133,210,116, 11,137, 19,137, 75,
/* 0x0270 */ 4,235, 9,133,192,116, 5,131,195, 8,235,225, 91,195, 85,137,
/* 0x0280 */ 229, 87, 86, 83,131,236, 60,137, 85,224,137, 69,228,139, 85, 12,
/* 0x0290 */ 139, 69, 8,199, 69,204,255,255,255,255,137, 85,216,139,125,224,
/* 0x02a0 */ 139, 85,224,137, 69,220,139, 69, 20, 3,127, 28,137, 69,212, 49,
/* 0x02b0 */ 192,102,131,122, 16, 2, 15,183, 74, 44,137,251, 15,148,192, 49,
/* 0x02c0 */ 246,193,224, 4,137,202, 5, 2, 16, 0, 0, 74,120, 30,131, 59,
/* 0x02d0 */ 1,117, 20,139, 83, 8, 59, 85,204,115, 3,137, 85,204, 3, 83,
/* 0x02e0 */ 20, 57,214,115, 2,137,214,131,195, 32,226,226,139, 93,204,106,
/* 0x02f0 */ 0,106,255,129,227, 0,240,255,255, 80, 41,222,106, 0,129,198,
/* 0x0300 */ 255, 15, 0, 0,129,230, 0,240,255,255, 86, 83,232,151, 3, 0,
/* 0x0310 */ 0,131,196, 24,141, 52, 48, 41,216,137, 69,208,139, 69,224,137,
/* 0x0320 */ 117,240,102,131,120, 44, 0,199, 69,200, 0, 0, 0, 0, 15,132,
/* 0x0330 */ 242, 1, 0, 0,139, 7,131,248, 6,117, 34,131,125,220, 0, 15,
/* 0x0340 */ 132,203, 1, 0, 0,139, 77,208,186, 3, 0, 0, 0, 3, 79, 8,
/* 0x0350 */ 139, 69,216,232,250,254,255,255,233,179, 1, 0, 0, 72, 15,133,
/* 0x0360 */ 172, 1, 0, 0,139, 95, 20,133,219, 15,132,161, 1, 0, 0,139,
/* 0x0370 */ 79, 24,199, 69,196, 64, 98, 81,115,139, 69,208, 3, 71, 8,131,
/* 0x0380 */ 225, 7,193,225, 2,139, 87, 16,211,109,196,137,193,137,198,129,
/* 0x0390 */ 225,255, 15, 0, 0,131,101,196, 7,137, 85,232, 41,206, 1,202,
/* 0x03a0 */ 131,125,220, 0,141, 28, 24,137, 69,236,137, 93,188,137, 85,192,
/* 0x03b0 */ 116, 41,106, 0,139, 69,196,106,255,104, 18, 16, 0, 0,131,200,
/* 0x03c0 */ 2, 80,137,208,131,192, 3, 80, 86,232,218, 2, 0, 0,131,196,
/* 0x03d0 */ 24, 57,198, 15,133,226, 0, 0, 0,235, 36,139, 71, 4, 41,200,
/* 0x03e0 */ 80,255,117,228,106, 18,255,117,196,255,117,192, 86,232,182, 2,
/* 0x03f0 */ 0, 0,131,196, 24, 57,198, 15,133,190, 0, 0, 0,235, 34,131,
/* 0x0400 */ 125,220, 0,116, 28,246, 69,196, 4,139, 69,212,117, 2, 49,192,
/* 0x0410 */ 80,139, 69,220,255,117,228,141, 85,232,232, 86,253,255,255, 88,
/* 0x0420 */ 90,139, 85,192,247,218,129,226,255, 15, 0, 0,246, 69,196, 2,
/* 0x0430 */ 137, 85,184,116, 21,131,125,184, 0,139, 85,192,141, 4, 22,116,
/* 0x0440 */ 9,139, 77,184,198, 0, 0, 64,226,250,131,125,220, 0,116,114,
/* 0x0450 */ 131, 63, 1,117, 83,246, 71, 24, 1,116, 77,139, 87, 20,139, 95,
/* 0x0460 */ 8,141, 12, 26, 3, 77,208, 59, 87, 16,117, 14,137,200,247,216,
/* 0x0470 */ 37,255, 15, 0, 0,131,248, 3,119, 14,107, 69,208, 52,131,127,
/* 0x0480 */ 4, 0,141, 76, 3, 12,117, 15,139, 1, 61,205,128,201,195,116,
/* 0x0490 */ 6,199, 1,205,128,201,195,133,201,116, 13,139, 69,216, 49,210,
/* 0x04a0 */ 131,224,254,232,170,253,255,255,255,117,196,255,117,192, 86,232,
/* 0x04b0 */ 53, 2, 0, 0,131,196, 12,133,192,116, 7,106,127,232, 11, 2,
/* 0x04c0 */ 0, 0,139, 69,192, 3, 69,184,141, 28, 6, 59, 93,188,115, 33,
/* 0x04d0 */ 106, 0,106,255,104, 18, 16, 0, 0,255,117,196, 41, 93,188,255,
/* 0x04e0 */ 117,188, 83,232,192, 1, 0, 0,131,196, 24, 57,195,116, 33,235,
/* 0x04f0 */ 202,131,125,220, 0,116, 25,139, 69,192,131,192, 3, 37,255, 15,
/* 0x0500 */ 0, 0,131,248, 3,119, 9, 80, 83,232,215, 1, 0, 0, 89, 91,
/* 0x0510 */ 139, 85,224,131,199, 32,255, 69,200, 15,183, 66, 44, 57, 69,200,
/* 0x0520 */ 15,140, 14,254,255,255,131,125,220, 0,117, 15,255,117,228,232,
/* 0x0530 */ 173, 1, 0, 0, 90,133,192,116, 21,235,128,139, 69,224,102,131,
/* 0x0540 */ 120, 16, 3,116, 9,255,117,240,232,127, 1, 0, 0, 88,131,125,
/* 0x0550 */ 16, 0,116, 8,139, 69,208,139, 85, 16,137, 2,139, 85,224,139,
/* 0x0560 */ 82, 24, 1, 85,208,139, 69,208,141,101,244, 91, 94, 95,201,195,
/* 0x0570 */ 85,137,229, 87, 86, 83,131,236, 16,141, 85, 24,139, 69, 8,106,
/* 0x0580 */ 0,139,125, 28,137, 69,236,139, 69, 16,139, 93, 32,141,119, 52,
/* 0x0590 */ 137, 69,232,131,192, 2,255,117,232,137, 69,228,141, 69, 32,232,
/* 0x05a0 */ 209,251,255,255,139, 69, 12,185, 0, 16, 0, 0,186, 6, 0, 0,
/* 0x05b0 */ 0,137, 69, 32,139, 69,236, 41, 93, 36,232,147,252,255,255, 15,
/* 0x05c0 */ 183, 79, 44,139, 69,236,186, 5, 0, 0, 0,232,130,252,255,255,
/* 0x05d0 */ 15,183, 79, 42,139, 69,236,186, 4, 0, 0, 0,232,113,252,255,
/* 0x05e0 */ 255,139, 77, 40, 3, 78, 8,186, 3, 0, 0, 0,139, 69,236,131,
/* 0x05f0 */ 193, 52,232, 91,252,255,255,141, 69,240,255,117,228,137,250, 80,
/* 0x0600 */ 141, 69, 32,255,117,236, 80,139, 69,232,232,111,252,255,255,186,
/* 0x0610 */ 9, 0, 0, 0,137,193,137,195,139, 69,236,232, 50,252,255,255,
/* 0x0620 */ 102,139, 79, 44,131,196, 24, 49,210,102,133,201,116,112,131, 62,
/* 0x0630 */ 3,117, 96,106, 0,139, 69,240,106, 0, 3, 70, 8, 80,232,154,
/* 0x0640 */ 0, 0, 0,131,196, 12,133,192,137,195,120, 22,104, 0, 2, 0,
/* 0x0650 */ 0, 87, 80,232,125, 0, 0, 0,131,196, 12, 61, 0, 2, 0, 0,
/* 0x0660 */ 116, 7,106,127,232,100, 0, 0, 0,141, 69,240,137,250,106, 0,
/* 0x0670 */ 80,137,216,106, 0,106, 0,232, 2,252,255,255,139, 77,240,137,
/* 0x0680 */ 195,139, 69,236,186, 7, 0, 0, 0,232,196,251,255,255,131,196,
/* 0x0690 */ 16,235, 11, 66, 15,183,193,131,198, 32, 57,194,124,144,141,101,
/* 0x06a0 */ 244,137,216, 91, 94, 95,201,195, 85,137,229, 49,192, 80,255,117,
/* 0x06b0 */ 28, 80,255,117, 24,255,117, 20,255,117, 16,255,117, 12,255,117,
/* 0x06c0 */ 8, 80,176,197, 80, 80,176,198,205,128,201,195,195,176, 1, 15,
/* 0x06d0 */ 182,192,205,128,195,176, 3,235,246,176, 4,235,242,176, 5,235,
/* 0x06e0 */ 238,176, 6,235,234,176, 73,235,230,176, 74,235,226,176, 33,235,
/* 0x06f0 */ 222,176, 20,235,218,176, 92,235,214,176, 59,235,210,176, 2,235,
/* 0x0700 */ 206,176,130,235,202,176,116,235,198,176,240,235,194,176, 10,235,
/* 0x0710 */ 190,176, 7,235,186
/* 0x0140 */ 95,195, 0, 0, 85,137,229, 87, 86,137,199, 83,137,206,139, 15,
/* 0x0150 */ 139, 64, 4, 57,241,137,195,114, 36,133,246,116, 15,137,241,138,
/* 0x0160 */ 3, 67,136, 2, 66,226,248,139, 71, 4,139, 15, 1,240, 41,241,
/* 0x0170 */ 137, 71, 4,137, 15,141,101,244, 91, 94, 95,201,195,106,127,232,
/* 0x0180 */ 25, 6, 0, 0, 85,137,229, 87, 86,137,198, 83,137,211,131,236,
/* 0x0190 */ 24,139, 58,139, 69, 8,133,255,137, 69,220, 15,132,153, 0, 0,
/* 0x01a0 */ 0,141,125,228,137,240,185, 12, 0, 0, 0,137,250,232,146,255,
/* 0x01b0 */ 255,255,139, 69,228,133,192, 15,132,203, 0, 0, 0,139, 77,232,
/* 0x01c0 */ 133,201, 15,132,201, 0, 0, 0, 57,193, 15,135,193, 0, 0, 0,
/* 0x01d0 */ 59, 3, 15,135,185, 0, 0, 0, 57,193,115,102,137, 69,224,141,
/* 0x01e0 */ 69,224,255,117,236, 80,255,115, 4, 81,255,118, 4,255, 85,220,
/* 0x01f0 */ 131,196, 20,133,192, 15,133,150, 0, 0, 0,139, 85,228, 59, 85,
/* 0x0200 */ 224, 15,133,138, 0, 0, 0,138, 69,237,132,192,116, 19,139, 77,
/* 0x0210 */ 12,133,201,116, 12,129,250, 0, 2, 0, 0,119, 75, 57, 19,116,
/* 0x0220 */ 71,139, 69,232, 1, 70, 4, 41, 6,139, 3, 1, 83, 4, 41,208,
/* 0x0230 */ 133,192,137, 3, 15,133,106,255,255,255,141,101,244, 91, 94, 95,
/* 0x0240 */ 201,195,139, 83, 4,137,240,232,248,254,255,255,139, 85,228,139,
/* 0x0250 */ 3, 1, 83, 4, 41,208,133,192,137, 3, 15,133, 68,255,255,255,
/* 0x0260 */ 141,101,244, 91, 94, 95,201,195, 15,182,192, 80, 15,182, 69,238,
/* 0x0270 */ 80, 82,255,115, 4,255, 85, 12,139, 69,232, 1, 70, 4,131,196,
/* 0x0280 */ 16, 41, 6,139, 85,228,235,161,129,125,232, 85, 80, 88, 33,116,
/* 0x0290 */ 7,106,127,232, 5, 5, 0, 0,139, 30,133,219,116,156,235,241,
/* 0x02a0 */ 133,192, 83,137,195,116, 33,168, 1,117, 29,139, 3, 57,208,116,
/* 0x02b0 */ 18,131,248, 1,116, 20,133,192,116, 14,131,195, 8,139, 3, 57,
/* 0x02c0 */ 208,117,238,137, 19,137, 75, 4, 91,195,133,210,117,245,131,195,
/* 0x02d0 */ 8,235,234, 85,137,229, 87, 86,190, 0, 0, 0, 0, 83,131,236,
/* 0x02e0 */ 64,137, 69,228,139, 69, 8,137, 85,224,139,125,224,199, 69,204,
/* 0x02f0 */ 255,255,255,255,139, 85, 12,137, 69,220,139, 69,224,139, 77, 20,
/* 0x0300 */ 137, 85,216, 3,127, 28,139, 85,224,137, 77,212,102,131,120, 16,
/* 0x0310 */ 2, 15,183, 74, 44,137,251, 15,148,192, 15,182,192,137,202,193,
/* 0x0320 */ 224, 4, 5, 2, 16, 0, 0, 74,120, 14,131, 59, 1, 15,132,209,
/* 0x0330 */ 0, 0, 0,131,195, 32,226,242,139, 93,204,106, 0,106,255,129,
/* 0x0340 */ 227, 0,240,255,255, 80, 41,222,106, 0,129,198,255, 15, 0, 0,
/* 0x0350 */ 129,230, 0,240,255,255, 86, 83,232, 27, 4, 0, 0,139, 77,224,
/* 0x0360 */ 141, 52, 48,131,196, 24,102,139, 81, 44, 41,216,137,117,240,190,
/* 0x0370 */ 0, 0, 0, 0,102,133,210,137, 69,208,117, 20,235, 69, 72, 15,
/* 0x0380 */ 132,156, 0, 0, 0, 70, 15,183,194,131,199, 32, 57,240,126, 51,
/* 0x0390 */ 139, 7,131,248, 6,117,231,139, 69,220,133,192,116,231,139, 77,
/* 0x03a0 */ 208,186, 3, 0, 0, 0, 3, 79, 8,139, 69,216,232,239,254,255,
/* 0x03b0 */ 255,139, 69,224, 70,131,199, 32,102,139, 80, 44, 15,183,194, 57,
/* 0x03c0 */ 240,127,205,139, 77,220,133,201, 15,132, 56, 2, 0, 0,139, 85,
/* 0x03d0 */ 224,102,131,122, 16, 3,116, 9,255,117,240,232,188, 3, 0, 0,
/* 0x03e0 */ 88,139, 69, 16,133,192,116, 8,139, 69,208,139, 77, 16,137, 1,
/* 0x03f0 */ 139, 85,224,139, 82, 24, 1, 85,208,139, 69,208,141,101,244, 91,
/* 0x0400 */ 94, 95,201,195,139, 83, 8, 59, 85,204,115, 3,137, 85,204, 3,
/* 0x0410 */ 83, 20, 57,242, 15,134, 25,255,255,255,137,214,233, 18,255,255,
/* 0x0420 */ 255,139, 95, 20,133,219, 15,132, 89,255,255,255,139, 69,208,199,
/* 0x0430 */ 69,200, 64, 98, 81,115, 3, 71, 8,139, 79, 24,139, 87, 16,131,
/* 0x0440 */ 225, 7, 1,195,193,225, 2,137, 93,188,211,109,200,137,193,139,
/* 0x0450 */ 93,220,129,225,255, 15, 0, 0,131,101,200, 7,137, 85,232, 1,
/* 0x0460 */ 202,137, 69,236, 41,200,133,219,137, 85,196,137, 69,192, 15,132,
/* 0x0470 */ 104, 1, 0, 0,106, 0,139, 69,200,106,255,104, 18, 16, 0, 0,
/* 0x0480 */ 131,200, 2, 80,137,208,131,192, 3, 80,255,117,192,232,230, 2,
/* 0x0490 */ 0, 0,131,196, 24, 59, 69,192, 15,133,204, 0, 0, 0,139, 77,
/* 0x04a0 */ 220,133,201,116, 31,246, 69,200, 4,139, 69,212,117, 5,184, 0,
/* 0x04b0 */ 0, 0, 0, 80,139, 69,220,255,117,228,141, 85,232,232,194,252,
/* 0x04c0 */ 255,255, 88, 90,139, 93,196,247,219,129,227,255, 15, 0, 0,246,
/* 0x04d0 */ 69,200, 2,116, 14,139, 69,192, 3, 69,196,133,219, 15,133,142,
/* 0x04e0 */ 0, 0, 0,139, 69,220,133,192,116, 30,131, 63, 1, 15,132,139,
/* 0x04f0 */ 0, 0, 0,255,117,200,255,117,196,255,117,192,232,184, 2, 0,
/* 0x0500 */ 0,131,196, 12,133,192,117, 98,139, 69,196, 1,216,139, 93,192,
/* 0x0510 */ 1,195, 59, 93,188,114, 48,139, 69,220,133,192,116, 29,139, 69,
/* 0x0520 */ 196,131,192, 3, 37,255, 15, 0, 0,131,248, 3, 15,135,127,254,
/* 0x0530 */ 255,255, 80, 83,232,124, 2, 0, 0, 91, 88,139, 77,224,102,139,
/* 0x0540 */ 81, 44,233, 62,254,255,255,106, 0,106,255,104, 18, 16, 0, 0,
/* 0x0550 */ 255,117,200, 41, 93,188,255,117,188, 83,232, 25, 2, 0, 0,131,
/* 0x0560 */ 196, 24, 57,216, 15,132, 71,254,255,255,106,127,232, 44, 2, 0,
/* 0x0570 */ 0,137,217,198, 0, 0, 64,226,250,233,101,255,255,255,246, 71,
/* 0x0580 */ 24, 1, 15,132,107,255,255,255,139, 87, 20,139, 79, 8,137, 77,
/* 0x0590 */ 184, 1,209,137, 77,180, 3, 77,208, 59, 87, 16,116,126,107, 69,
/* 0x05a0 */ 208, 52,139, 85,184,141, 76, 2, 12,139, 71, 4,133,192,117, 15,
/* 0x05b0 */ 139, 1, 61,205,128,201,195,116, 6,199, 1,205,128,201,195,133,
/* 0x05c0 */ 201, 15,132, 44,255,255,255,139, 69,216,186, 0, 0, 0, 0,131,
/* 0x05d0 */ 224,254,232,201,252,255,255,233, 23,255,255,255,139, 71, 4, 41,
/* 0x05e0 */ 200, 80,255,117,228,106, 18,255,117,200,255,117,196,255,117,192,
/* 0x05f0 */ 232,131, 1, 0, 0,131,196, 24, 59, 69,192, 15,132,195,254,255,
/* 0x0600 */ 255,233,100,255,255,255,255,117,228,232,163, 1, 0, 0, 90,133,
/* 0x0610 */ 192, 15,132,202,253,255,255,233, 78,255,255,255,137,200,247,216,
/* 0x0620 */ 37,255, 15, 0, 0,131,248, 3,119,134,233,111,255,255,255, 85,
/* 0x0630 */ 137,229, 87, 86, 83,131,236, 16,141, 85, 24,139, 69, 8,106, 0,
/* 0x0640 */ 139,117, 16,137, 69,236,139, 69, 28, 86,139, 93, 32,137, 69,228,
/* 0x0650 */ 137,199,141, 70, 2,131,199, 52,137, 69,232,141, 69, 32,232, 33,
/* 0x0660 */ 251,255,255,139, 69, 12,185, 0, 16, 0, 0,186, 6, 0, 0, 0,
/* 0x0670 */ 137, 69, 32,139, 69,236, 41, 93, 36,232, 34,252,255,255,139, 69,
/* 0x0680 */ 228,186, 5, 0, 0, 0, 15,183, 72, 44,139, 69,236,232, 14,252,
/* 0x0690 */ 255,255,139, 69,228,186, 4, 0, 0, 0, 15,183, 72, 42,139, 69,
/* 0x06a0 */ 236,232,250,251,255,255,139, 77, 40, 3, 79, 8,186, 3, 0, 0,
/* 0x06b0 */ 0,139, 69,236,131,193, 52,232,228,251,255,255,141, 69,240,255,
/* 0x06c0 */ 117,232, 80,139, 85,228,255,117,236,141, 69, 32, 80,137,240,232,
/* 0x06d0 */ 255,251,255,255,186, 9, 0, 0, 0,137,193,137,195,139, 69,236,
/* 0x06e0 */ 232,187,251,255,255,139, 69,228,131,196, 24,186, 0, 0, 0, 0,
/* 0x06f0 */ 102,139, 72, 44,102,133,201,116, 16,131, 63, 3,116, 21, 66, 15,
/* 0x0700 */ 183,193,131,199, 32, 57,208,127,240,141,101,244,137,216, 91, 94,
/* 0x0710 */ 95,201,195,106, 0,139, 69,240,106, 0, 3, 71, 8, 80,232,138,
/* 0x0720 */ 0, 0, 0,131,196, 12,133,192,137,195,120, 24,104, 0, 2, 0,
/* 0x0730 */ 0,255,117,228, 80,232,107, 0, 0, 0,131,196, 12, 61, 0, 2,
/* 0x0740 */ 0, 0,116, 7,106,127,232, 82, 0, 0, 0,141, 69,240,139, 85,
/* 0x0750 */ 228,106, 0, 80,137,216,106, 0,106, 0,232,116,251,255,255,139,
/* 0x0760 */ 77,240,137,195,139, 69,236,186, 7, 0, 0, 0,232, 47,251,255,
/* 0x0770 */ 255,131,196, 16,235,147, 0, 0, 85,137,229, 49,192, 80,255,117,
/* 0x0780 */ 28, 80,255,117, 24,255,117, 20,255,117, 16,255,117, 12,255,117,
/* 0x0790 */ 8, 80,176,197, 80, 80,176,198,205,128,201,195,195,176, 1, 15,
/* 0x07a0 */ 182,192,205,128,195,176, 3,235,246,176, 4,235,242,176, 5,235,
/* 0x07b0 */ 238,176, 6,235,234,176, 73,235,230,176, 74,235,226,176, 33,235,
/* 0x07c0 */ 222,176, 20,235,218,176, 92,235,214,176, 59,235,210,176, 2,235,
/* 0x07d0 */ 206,176,130,235,202,176,116,235,198,176,240,235,194,176, 10,235,
/* 0x07e0 */ 190,176, 7,235,186
};
+130 -116
View File
@@ -1,5 +1,5 @@
/* i386-openbsd.elf-fold.h
created from i386-openbsd.elf-fold.bin, 2041 (0x7f9) bytes
created from i386-openbsd.elf-fold.bin, 2257 (0x8d1) bytes
This file is part of the UPX executable compressor.
@@ -32,17 +32,17 @@
/* clang-format off */
#define STUB_I386_OPENBSD_ELF_FOLD_SIZE 2041
#define STUB_I386_OPENBSD_ELF_FOLD_ADLER32 0xd82f6816
#define STUB_I386_OPENBSD_ELF_FOLD_CRC32 0x8c403cd5
#define STUB_I386_OPENBSD_ELF_FOLD_SIZE 2257
#define STUB_I386_OPENBSD_ELF_FOLD_ADLER32 0xf505de87
#define STUB_I386_OPENBSD_ELF_FOLD_CRC32 0x63002e21
unsigned char stub_i386_openbsd_elf_fold[2041] = {
unsigned char stub_i386_openbsd_elf_fold[2257] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 12, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 3, 0, 1, 0, 0, 0,128, 16,192, 0, 52, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 16,192, 0,
/* 0x0040 */ 0, 16,192, 0,249, 7, 0, 0,252, 7, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0,249, 7, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 0, 16,192, 0,209, 8, 0, 0,212, 8, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0,209, 8, 0, 0, 0, 0, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 41,201,186,248, 2, 0, 0,137,230,137,231,232,134, 0, 0, 0,
@@ -51,118 +51,132 @@ unsigned char stub_i386_openbsd_elf_fold[2041] = {
/* 0x00b0 */ 141,148, 26,255, 31, 0, 0,129,226, 0,240,255,255, 82, 41,192,
/* 0x00c0 */ 102,131,123, 16, 3,117, 1,146, 80,139, 67, 24,139,112,248, 41,
/* 0x00d0 */ 240,139, 24,139, 72, 4,131,193, 12,141, 84, 36, 12, 96, 71,232,
/* 0x00e0 */ 90, 5, 0, 0,131,196, 36, 89, 91,129,196, 0, 10, 0, 0, 90,
/* 0x00e0 */ 32, 6, 0, 0,131,196, 36, 89, 91,129,196, 0, 10, 0, 0, 90,
/* 0x00f0 */ 193,226, 12, 1,211, 80,106, 0,137,229, 41,217, 41,192, 81, 83,
/* 0x0100 */ 80, 79, 60,175,175,117,252,255, 55, 49,255, 49,246, 49,210, 49,
/* 0x0110 */ 201, 49,219,176, 73,195,173,171,173,171,133,192,117,250,173,171,
/* 0x0120 */ 133,192,117,250, 87,173,171,131,248, 32,115, 3, 15,179,194,133,
/* 0x0130 */ 192,173,171,117,240,131,239, 8, 1,201, 64,243,171, 72,171,171,
/* 0x0140 */ 95,195, 0, 0, 85,137,229, 87, 86,137,206, 83,137,195, 57, 8,
/* 0x0150 */ 139,120, 4,115, 7,106,127,232, 85, 6, 0, 0,133,201,116, 8,
/* 0x0160 */ 138, 7, 71,136, 2, 66,226,248, 1,115, 4, 41, 51,141,101,244,
/* 0x0170 */ 91, 94, 95,201,195, 85,137,229, 87, 86,137,198, 83,137,211,131,
/* 0x0180 */ 236, 24,139, 69, 8,139,125, 12,137, 69,220,131, 58, 0, 15,132,
/* 0x0190 */ 182, 0, 0, 0,141, 85,228,185, 12, 0, 0, 0,137,240,232,161,
/* 0x01a0 */ 255,255,255,139, 69,228,139, 77,232,133,192,117, 19,129,249, 85,
/* 0x01b0 */ 80, 88, 33,117, 15,131, 62, 0, 15,132,140, 0, 0, 0,235, 4,
/* 0x01c0 */ 133,201,117, 7,106,127,232,230, 5, 0, 0, 57,193,119,245, 59,
/* 0x01d0 */ 3,119,241, 57,193,115, 86,137, 69,224,141, 69,224,255,117,236,
/* 0x01e0 */ 80,255,115, 4, 81,255,118, 4,255, 85,220,131,196, 20,133,192,
/* 0x01f0 */ 117,210,139, 85,224, 59, 85,228,117,202,138, 69,237,132,192,116,
/* 0x0200 */ 34,133,255,116, 30,129,250, 0, 2, 0, 0,119, 4, 57, 19,117,
/* 0x0210 */ 18, 15,182,192, 80, 15,182, 69,238, 80, 82,255,115, 4,255,215,
/* 0x0220 */ 131,196, 16,139, 69,232, 1, 70, 4, 41, 6,235, 10,139, 83, 4,
/* 0x0230 */ 137,240,232, 13,255,255,255,139, 85,228,139, 3, 1, 83, 4, 41,
/* 0x0240 */ 208,133,192,137, 3,233, 68,255,255,255,141,101,244, 91, 94, 95,
/* 0x0250 */ 201,195,133,192, 83,137,195,116, 35,168, 1,117, 31,139, 3, 57,
/* 0x0260 */ 208,116, 9,131,248, 1,117, 11,133,210,116, 11,137, 19,137, 75,
/* 0x0270 */ 4,235, 9,133,192,116, 5,131,195, 8,235,225, 91,195, 85,137,
/* 0x0280 */ 229, 87, 86, 83,131,236,104,137, 69,200,139, 69, 12,137, 85,196,
/* 0x0290 */ 139, 77, 24,199, 69,228, 0, 0, 0, 0,137, 69,192,139, 69,196,
/* 0x02a0 */ 137, 77,184,139, 93,196,139,117,196,199, 69,232, 0, 0, 0, 0,
/* 0x02b0 */ 15,183, 72, 44,199, 69,220, 0, 0, 0, 0,139, 85, 16,199, 69,
/* 0x02c0 */ 224, 0, 0, 0, 0, 3, 91, 28,199, 69,236,255,255,255,255, 15,
/* 0x02d0 */ 183,118, 16,137, 85,188,137,202,199, 69,240,255,255,255,255, 74,
/* 0x02e0 */ 137, 93,180,137,117,176,199, 69,148, 0, 0, 0, 0,120, 62,137,
/* 0x02f0 */ 206,131, 59, 1,117, 49,139, 67, 24,139, 75, 8,131,224, 1,141,
/* 0x0300 */ 20,133, 0, 0, 0, 0, 57, 76, 42,236,118, 11,139, 67, 16,137,
/* 0x0310 */ 76, 42,236,137, 68, 21,228,139, 67, 20,141,125,220, 1,200, 57,
/* 0x0320 */ 4, 58,115, 3,137, 4, 58,131,195, 32, 78,117,196,131,125,176,
/* 0x0330 */ 2,116, 63,129,125,220,255,255,255, 31,118, 54,139, 77, 8,139,
/* 0x0340 */ 93, 8,139, 65, 4,137,194,137,193,139, 3,129,225,255,255,255,
/* 0x0350 */ 3,129,226, 0, 0, 0,252, 37,255,255,255, 3, 57,193,118, 2,
/* 0x0360 */ 137,200,141,148, 2,255, 15, 0, 0,129,226, 0,240,255,255,137,
/* 0x0370 */ 85,148,139,117, 8, 49,255,199, 69,144, 1, 0, 0, 0,137,117,
/* 0x0380 */ 152,141, 69,236,139, 85,148,139,117,152,139, 28, 7,137,217,129,
/* 0x0390 */ 227, 0,240,255,255,129,225,255, 15, 0, 0, 3, 76, 47,228,137,
/* 0x03a0 */ 28, 7,139, 68, 47,220, 1,194, 41,216,137, 22, 3, 93,148,106,
/* 0x03b0 */ 0, 5,255, 15, 0, 0,106,255, 37, 0,240,255,255,104, 18, 16,
/* 0x03c0 */ 0, 0,129,193,255, 15, 0, 0,106, 0,129,225, 0,240,255,255,
/* 0x03d0 */ 80,131,198, 4, 83,137, 68, 47,220,137, 76, 47,228,232,170, 3,
/* 0x03e0 */ 0, 0,137, 68, 61,212,131,196, 24,131,199, 4,255, 77,144,137,
/* 0x03f0 */ 117,152,121,141,139, 69,212,199, 69,168, 0, 0, 0, 0,139, 85,
/* 0x0400 */ 236,139, 77,196, 41,208,102,131,121, 44, 0,137, 69,172, 15,132,
/* 0x0410 */ 245, 1, 0, 0,139, 93,180,139, 3,131,248, 6,117, 34,131,125,
/* 0x0420 */ 192, 0, 15,132,202, 1, 0, 0,139, 77,172,186, 3, 0, 0, 0,
/* 0x0430 */ 3, 75, 8,139, 69,188,232, 23,254,255,255,233,178, 1, 0, 0,
/* 0x0440 */ 72, 15,133,171, 1, 0, 0,139,117,180,139, 86, 20,133,210, 15,
/* 0x0450 */ 132,157, 1, 0, 0,139, 69,172,199, 69,164, 64, 98, 81,115, 3,
/* 0x0460 */ 70, 8,139, 78, 24,141, 20, 16,131,225, 7,193,225, 2,137, 69,
/* 0x0470 */ 208,211,109,164,137, 85,156,139, 78, 16,137,194,131,101,164, 7,
/* 0x0480 */ 129,226,255, 15, 0, 0,137, 77,204,141, 52, 17,139, 77,180, 41,
/* 0x0490 */ 208,137, 69,160,139, 65, 4, 41,208,131,125,192, 0, 80,139, 69,
/* 0x04a0 */ 200,116, 3,131,200,255,131,125,192, 1, 80, 25,192, 37, 0,240,
/* 0x04b0 */ 255,255, 5, 18, 16, 0, 0,131,125,192, 0, 80,139, 69,164,116,
/* 0x04c0 */ 3,131,200, 2,131,125,192, 0, 80,137,240,116, 3,141, 70, 3,
/* 0x04d0 */ 80,255,117,160,232,179, 2, 0, 0,131,196, 24, 57, 69,160, 15,
/* 0x04e0 */ 133,188, 0, 0, 0,131,125,192, 0,116, 28,246, 69,164, 4,139,
/* 0x04f0 */ 69,184,117, 2, 49,192, 80,139, 69,192,255,117,200,141, 85,204,
/* 0x0500 */ 232,112,252,255,255, 95, 88,137,247,247,223,129,231,255, 15, 0,
/* 0x0510 */ 0,246, 69,164, 2,116, 17,139, 69,160, 1,240,133,255,116, 8,
/* 0x0520 */ 137,249,198, 0, 0, 64,226,250,131,125,192, 0,116,122,139, 93,
/* 0x0530 */ 180,131, 59, 1,117, 88,246, 67, 24, 1,116, 82,139, 83, 20,137,
/* 0x0540 */ 216,139, 91, 8,141, 12, 26, 3, 77,172, 59, 80, 16,117, 14,137,
/* 0x0550 */ 200,247,216, 37,255, 15, 0, 0,131,248, 3,119, 17,139, 85,180,
/* 0x0560 */ 107, 69,172, 52,131,122, 4, 0,141, 76, 3, 12,117, 15,139, 1,
/* 0x0570 */ 61,205,128,201,195,116, 6,199, 1,205,128,201,195,133,201,116,
/* 0x0580 */ 13,139, 69,188, 49,210,131,224,254,232,196,252,255,255,255,117,
/* 0x0590 */ 164, 86,255,117,160,232, 51, 2, 0, 0,131,196, 12,133,192,116,
/* 0x05a0 */ 7,106,127,232, 9, 2, 0, 0,141, 4, 62,139, 93,160, 1,195,
/* 0x05b0 */ 59, 93,156,115, 33,106, 0,106,255,104, 18, 16, 0, 0,255,117,
/* 0x05c0 */ 164, 41, 93,156,255,117,156, 83,232,191, 1, 0, 0,131,196, 24,
/* 0x05d0 */ 57,195,116, 30,235,203,131,125,192, 0,116, 22,141, 70, 3, 37,
/* 0x05e0 */ 255, 15, 0, 0,131,248, 3,119, 9, 80, 83,232,217, 1, 0, 0,
/* 0x05f0 */ 89, 91,139, 77,196,255, 69,168, 15,183, 65, 44,131, 69,180, 32,
/* 0x0600 */ 57, 69,168, 15,140, 11,254,255,255,131,125,192, 0,117, 13,255,
/* 0x0610 */ 117,200,232,174, 1, 0, 0, 90,133,192,117,133,131,125, 20, 0,
/* 0x0620 */ 116, 8,139,117,172,139, 93, 20,137, 51,139, 69,196,139, 64, 24,
/* 0x0630 */ 1, 69,172,139, 69,172,141,101,244, 91, 94, 95,201,195, 85,137,
/* 0x0640 */ 229, 87, 86, 83,131,236, 24,141, 85, 24,139, 69, 8,106, 0,139,
/* 0x0650 */ 125, 28,199, 69,232, 0, 0, 0, 0,137, 69,228,139, 69, 16,139,
/* 0x0660 */ 93, 32,199, 69,236, 0, 0, 0, 0,137, 69,224,131,192, 2,255,
/* 0x0670 */ 117,224,137, 69,220,141, 69, 32,141,119, 52,232,245,250,255,255,
/* 0x0680 */ 139, 69, 12,185, 0, 16, 0, 0,186, 6, 0, 0, 0,137, 69, 32,
/* 0x0690 */ 139, 69,228, 41, 93, 36,232,183,251,255,255, 15,183, 79, 44,139,
/* 0x06a0 */ 69,228,186, 5, 0, 0, 0,232,166,251,255,255, 15,183, 79, 42,
/* 0x06b0 */ 139, 69,228,186, 4, 0, 0, 0,232,149,251,255,255,139, 77, 40,
/* 0x06c0 */ 3, 78, 8,186, 3, 0, 0, 0,139, 69,228,131,193, 52,232,127,
/* 0x06d0 */ 251,255,255,141, 69,240,255,117,220,137,250, 80,141, 69, 32,255,
/* 0x06e0 */ 117,228, 80,141, 69,232, 80,139, 69,224,232,143,251,255,255,186,
/* 0x06f0 */ 9, 0, 0, 0,137,193,137,195,139, 69,228,232, 82,251,255,255,
/* 0x0700 */ 102,139, 79, 44,131,196, 28, 49,210,102,133,201,116,116,131, 62,
/* 0x0710 */ 3,117,100,106, 0,139, 69,240,106, 0, 3, 70, 8, 80,232,158,
/* 0x0720 */ 0, 0, 0,131,196, 12,133,192,137,195,120, 22,104, 0, 2, 0,
/* 0x0730 */ 0, 87, 80,232,129, 0, 0, 0,131,196, 12, 61, 0, 2, 0, 0,
/* 0x0740 */ 116, 7,106,127,232,104, 0, 0, 0,141, 69,240,137,250,106, 0,
/* 0x0750 */ 80,106, 0,141, 69,232,106, 0, 80,137,216,232, 30,251,255,255,
/* 0x0760 */ 139, 77,240,137,195,139, 69,228,186, 7, 0, 0, 0,232,224,250,
/* 0x0770 */ 255,255,131,196, 20,235, 11, 66, 15,183,193,131,198, 32, 57,194,
/* 0x0780 */ 124,140,141,101,244,137,216, 91, 94, 95,201,195, 85,137,229, 49,
/* 0x0790 */ 192, 80,255,117, 28, 80,255,117, 24,255,117, 20,255,117, 16,255,
/* 0x07a0 */ 117, 12,255,117, 8, 80,176,197, 80, 80,176,198,205,128,201,195,
/* 0x07b0 */ 195,176, 1, 15,182,192,205,128,195,176, 3,235,246,176, 4,235,
/* 0x07c0 */ 242,176, 5,235,238,176, 6,235,234,176, 73,235,230,176, 74,235,
/* 0x07d0 */ 226,176, 33,235,222,176, 20,235,218,176, 92,235,214,176, 59,235,
/* 0x07e0 */ 210,176, 2,235,206,176,130,235,202,176,116,235,198,176,240,235,
/* 0x07f0 */ 194,176, 10,235,190,176, 7,235,186
/* 0x0140 */ 95,195, 0, 0, 85,137,229, 87, 86,137,199, 83,137,206,139, 15,
/* 0x0150 */ 139, 64, 4, 57,241,137,195,114, 36,133,246,116, 15,137,241,138,
/* 0x0160 */ 3, 67,136, 2, 66,226,248,139, 71, 4,139, 15, 1,240, 41,241,
/* 0x0170 */ 137, 71, 4,137, 15,141,101,244, 91, 94, 95,201,195,106,127,232,
/* 0x0180 */ 5, 7, 0, 0, 85,137,229, 87, 86,137,198, 83,137,211,131,236,
/* 0x0190 */ 24,139, 58,139, 69, 8,133,255,137, 69,220, 15,132,153, 0, 0,
/* 0x01a0 */ 0,141,125,228,137,240,185, 12, 0, 0, 0,137,250,232,146,255,
/* 0x01b0 */ 255,255,139, 69,228,133,192, 15,132,203, 0, 0, 0,139, 77,232,
/* 0x01c0 */ 133,201, 15,132,201, 0, 0, 0, 57,193, 15,135,193, 0, 0, 0,
/* 0x01d0 */ 59, 3, 15,135,185, 0, 0, 0, 57,193,115,102,137, 69,224,141,
/* 0x01e0 */ 69,224,255,117,236, 80,255,115, 4, 81,255,118, 4,255, 85,220,
/* 0x01f0 */ 131,196, 20,133,192, 15,133,150, 0, 0, 0,139, 85,228, 59, 85,
/* 0x0200 */ 224, 15,133,138, 0, 0, 0,138, 69,237,132,192,116, 19,139, 77,
/* 0x0210 */ 12,133,201,116, 12,129,250, 0, 2, 0, 0,119, 75, 57, 19,116,
/* 0x0220 */ 71,139, 69,232, 1, 70, 4, 41, 6,139, 3, 1, 83, 4, 41,208,
/* 0x0230 */ 133,192,137, 3, 15,133,106,255,255,255,141,101,244, 91, 94, 95,
/* 0x0240 */ 201,195,139, 83, 4,137,240,232,248,254,255,255,139, 85,228,139,
/* 0x0250 */ 3, 1, 83, 4, 41,208,133,192,137, 3, 15,133, 68,255,255,255,
/* 0x0260 */ 141,101,244, 91, 94, 95,201,195, 15,182,192, 80, 15,182, 69,238,
/* 0x0270 */ 80, 82,255,115, 4,255, 85, 12,139, 69,232, 1, 70, 4,131,196,
/* 0x0280 */ 16, 41, 6,139, 85,228,235,161,129,125,232, 85, 80, 88, 33,116,
/* 0x0290 */ 7,106,127,232,241, 5, 0, 0,139, 30,133,219,116,156,235,241,
/* 0x02a0 */ 133,192, 83,137,195,116, 33,168, 1,117, 29,139, 3, 57,208,116,
/* 0x02b0 */ 18,131,248, 1,116, 20,133,192,116, 14,131,195, 8,139, 3, 57,
/* 0x02c0 */ 208,117,238,137, 19,137, 75, 4, 91,195,133,210,117,245,131,195,
/* 0x02d0 */ 8,235,234, 85,137,229, 87, 86, 83,131,236,108,137, 85,196,139,
/* 0x02e0 */ 77, 24,137, 69,200,139, 93,196,199, 69,228, 0, 0, 0, 0,139,
/* 0x02f0 */ 69, 12,137, 77,184,139, 77,196,199, 69,232, 0, 0, 0, 0, 15,
/* 0x0300 */ 183, 91, 16,137, 69,192,139,125,196,199, 69,220, 0, 0, 0, 0,
/* 0x0310 */ 15,183, 65, 44,199, 69,224, 0, 0, 0, 0, 3,127, 28,137, 93,
/* 0x0320 */ 180,139, 85, 16,199, 69,236,255,255,255,255,137,195,199, 69,240,
/* 0x0330 */ 255,255,255,255, 75,137, 85,188,199, 69,148, 0, 0, 0, 0,137,
/* 0x0340 */ 250,120, 15,131, 58, 1, 15,132,114, 1, 0, 0,131,194, 32, 75,
/* 0x0350 */ 121,241,131,125,180, 2,116, 60,129,125,220,255,255,255, 31,118,
/* 0x0360 */ 51,139, 93, 8,139, 67, 4,137,193,137,194,139, 3,129,226,255,
/* 0x0370 */ 255,255, 3,129,225, 0, 0, 0,252, 37,255,255,255, 3, 57,194,
/* 0x0380 */ 118, 2,137,208,141,140, 1,255, 15, 0, 0,129,225, 0,240,255,
/* 0x0390 */ 255,137, 77,148,199, 69,172, 0, 0, 0, 0,139,117,172,139, 85,
/* 0x03a0 */ 148,193,230, 2,139, 92, 46,236,139, 68, 46,220,137,217,129,227,
/* 0x03b0 */ 0,240,255,255,137, 69,140, 1,194,137, 93,144,139, 69, 8,137,
/* 0x03c0 */ 92, 46,236,139, 93,172,129,225,255, 15, 0, 0,137, 20,152,139,
/* 0x03d0 */ 85,144, 41, 85,140,106, 0,139, 69,140,106,255, 3, 76, 46,228,
/* 0x03e0 */ 137,211,104, 18, 16, 0, 0, 3, 93,148, 5,255, 15, 0, 0, 37,
/* 0x03f0 */ 0,240,255,255,106, 0, 80,129,193,255, 15, 0, 0,129,225, 0,
/* 0x0400 */ 240,255,255, 83,137, 68, 46,220,137, 76, 46,228,232, 83, 4, 0,
/* 0x0410 */ 0,255, 69,172,131,196, 24,131,125,172, 1,137, 68, 46,212, 15,
/* 0x0420 */ 142,118,255,255,255,139, 69,196,199, 69,168, 0, 0, 0, 0,139,
/* 0x0430 */ 77,212,139, 93,236,102,139, 80, 44, 41,217,102,133,210,137, 77,
/* 0x0440 */ 176,117, 23,235, 75, 72, 15,132,174, 0, 0, 0,255, 69,168, 15,
/* 0x0450 */ 183,194,131,199, 32, 59, 69,168,126, 54,139, 7,131,248, 6,117,
/* 0x0460 */ 228,139, 93,192,133,219,116,228,139, 77,176,186, 3, 0, 0, 0,
/* 0x0470 */ 3, 79, 8,139, 69,188,232, 37,254,255,255,139, 77,196,131,199,
/* 0x0480 */ 32,255, 69,168,102,139, 81, 44, 15,183,194, 59, 69,168,127,202,
/* 0x0490 */ 139, 77,192,133,201, 15,132, 65, 2, 0, 0,139, 69, 20,133,192,
/* 0x04a0 */ 116, 8,139, 69,176,139, 93, 20,137, 3,139, 85,196,139, 82, 24,
/* 0x04b0 */ 1, 85,176,139, 69,176,141,101,244, 91, 94, 95,201,195,139, 66,
/* 0x04c0 */ 24,139, 74, 8,131,224, 1,141, 52,133, 0, 0, 0, 0, 57, 76,
/* 0x04d0 */ 46,236,118, 11,139, 66, 16,137, 76, 46,236,137, 68, 46,228,139,
/* 0x04e0 */ 66, 20, 1,200, 57, 68, 46,220, 15,131, 94,254,255,255,131,194,
/* 0x04f0 */ 32,137, 68, 46,220,233, 85,254,255,255,139, 95, 20,133,219, 15,
/* 0x0500 */ 132, 71,255,255,255,139, 69,176,199, 69,164, 64, 98, 81,115, 3,
/* 0x0510 */ 71, 8,139, 79, 24,131,225, 7,137,194,193,225, 2,129,226,255,
/* 0x0520 */ 15, 0, 0,211,109,164, 1,195,139, 79, 16,137, 69,208, 41,208,
/* 0x0530 */ 131,101,164, 7,137, 77,204,141, 52, 17,139, 77,192,137, 69,160,
/* 0x0540 */ 139, 71, 4,137, 93,156, 41,208,133,201, 80,139, 69,200,116, 5,
/* 0x0550 */ 184,255,255,255,255,131,125,192, 1, 80,139, 85,192, 25,192, 37,
/* 0x0560 */ 0,240,255,255, 5, 18, 16, 0, 0,133,210, 80,139, 69,164,116,
/* 0x0570 */ 3,131,200, 2,139, 93,192, 80,137,240,133,219,116, 3,141, 70,
/* 0x0580 */ 3, 80,255,117,160,232,218, 2, 0, 0,131,196, 24, 59, 69,160,
/* 0x0590 */ 15,133, 87, 1, 0, 0,139, 77,192,133,201,116, 31,246, 69,164,
/* 0x05a0 */ 4,139, 69,184,117, 5,184, 0, 0, 0, 0, 80,139, 69,192,255,
/* 0x05b0 */ 117,200,141, 85,204,232,202,251,255,255, 88, 90,137,243,247,219,
/* 0x05c0 */ 129,227,255, 15, 0, 0,246, 69,164, 2,116, 13,139, 69,160, 1,
/* 0x05d0 */ 240,133,219, 15,133,141, 0, 0, 0,139, 69,192,133,192,116, 32,
/* 0x05e0 */ 131, 63, 1, 15,132,138, 0, 0, 0,255,117,164, 86,255,117,160,
/* 0x05f0 */ 232,176, 2, 0, 0,131,196, 12,133,192, 15,133,237, 0, 0, 0,
/* 0x0600 */ 141, 4, 30,139, 93,160, 1,195, 59, 93,156,114, 42,139, 69,192,
/* 0x0610 */ 133,192, 15,132,184, 0, 0, 0,141, 70, 3, 37,255, 15, 0, 0,
/* 0x0620 */ 131,248, 3, 15,135, 82,254,255,255, 80, 83,232,113, 2, 0, 0,
/* 0x0630 */ 91, 94,233, 68,254,255,255,106, 0,106,255,104, 18, 16, 0, 0,
/* 0x0640 */ 255,117,164, 41, 93,156,255,117,156, 83,232, 21, 2, 0, 0,131,
/* 0x0650 */ 196, 24, 57,216, 15,133,147, 0, 0, 0,139, 93,196,102,139, 83,
/* 0x0660 */ 44,233,230,253,255,255,137,217,198, 0, 0, 64,226,250,233,102,
/* 0x0670 */ 255,255,255,246, 71, 24, 1, 15,132,108,255,255,255,139, 87, 20,
/* 0x0680 */ 139, 71, 8,137, 69,152, 1,208,137,193, 3, 77,176, 59, 87, 16,
/* 0x0690 */ 116, 98,107, 69,176, 52,139, 85,152,141, 76, 2, 12,139, 71, 4,
/* 0x06a0 */ 133,192,117, 15,139, 1, 61,205,128,201,195,116, 6,199, 1,205,
/* 0x06b0 */ 128,201,195,133,201, 15,132, 46,255,255,255,139, 69,188,186, 0,
/* 0x06c0 */ 0, 0, 0,131,224,254,232,213,251,255,255,233, 25,255,255,255,
/* 0x06d0 */ 139, 69,196,102,139, 80, 44,233,112,253,255,255,255,117,200,232,
/* 0x06e0 */ 185, 1, 0, 0, 90,133,192, 15,132,174,253,255,255,106,127,232,
/* 0x06f0 */ 149, 1, 0, 0,137,200,247,216, 37,255, 15, 0, 0,131,248, 3,
/* 0x0700 */ 119,162,235,142, 85,137,229, 87, 86, 83,131,236, 24,141, 85, 24,
/* 0x0710 */ 139, 69, 8,106, 0,139,117, 16,199, 69,232, 0, 0, 0, 0,137,
/* 0x0720 */ 69,228,139, 69, 28, 86,139, 93, 32,137, 69,220,137,199,141, 70,
/* 0x0730 */ 2,131,199, 52,199, 69,236, 0, 0, 0, 0,137, 69,224,141, 69,
/* 0x0740 */ 32,232, 62,250,255,255,139, 69, 12,185, 0, 16, 0, 0,186, 6,
/* 0x0750 */ 0, 0, 0,137, 69, 32,139, 69,228, 41, 93, 36,232, 63,251,255,
/* 0x0760 */ 255,139, 69,220,186, 5, 0, 0, 0, 15,183, 72, 44,139, 69,228,
/* 0x0770 */ 232, 43,251,255,255,139, 69,220,186, 4, 0, 0, 0, 15,183, 72,
/* 0x0780 */ 42,139, 69,228,232, 23,251,255,255,139, 77, 40, 3, 79, 8,186,
/* 0x0790 */ 3, 0, 0, 0,139, 69,228,131,193, 52,232, 1,251,255,255,141,
/* 0x07a0 */ 69,240,255,117,224, 80,139, 85,220,141, 69, 32,255,117,228, 80,
/* 0x07b0 */ 141, 69,232, 80,137,240,232, 24,251,255,255,186, 9, 0, 0, 0,
/* 0x07c0 */ 137,193,137,195,139, 69,228,232,212,250,255,255,139, 69,220,131,
/* 0x07d0 */ 196, 28,186, 0, 0, 0, 0,102,139, 72, 44,102,133,201,116, 16,
/* 0x07e0 */ 131, 63, 3,116, 21, 66, 15,183,193,131,199, 32, 57,208,127,240,
/* 0x07f0 */ 141,101,244,137,216, 91, 94, 95,201,195,106, 0,139, 69,240,106,
/* 0x0800 */ 0, 3, 71, 8, 80,232,143, 0, 0, 0,131,196, 12,133,192,137,
/* 0x0810 */ 195,120, 24,104, 0, 2, 0, 0,255,117,220, 80,232,112, 0, 0,
/* 0x0820 */ 0,131,196, 12, 61, 0, 2, 0, 0,116, 7,106,127,232, 87, 0,
/* 0x0830 */ 0, 0,141, 69,240,139, 85,220,106, 0, 80,106, 0,141, 69,232,
/* 0x0840 */ 106, 0, 80,137,216,232,137,250,255,255,139, 77,240,137,195,139,
/* 0x0850 */ 69,228,186, 7, 0, 0, 0,232, 68,250,255,255,131,196, 20,235,
/* 0x0860 */ 143, 0, 0, 0, 85,137,229, 49,192, 80,255,117, 28, 80,255,117,
/* 0x0870 */ 24,255,117, 20,255,117, 16,255,117, 12,255,117, 8, 80,176,197,
/* 0x0880 */ 80, 80,176,198,205,128,201,195,195,176, 1, 15,182,192,205,128,
/* 0x0890 */ 195,176, 3,235,246,176, 4,235,242,176, 5,235,238,176, 6,235,
/* 0x08a0 */ 234,176, 73,235,230,176, 74,235,226,176, 33,235,222,176, 20,235,
/* 0x08b0 */ 218,176, 92,235,214,176, 59,235,210,176, 2,235,206,176,130,235,
/* 0x08c0 */ 202,176,116,235,198,176,240,235,194,176, 10,235,190,176, 7,235,
/* 0x08d0 */ 186
};
+327 -141
View File
@@ -32,18 +32,56 @@
*/
#include "arch/i386/macros.S"
NBPW= 4 // Number of Bytes Per Word
.att_syntax // opcode src,dst
#define arg1 ebx
#define arg2 ecx
#define arg3 edx
NBPW= 4
sz_b_info= 12
sz_unc= 0
sz_cpr= 4
b_method= 8
PROT_READ= 1
PROT_WRITE= 2
PROT_EXEC= 4
MAP_FIXED= 0x10
MAP_SHARED= 0x01
MAP_PRIVATE= 0x02
MAP_ANONYMOUS= 0x20
szElf32_Ehdr= 0x34
p_memsz= 5*4
__NR_exit= 1
__NR_write= 4
__NR_open= 5
__NR_close= 6
__NR_mkdir= 39
__NR_oldmmap= 90 // %ebx -> args[6]
__NR_stat= 106
__NR_olduname= 109
__NR_oldolduname= 59
__NR_uname= 122
__NR_memfd_create= 356
__NR_mprotect= 125
ENOSYS= 38 /* Invalid system call number */
NAME_MAX= 255 // # chars in file name; linux/include/uapi/linux/limits.h
PAGE_SHIFT= 12
PAGE_SIZE= ( 1 << PAGE_SHIFT)
PAGE_MASK= (~0 << PAGE_SHIFT)
M_NRV2B_LE32= 2
/*************************************************************************
// program entry point
// see glibc/sysdeps/i386/elf/start.S
**************************************************************************/
section LEXEC000
sz_pack2 = -4+ _start
_start: .globl _start
//// nop; int3 // DEBUG
push eax // space for %entry address
/*
;; How to debug this code: Uncomment the 'int3' breakpoint instruction above.
;; Build the stubs and upx. Compress a testcase, such as a copy of /bin/date.
@@ -62,168 +100,316 @@ _start: .globl _start
;; Step through the code; remember that <Enter> repeats the previous command.
;;
*/
call main // push address of decompress subroutine
decompress:
f_exp: // synonym
// /*************************************************************************
// // C callable decompressor
// **************************************************************************/
section ELFMAINX
sz_pack2 = -NBPW+ _start
_start: .globl _start
/// nop; int3 // DEBUG i386 entry.S
call L70 // MATCH_08 push $&getbit
L70ret:
// /* Offsets to parameters, allowing for {pusha + call} */
#define O_INP (8*4 +1*4)
#define O_INS (8*4 +2*4)
#define O_OUTP (8*4 +3*4)
#define O_OUTS (8*4 +4*4)
#define O_PARAM (8*4 +5*4)
#define bits %ebx
getbit:
addl bits,bits; jz refill // Carry= next bit
rep; ret // rep: stop instruction pipeline (spend 1 byte for speed)
refill:
mov (%esi),bits; sub $-NBPW,%esi // next 32 bits; set Carry
adc bits,bits // LSB= 1 (CarryIn); CarryOut= next bit
ret // infrequent (1/32)
#define INP dword ptr [esp+O_INP]
#define INS dword ptr [esp+O_INS]
#define OUTP dword ptr [esp+O_OUTP]
#define OUTS dword ptr [esp+O_OUTS]
#define PARM dword ptr [esp+O_PARAM]
#define foldi %esi
#define r_getb %edx
#define r_unc %ebx
#define u_len %edi
section LEXEC009
//; empty section for commonality with l_lx_exec86.asm
section LEXEC010
pusha
// cld
L20:
pop foldi // MATCH_09 &fold_info
mov esi, INP
mov edi, OUTP
#define old_sp %ebp
F_FRAME= 7*NBPW
F_ENTR= 6*NBPW; F_PMASK= F_ENTR
F_MFD= 5*NBPW
F_LENU= 4*NBPW
F_ADRU= 3*NBPW
F_ELFA= 2*NBPW
F_LENX= 1*NBPW
F_ADRX= 0*NBPW
or ebp, -1
//;; align 8
D_FOLD= 3*NBPW // .data space at start of unfold
D_QFLG= 2*NBPW
D_FNAME= 1*NBPW
D_PMASK= 0*NBPW
#include "arch/i386/nrv2b_d32.S"
#include "arch/i386/nrv2d_d32.S"
#include "arch/i386/nrv2e_d32.S"
#include "arch/i386/lzma_d.S"
cjt32 0
#if 0 //{ DEBUG
mov $0xa5a5a5a5,%eax
push %eax; push %eax; push %eax; push %eax
push %eax; push %eax; push %eax
#else //}{ non-DEBUG
sub $F_FRAME,%esp
#endif //}
AT_PAGESZ= 6 // /usr/include/elf.h
lea NBPW + F_FRAME(%esp),%edi // past argc
call zfind // skip argv
call zfind // skip env
0: // find AT_PAGESZ in auxv
mov (%edi),%eax
mov NBPW(%edi),%ecx; add $2*NBPW,%edi
cmp $AT_PAGESZ,%eax; je 5f
mov $1<<12,%ecx // default PAGE_SIZE
test %eax,%eax; jne 0b
5:
neg %ecx // PAGE_MASK
section LEXEC015
// eax is 0 from decompressor code
//xor eax, eax ; return code
mov %esp,old_sp
mov %ecx,F_PMASK(old_sp)
lea sz_pack2 - L70ret(r_getb),%edi
mov (%edi),%ecx
sub %ecx,%edi; mov %edi,F_ELFA(old_sp)
lodsl // O_BINFO | is_ptinterp | unmap_all_pages; advance to &b_info
add %eax,%edi; mov %edi,F_ADRX(old_sp)
sub %eax,%ecx; mov %ecx,F_LENX(old_sp)
// cmpw $M_NRV2B_LE32|(0<<8),b_method(foldi); je 0f; hlt; 0: // check method and filter bytes
// check compressed size
mov edx, INP
add edx, INS
cmp esi, edx
jz .ok
dec eax
.ok:
mov /*sz_unc*/(foldi),r_unc
// align + {page_mask, fd_name} + "/data/data/$APP_NAME/cache/upxAAA"
lea (1+ NAME_MAX + 2*NBPW + D_FOLD + (1+ 11 + 13))(r_unc),u_len
mov u_len,F_LENU(old_sp)
sub u_len,%esp // alloca
and $-2*NBPW,%esp // align stack
// write back the uncompressed size
sub edi, OUTP
mov edx, OUTS
mov [edx], edi
lea (2*NBPW + D_FOLD)(r_unc),%eax; add %esp,%eax
and $-2*NBPW,%eax; push %eax // MATCH_31 where to put pathname
mov %eax,%ecx
sub %esp,%ecx; mov %ecx,D_FNAME(%esp) // forward to unfolded code
mov F_PMASK(old_sp),%ecx; mov %ecx,D_PMASK(%esp) // forward to unfolded code
mov $MAP_PRIVATE|MAP_ANONYMOUS,%ecx; mov %ecx,D_QFLG(%esp) // forward to unfolded code
mov [7*4 + esp], eax
popa
ret
xor %ecx,%ecx // zero
push %edx // MATCH_33 save &getbit
push %eax // arg3 &pathname
mov %ecx,(%eax) // empty string
push u_len // arg2
push %ecx // arg1 0==> any page
call upx_mmap_and_fd; add $3*NBPW,%esp // (ptr, len, pathname)
pop %edx // MATCH_33 restore &getbit
mov %eax,%ecx
shr $12,%eax; shl $12,%eax; mov %eax,F_ADRU(old_sp)
sub %eax,%ecx; sub $1,%ecx; mov %ecx,F_MFD (old_sp)
#undef r_unc
#undef u_len
ctojr32
ctok32 edi, dl
section LEXEC017
popa
ret
// This is nrv2b_d32, inlined and optimized for small space (about 160 bytes).
// The task is to de-compress the folded pieces for shared library init:
// the de-compressor(s) of the PT_LOAD pieces, and the C-code supervisor
// which adjusts the placement and mapping of the address space.
// The output length is a couple KB for NRV, a few KB for Lzma, 64KB for Zstd.
// This is motivated by the possibility of using multiple de-compressors
// depending on the characteristics of each PT_LOAD, and by the increased size
// and compressability of C-coded de-compressors for Lzma and Zstd
// in contrast to the simple and small assembly-coded NRV.
section LEXEC020
/* Working registers for local NRV2B */
#define off %eax /* XXX: 2GB */
//#define bits %ebx
#define len %ecx /* XXX: 2GB */
#define disp %ebp
PAGE_SHIFT= 12
PAGE_SIZE= ( 1 << PAGE_SHIFT)
PAGE_MASK= (~0 << PAGE_SHIFT)
#define GETBIT call *r_getb /* %edx */
#define jnextb0 GETBIT; jnc
#define jnextb1 GETBIT; jc
MAP_FIXED= 0x10
MAP_PRIVATE= 0x02
MAP_ANONYMOUS= 0x20
/* rotate next bit (now in Carry) into bottom bit of reg */
#define getnextb(reg) GETBIT; adcl reg,reg
PROT_READ= 1
PROT_WRITE= 2
PROT_EXEC= 4
/* Arguments to decompress() */
#define src %esi
#define lsrc %ecx
#define dst %edi
//#define ldst %edx /* Out: actually a reference: &len_dst */
__NR_exit= 1
__NR_write= 4
__NR_open= 5
__NR_mmap= 90
__NR_mprotect= 125
lea D_FOLD(%esp),dst // &unfolded code
push old_sp // MATCH_16 save register
mov sz_cpr(foldi),lsrc
lea sz_b_info(foldi),src
#undef foldi
szElf32_Ehdr= 0x34
p_memsz= 5*4
decompress: // inlined: (uchar const *src, uint len, uchar *dst /*, u32 &ldst, uint method */)
add src,lsrc; push lsrc // MATCH_05 &input_eof
//subq src,lsrc // restore the value of lsrc; dead for inlined nrv2b
sz_unc= 0
sz_cpr= 4
//%esp:
// MATCH_05 &input_eof
// MATCH_16 old_sp
// space for de-compressed code
is_ptinterp= (1<<0)
unmap_all_pages= (1<<1)
//old_sp:
// MATCH_10 len unfolded_code
// MATCH_14 &so_info
// MATCH_03 pusha regs {%edi,%esi,%ebp,%esp,%ebx,%edx,%ecx,%eax}
// ret_addr
// MATCH_00 argc
// MATCH_01 argv
// MATCH_07 envp
#define pushsbli .byte 0x6a, /* push sign-extended byte to long immediate*/
xor bits,bits // empty; force refill
xor len,len // create loop invariant
or $~0,disp // -1: initial dispacement
cld // paranoia
.byte 0xa8 // "testb $... ,%al" ==> "jmp top_n2b"
lit_n2b:
movsb // *dst++ = *src++;
top_n2b:
jnextb1 lit_n2b
lea 1(len),off # [len= 0] off= 1
offmore_n2b:
getnextb(off)
jnextb0 offmore_n2b
// Decompress the rest of this loader, and jump to it
unfold: // IN: ebp= f_exp; esp/ &O_BINFO
pop esi; lodsd // skip O_BINFO; esi= &compressed fold_elf86
lea edi,[sz_pack2 - f_exp + ebp]
sub edi,[edi] // edi= &Elf32_Ehdr of this program
sub $ 3,off; jc len_n2b # use previous offset
shl $ 8,off; lodsb # off is %eax, so 'lodsb' is "off |= *src++;"
xor $~0,off; jz eof_n2b
mov off,disp # XXX: 2GB
len_n2b:
lea 1(len),off # [len= 0] off= 1
getnextb(len); getnextb(len) # two bits; cc set on result
jnz gotlen_n2b # raw 1,2,3 ==> 2,3,4
mov off,len # len= 1, the msb
add $3-1,off # raw 2.. ==> 5..
lenmore_n2b:
getnextb(len)
jnextb0 lenmore_n2b
gotlen_n2b:
cmp $-0xd00,disp # XXX: 2GB
adc off,len # len += off + (disp < -0xd00)
push %esi // MATCH_06
lea (%edi,disp),%esi
rep; movsb
pop %esi // MATCH_06
jmp top_n2b
push -1 // P_31 %fd
eof_n2b:
pop %ecx // MATCH_05 &input_eof
cmp %ecx,%esi; je 0f; hlt; 0: // test for ending in correct place
pop old_sp // MATCH_16
// Reserve space for unfolded stub
push 0 // offset
push -1 // fd
push MAP_PRIVATE|MAP_ANONYMOUS
mov edx,[esi] // .sz_unc
push PROT_READ|PROT_WRITE
push edx // len
push 0 // kernel chooses addr
call mmap
push edx // P_23 LENU
push eax // P_24 ADRU
xchg eax,edx // edx= ADRU
#define mfd %edi
mov F_MFD(old_sp),mfd
mov F_LENU(old_sp),%edx
mov %esp,%ecx
mov %edi,%ebx
mov $__NR_write,%al; call sys_check_al
// Unfold
lodsd; push eax; mov ebx,esp // sz_unc
lodsd; xchg ecx,eax // sz_cpr
lodsd; push eax // b_method
push ebx // &sz_unc
push edx // dst
push ecx // sz_cpr
push esi // src
call ebp // decompress
add esp,6*NBPW
mov old_sp,%esp // de-alloca
// PROT_EXEC
pop %ebx // P_24 ADRU
pop %ecx // P_23 LENU
push PROT_EXEC|PROT_READ; pop edx
push %ecx // P_23 LENU
push %ebx // P_24 ADRU
push __NR_mprotect; pop eax; int 0x80
push $0 // arg6
push mfd // arg5
push $MAP_FIXED|MAP_PRIVATE // arg4
push $PROT_READ|PROT_EXEC // arg3
push F_LENU(%ebp) // arg2
push F_ADRU(%ebp) // arg1
call mmap; add $6*NBPW,%esp
// Jump to unfolded code
lea esi,[-4*NBPW + esi]
lodsd // eax= O_BINFO; esi= &b_info
and eax,~(is_ptinterp | unmap_all_pages)
add eax,edi // ADRX
mov ecx,[sz_pack2 - f_exp + ebp] // LENX(==sz_pack2)
// eax:ADRX; ebx:free; ecx:LENX
// ebp:f_exp; esi:&b_info(fold); edi:dynbase
pop %edx; push %edx
jmp edx // esp/ ADRU,LENU,fd,%entry,argc,argv,0,...
mov mfd,%ebx
mov $__NR_close,%al; call sys_check_al
mmap: // oldmmap: ebx -> 6 arguments; remove arguments on return
lea ebx,[NBPW+esp]
push __NR_mmap; pop eax; int 0x80
cmp eax,PAGE_MASK; jb 0f; hlt; 0:
ret 6*4
mov F_ADRU(%ebp),%eax
add $D_FOLD,%eax // PAGE_MASK, upxfd_path, mflg_data
jmp *%eax
// %esp:
// MATCH_13 ptr unfolded_code; for escape hatch
// MATCH_12 len unfolded code; for escape hatch
// MATCH_14 &so_info
// MATCH_03 pusha regs {%edi,%esi,%ebp,%esp,%ebx,%edx,%ecx,%eax}
// ret_addr
// MATCH_00 argc
// MATCH_01 argv
// MATCH_07 envp
.balign 4 // for Android emulator
main:
pop ebp // &decompress
nop;nop // align 'call' opcode to (3 mod 4)
call unfold // " *--sp = &O_BINFO; goto unfold; "
// must be ".balign 4" here for Android emulator
.long O_BINFO
// compressed fold_elf86 follows
eof:
sys_check_al:
movzbl %al,%eax
sys_check: // syscall with error checking; if halt then %eax= -errno, %ecx= __NR_
push %eax // save __NR_ for debug
int $0x80
pop %ecx // recover __NR_ for debug
cmp $~0<<12,%eax; jb 0f; hlt; 0: // -errno
ret
mmap: .globl mmap // for C-callable, such as from upx_mmap_and_fd()
push %ebx // save register
lea 2*NBPW(%esp),%ebx
mov $__NR_oldmmap,%al; call sys_check_al // use simpler-for-us oldmmap
pop %ebx // restore register
ret // C-callable, so cannot remove 6 args here
get_upxfn_path: .globl get_upxfn_path
sub %eax,%eax // should not be called!
ret
stat: .globl stat
xchg %ebx,NBPW(%esp)
mov 2*NBPW(%esp),%ecx
push $__NR_stat; pop %eax; int $0x80
mov NBPW(%esp),%ebx
ret
uname: .globl uname
push %ebp; mov %esp,%ebp
push %ebx
mov 2*NBPW(%ebp),%ebx
push $__NR_olduname; pop %eax; int $0x80
pop %ebx; pop %ebp
ret
mkdir: .globl mkdir
push %ebp; mov %esp,%ebp
push %ebx
mov 2*NBPW(%ebp),%ebx
mov 3*NBPW(%ebp),%ecx
push __NR_mkdir; pop %eax; int $0x80
pop %ebx
pop %ebp
ret
memset: .globl memset // (dst, val, n)
push %ebp; mov %esp,%ebp
push %edi
mov (2+ 2)*NBPW(%ebp),%ecx
mov (2+ 1)*NBPW(%ebp),%eax
mov (2+ 0)*NBPW(%ebp),%edi
rep stosb
pop %edi
pop %ebp
ret
mempcpy: .globl mempcpy // (dst, src, n)
push %ebp; mov %esp,%ebp
push %edi; push %esi
mov (2+ 2)*NBPW(%ebp),%ecx
mov (2+ 1)*NBPW(%ebp),%esi
mov (2+ 0)*NBPW(%ebp),%edi
rep movsb
mov %edi,%eax
pop %esi; pop %edi; pop %ebp
ret
zfind:
mov (%edi),%eax; add $NBPW,%edi
test %eax,%eax; jne zfind
ret
my_bkpt: .globl my_bkpt
int3 // my_bkpt
ret
// IDENTSTR goes here
section ELFMAINZ
L70:
pop r_getb // MATCH_08 &getbit (also L70ret)
call L20 // MATCH_09 push $&fold_info
fold_info: // nice if 4-byte aligned
.long O_BINFO // | is_ptinterp | unmap_all_pages
// b_info (sz_unc, sz_cpr, method) of folded code (C-language, etc.)
/* vim:set ts=8 sw=8 et: */
+13
View File
@@ -0,0 +1,13 @@
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
OUTPUT_ARCH(i386)
SECTIONS
{
. = 0x00100000 + SIZEOF_HEADERS + 12; /* 12==sizeof(l_info) */
.text : {
}
ELFMAINX : {
*(ELFMAINX)
*(.text)
}
}
+173 -67
View File
@@ -32,7 +32,12 @@
#include "arch/i386/macros.S"
NBPW= 4
# WARNING: This file uses Intel syntax: opcode dst,src
# Memory operands use square brackets: [displ + %reg]
# Literal operands lack square brackets.
PAGE_SIZE= ( 1<<12)
PAGE_MASK= -PAGE_SIZE
PATH_MAX= 4096
ET_DYN= 3
@@ -49,6 +54,7 @@ sz_Elf32_Phdr= 8*NBPW
#define szp_info 12
#define a_type 0
#define a_val NBPW
#define sz_auxv 2*NBPW
is_ptinterp= (1<<0)
unmap_all_pages= (1<<1)
@@ -57,7 +63,13 @@ __NR_readlink= 85
__NR_munmap= 91
__NR_open= 5
__NR_close= 6
__NR_mmap= 0xc0
__NR_mkdir= 39
__NR_stat= 106
__NR_newmmap= 0xc0 // new mmap: args in ebx,ecx,edx,esi,edi,ebp
__NR_oldmmap= 90 // old mmap: %ebx -> args[6]
__NR_olduname= 109
__NR_oldolduname= 59
__NR_uname= 122
__NR_mprotect= 0x7d
__NR_brk= 45
@@ -71,58 +83,85 @@ O_RDONLY= 0
// control just falls through, after this part and compiled C code
// are uncompressed.
// enter:
// eax:ADRX; ebx:free; ecx:LENX
// ebp:f_exp; esi:&b_info; edi:elfaddr
// esp/ ADRU,LENU,%fd,%entry,argc,argv,0,envp,0,auxv,0,strings
// enter at fold_begin :
// esp/ ADRX,LENX,elfaddr,ADRU,LENU,%fd,%entry,argc,argv,0,envp,0,auxv,0,strings
// (ADRU,LENU) = params for final munmap()
// (ADRX,LENX) = extent of compressed program (after moving)
// (ADRX,LENX) = extent of compressed program
F_FRAME= 7*NBPW
F_ENTR= 6*NBPW; F_PMASK= F_ENTR
F_MFD= 5*NBPW
F_LENU= 4*NBPW
F_ADRU= 3*NBPW
F_ELFA= 2*NBPW
F_LENX= 1*NBPW
F_ADRX= 0*NBPW
PAGE_MASK= . - 3*NBPW
upxfn_path= . - 2*NBPW // displacement to filename string
mflg_data= . - 1*NBPW // QNZ vs Linux
fold_begin:
//// int3 // DEBUG
push edi // elfaddr
push ecx // LENX
push eax // ADRX
mov ebx,[-NBPW + esi] // O_BINFO | is_ptinterp | unmap_all_pages
//// int3 // DEBUG
pop ebx; push ebx // F_ADRX: elfaddr + (O_BINFO | is_ptinterp | unmap_all_pages)
jmp L10
mov esi,esp; testb bl,unmap_all_pages; jnz 0f; sub esp,PATH_MAX; 0:
mov edi,esp; push 8; pop ecx; rep movsd // copy ADRX,LENX,elfaddr,ADRU,LENU,%fd,entry,argc
get_page_mask: .globl get_page_mask
call 0f; 0: pop %ecx
mov %eax,[PAGE_MASK - 0b + %ecx]
ret
push ebp // f_exp
get_upxfn_path: .globl get_upxfn_path
call 0f; 0: pop %ecx
mov %eax,[upxfn_path - 0b + %ecx]
test %eax,%eax; je 1f; add %eax,%ecx
1:
ret
L10:
mov esi,esp
testb bl,unmap_all_pages; jnz 0f; sub esp,PATH_MAX; 0:
mov edi,esp; push 8; pop ecx; rep movsd // copy ADRX,LENX,elfaddr,ADRU,LENU,fd,entry,argc
push ebp // f_exp FIXME: this is no longer used
mov ebp,esp // frame: f_exp,ADRX,LENX,elfaddr,ADRU,LENU,%fd,entry,argc
0:
lodsd; test %eax,%eax; stosd; jne 0b // argv
push edi // P_05 &new_env[0]; f_exp,ADRX,LENX,elfaddr,ADRU,LENU,%fd,entry,argc
push edi // P_05 &new_env[0]; f_exp,ADRX,LENX,elfaddr,ADRU,LENU,fd,entry,argc
testb bl,unmap_all_pages; jnz 0f; stosd; 0: // space for new_env[0]
0:
lodsd; test %eax,%eax; stosd; jne 0b // env
push edi // P_06 &old_auxv,&new_env[0]; f_exp,ADRX,LENX,elfaddr,ADRU,LENU,%fd,entry,argc
push edi // P_06 &old_auxv,&new_env[0]; f_exp,ADRX,LENX,elfaddr,ADRU,LENU,fd,entry,argc
0:
lodsd; test %eax,%eax; stosd; movsd; jne 0b // auxv
testb bl,unmap_all_pages; jz env_pse
pop %edi // P_06 &old_auxv
pop edi // P_06 &old_auxv
pop ecx // toss P_05
push -1; pop [1*NBPW + F_MFD + esp]
jmp no_env_pse
env_pse:
inc eax // 1, AT_IGNORE
sub edi,2*NBPW // back to {AT_NULL}
push 5*2; pop ecx; rep stosd // 5 extra slots of AT_IGNORE
mov ecx,5*2; rep stosd // 5 extra slots of AT_IGNORE
dec eax; stosd; stosd // 0, AT_NULL
sub [-2*NBPW + ebp],edi // -len_aux
push edi // P_07 &new_aux[N],-len_aux,&new_env[0]; f_exp,ADRX,LENX,elfaddr,ADRU,LENU,%fd,entry,argc
push esi // P_08 &strings,&new_aux[N],-len_aux,&new_env[0]; f_exp,ADRX,LENX,elfaddr,ADRU,LENU,%fd,entry,argc
push edi // P_07 &new_aux[N],-len_aux,&new_env[0]; f_exp,ADRX,LENX,elfaddr,ADRU,LENU,fd,entry,argc
push esi // P_08 &strings,&new_aux[N],-len_aux,&new_env[0]; f_exp,ADRX,LENX,elfaddr,ADRU,LENU,fd,entry,argc
call 1f; 0: .asciz "/proc/self/exe"; 1:
// Use inline 'int 0x80' because failure is not fatal
pop ebx // P_08 path
sub ecx,ecx // O_RDONLY
push __NR_open; pop eax; int 0x80
mov [esp+ F_MFD + 5*NBPW],eax // fd for mmap
call 1f
0:
.asciz "/proc/self/exe"
1:
pop ebx; push ebx // path; copy of path
mov ecx,O_RDONLY
push __NR_open; pop eax; int 0x80; mov [6*NBPW + ebp],eax // fd
pop ebx // copy of path
mov edx,-5*2*NBPW -1+ PATH_MAX // buflen
mov ecx,edi // buffer
push __NR_readlink; pop eax; int 0x80; test eax,eax; jns 0f
// mov ebx,ebx // name
push __NR_readlink; pop eax; int 0x80
test eax,eax; jns 0f
mov ecx,ebx // point at name
mov eax,-1+ (1b - 0b) // len
0:
@@ -168,38 +207,33 @@ no_env_pse:
pop ebp // f_exp
// stack is back to original state: ADRX,LENX,elfaddr,ADRU,LENU,fd,entry,argc
pop eax // ADRX: &b_info
pop eax; and eax,~(is_ptinterp | unmap_all_pages) // ADRX: &b_info
pop esi // LENX: total_size
pop ecx // elfaddr
pop ebp // elfaddr
#define OVERHEAD 2048
#include "MAX_ELF_HDR.S"
sub esp, MAX_ELF_HDR_32 + OVERHEAD // alloca
mov edx, esp // &tmp
push ecx // elfaddr (9th arg)
mov ebx, [ eax] // length of uncompressed ELF headers
mov ecx, [NBPW + eax] // length of compressed ELF headers
add ecx, szb_info
// edi, esi, ebp, esp, ebx, edx, ecx, eax
pusha // (auxv, sz_cpr, f_expand, &tmp_ehdr, {sz_unc, &tmp}, {sz_cpr, &b1st_info} )
inc edi // swap with above 'pusha' to inhibit auxv_up for PT_INTERP
.extern upx_main
push esp // &tmp
push edi // &final_auxv[0]
push ebp // elfaddr
push esi // LENX total size
push eax // ADRX &b_info
call upx_main // returns entry address
dec edi
mov esi,eax // entry
mov ebp,[8*NBPW+ esp] // elfaddr
// leave 5 params on stack until de-alloca below
mov esi,eax // esi= entry; edi= auxv; ebp= elfaddr
// Discard C_TEXT (includes [ADRC,+LENC) )
mov ecx,[ebp+ p_memsz+sz_Elf32_Phdr+sz_Elf32_Ehdr] // Phdr[C_TEXT= 1].p_memsz
mov ebx,ebp // hi &Elf32_Ehdr
cmpw [e_type + ebp],ET_EXEC; jne 1f
push __NR_brk; pop %eax; int 0x80 // static __end_bss
mov al,__NR_brk; call sys_check_al // static __end_bss
1:
push __NR_munmap; pop %eax; int 0x80 // discard C_TEXT compressed data
mov al,__NR_munmap; call sys_check_al // discard C_TEXT compressed data
// Buggy programs may depend on uninit stack being 0, so clear what we used.
mov edx,edi // save auxv
mov edi,esp
mov ecx,((8 +1)*NBPW + MAX_ELF_HDR_32 + OVERHEAD) >>2 // 8 params, elfaddr, un-alloca
mov ecx,(5*NBPW + MAX_ELF_HDR_32 + OVERHEAD) >>2 // 5 params, de-alloca
xor eax,eax // 0
rep stosd // clear frame on exit
mov esp,edi // end of frame
@@ -215,7 +249,7 @@ no_env_pse:
push edi // fd, auxv, ADRU, LENU, entry, argc
// Map one page of /proc/self/exe so that symlink does not disappear
pop ebx // toss fd in case no_pse_map
pop ebx // fd in case no_pse_map
test edi,edi; js no_pse_map
push ebx // restore fd
sub ebp,ebp // 0 block in file
@@ -224,10 +258,10 @@ no_env_pse:
push PROT_READ; pop edx
mov ecx,PAGE_SIZE
sub ebx,ebx // 0 ==> Linux chooses page frame
push __NR_mmap; pop eax; int 0x80
mov al,__NR_newmmap; call sys_check_al
pop ebx // fd; auxv, LENU, ADRU, entry, argc
push __NR_close; pop eax; int 0x80
mov al,__NR_close; call sys_check_al
no_pse_map:
pop edi // auxv table
sub eax,eax // 0, also AT_NULL
@@ -253,6 +287,7 @@ L60:
mov al, __NR_munmap // eax was 0 from L60
jmp [edi] // unmap ourselves via escape hatch, then goto entry
section SYSCALLS
// Sometimes linux enforces page-aligned address
Pprotect: .globl Pprotect
xchg ebx,[1*NBPW + esp] // save reg, %ebx= address
@@ -261,29 +296,100 @@ Pprotect: .globl Pprotect
sub ecx,%ebx // extra length
add ecx,[2*NBPW + esp] // length
mov edx,[3*NBPW + esp] // bits
push __NR_mprotect; pop %eax; int 0x80
mov al,__NR_mprotect; call sys_check_al
cmp eax, -0x1000; jna 0f; hlt; 0:
mov ebx,[1*NBPW + esp] // restore reg
ret
mmap: .globl mmap // what happened to the ebx->args_on_stack method?
push ebp
push ebx
push esi
push edi
mov ebx,[ 5*NBPW + esp]
mov ecx,[ 6*NBPW + esp]
mov edx,[ 7*NBPW + esp]
mov esi,[ 8*NBPW+ esp]
mov edi,[ 9*NBPW + esp]
mov ebp,[10*NBPW + esp]
shr ebp,12
push __NR_mmap; pop eax; int 0x80
// FIXME: page-shift the file offset (last parameter) ??
// C-callable, so do NOT remove arguments as part of return
mmap: .globl mmap // oldmmap: ebx -> 6 arguments
push ebx // save register
lea ebx,[2*NBPW + esp]
mov al,__NR_oldmmap; call sys_check_al
pop ebx // restore register
ret
pop edi
pop esi
pop ebx
pop ebp
sys_check_al:
movzbl eax,al
sys_check:
push eax // save __NR_ for debug
int 0x80
pop edx // recover __NR_ for debug
cmp %eax,-1<<12; jae 0f; ret; 0:
hlt
stat: .globl stat
push %ebp
mov %ebp,%esp
push %ebx
mov %ebx,[2*NBPW + %ebp]
mov %ecx,[3*NBPW + %ebp]
push __NR_stat; pop %eax; int 0x80
pop %ebx; pop %ebp
ret
uname: .globl uname
push %ebp
mov %ebp,%esp
push %ebx
mov %ebx, [2*NBPW + %ebp]
push __NR_olduname; pop %eax; int 0x80
pop %ebx; pop %ebp
ret
mkdir: .globl mkdir
push %ebp
mov %ebp,%esp
push %ebx
mov %ebx,[2*NBPW + %ebp]
mov %ecx,[3*NBPW + %ebp]
push __NR_mkdir; pop %eax; int 0x80
pop %ebx
pop %ebp
ret
memset: .globl memset // (dst, val, n)
push %ebp
mov %ebp,%esp
push %edi
mov %ecx,[(2+ 2)*NBPW + %ebp]
mov %eax,[(2+ 1)*NBPW + %ebp]
mov %edi,[(2+ 0)*NBPW + %ebp]
push %edx // save original dst
rep stosb
pop %eax // return original dst
pop %edi
pop %ebp
ret
memcpy: .globl memcpy // void *memcpy(void *dst, void const *src, size_t len)
push %ebp
mov %ebp,%esp
push %edi; push %esi
mov %ecx,[(2+ 2)*NBPW + %ebp]
mov %eax,[(2+ 1)*NBPW + %ebp]
mov %edi,[(2+ 0)*NBPW + %ebp]
push %edi // save original dst
rep movsb
pop %eax // return original dst
pop %esi; pop %edi; pop %ebp
ret
mempcpy: .globl mempcpy // (dst, src, n)
push %ebp
mov %ebp,%esp
push %edi; push %esi
mov %ecx,[(2+ 2)*NBPW + %ebp]
mov %eax,[(2+ 1)*NBPW + %ebp]
mov %edi,[(2+ 0)*NBPW + %ebp]
rep movsb
mov %eax,%edi // return updated dst
pop %esi; pop %edi; pop %ebp
ret
my_bkpt: .globl my_bkpt
int3 // my_bkpt
ret
.balign 4,0
+2 -13
View File
@@ -31,19 +31,8 @@
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
OUTPUT_ARCH(i386)
/*ENTRY(_start)*/
PHDRS
{
text PT_LOAD FILEHDR PHDRS ;
data PT_LOAD ; /* for setting brk(0) */
}
SECTIONS
{
/* 0x00c01000: 12 MiB + 4 KiB for Fedora Core 5 vDSO at 0xc00000 */
. = 0x00c01000 + SIZEOF_HEADERS + 12; /* 12==sizeof(l_info) */
.text : {
*(.text)
*(.data)
} : text
.data : {
} : data
. = 0x00100000 + SIZEOF_HEADERS + 12; /* 12==sizeof(l_info) */
}
+876
View File
@@ -0,0 +1,876 @@
/* amd64-linux.elf-main.c -- stub loader for Linux 64-bit ELF executable
This file is part of the UPX executable compressor.
Copyright (C) 1996-2024 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2024 Laszlo Molnar
Copyright (C) 2000-2024 John F. Reiser
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
and/or modify them under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of
the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Markus F.X.J. Oberhumer Laszlo Molnar
<markus@oberhumer.com> <ezerotven+github@gmail.com>
John F. Reiser
<jreiser@users.sourceforge.net>
*/
#ifndef DEBUG //{
#define DEBUG 0
#endif //}
#include "include/linux.h"
#define MFD_EXEC 0x0010
#define nullptr 0
extern void *memcpy(void *dst, void const *src, size_t n);
// Pprotect is mprotect but uses page-aligned address (Linux requirement)
extern unsigned Pprotect(void *, size_t, unsigned);
//extern void *Pmap(void *, size_t, unsigned, unsigned, int, size_t);
//extern int Punmap(void *, size_t);
extern size_t Pwrite(unsigned, void const *, size_t);
# define mmap_privanon(addr,len,prot,flgs) mmap((addr),(len),(prot), \
MAP_PRIVATE|MAP_ANONYMOUS|(flgs),-1,0)
extern void my_bkpt(void *, ...);
#if defined(__powerpc__) //}{
#define addr_string(string) ({ \
char const *str; \
asm("bl 0f; .string \"" string "\"; .balign 4; 0: mflr %0" \
/*out*/ : "=r"(str) \
/* in*/ : \
/*und*/ : "lr"); \
str; \
})
#elif defined(__i386__) //}{
#define addr_string(string) ({ \
char const *str; \
asm("call 0f; .asciz \"" string "\"; 0: pop %0" \
/*out*/ : "=r"(str) ); \
str; \
})
#elif defined(__arm__) //}{
#define addr_string(string) ({ \
char const *str; \
asm("bl 0f; .string \"" string "\"; .balign 4; 0: mov %0,x30" \
/*out*/ : "=r"(str) \
/* in*/ : \
/*und*/ : "x30"); \
str; \
})
#else //}{
#error;
#endif //}
#if !DEBUG //{
#define DPRINTF(fmt, args...) /*empty*/
#else //}{
// DPRINTF is defined as an expression using "({ ... })"
// so that DPRINTF can be invoked inside an expression,
// and then followed by a comma to ignore the return value.
// The only complication is that percent and backslash
// must be doubled in the format string, because the format
// string is processd twice: once at compile-time by 'asm'
// to produce the assembled value, and once at runtime to use it.
#if defined(__powerpc__) //{
#define DPRINTF(fmt, args...) ({ \
char const *r_fmt; \
asm("bl 0f; .string \"" fmt "\"; .balign 4; 0: mflr %0" \
/*out*/ : "=r"(r_fmt) \
/* in*/ : \
/*und*/ : "lr"); \
dprintf(r_fmt, args); \
})
#elif defined(__x86_64) || defined(__i386__) //}{
#define DPRINTF(fmt, args...) ({ \
char const *r_fmt; \
asm("call 0f; .asciz \"" fmt "\"; 0: pop %0" \
/*out*/ : "=r"(r_fmt) ); \
dprintf(r_fmt, args); \
})
#elif defined(__arm__) /*}{*/
#define DPRINTF(fmt, args...) ({ \
char const *r_fmt; \
asm("mov %0,pc; b 0f; \
.asciz \"" fmt "\"; .balign 4; \
0: " \
/*out*/ : "=r"(r_fmt) ); \
dprintf(r_fmt, args); \
})
#elif defined(__mips__) /*}{*/
#define DPRINTF(fmt, args...) ({ \
char const *r_fmt; \
asm(".set noreorder; bal L%=j; move %0,$31; .set reorder; \
.asciz \"" fmt "\"; .balign 4; \
L%=j: " \
/*out*/ : "=r"(r_fmt) \
/* in*/ : \
/*und*/ : "ra"); \
dprintf(r_fmt, args); \
})
#endif //}
static int dprintf(char const *fmt, ...); // forward
#endif /*}*/
/*************************************************************************
// configuration section
**************************************************************************/
// In order to make it much easier to move this code at runtime and execute
// it at an address different from it load address: there must be no
// static data, and no string constants.
#define ElfW(sym) Elf32_ ## sym
#include "MAX_ELF_HDR.c"
/*************************************************************************
// "file" util
**************************************************************************/
typedef struct {
size_t size; // must be first to match size[0] uncompressed size
char *buf;
} Extent;
static void
xread(Extent *x, char *buf, size_t count)
{
DPRINTF("xread x.size=%%x x.buf=%%p buf=%%p count=%%x\\n",
x->size, x->buf, buf, count);
char *p=x->buf, *q=buf;
size_t j;
if (x->size < count) {
exit(127);
}
for (j = count; 0!=j--; ++p, ++q) {
*q = *p;
}
x->buf += count;
x->size -= count;
DPRINTF("xread done count=%%x\\n", count);
}
/*************************************************************************
// util
**************************************************************************/
#if !DEBUG //{ save space
#define ERR_LAB error: exit(127);
#define err_exit(a) goto error
#else //}{ save debugging time
#define ERR_LAB /*empty*/
static void
err_exit(int a)
{
(void)a; // debugging convenience
DPRINTF("err_exit %%d\\n", a);
exit(127);
}
#endif //}
/*************************************************************************
// UPX & NRV stuff
**************************************************************************/
extern size_t get_page_mask(void); // variable page size AT_PAGESZ; see *-fold.S
int f_expand( // .globl in $(ARCH)-expand.S
nrv_byte const *binfo, nrv_byte *dst, size_t *dstlen);
static void
unpackExtent(
Extent *const xi, // input includes struct b_info
Extent *const xo // output
)
{
while (xo->size) {
DPRINTF("unpackExtent xi=(%%p %%p) xo=(%%p %%p)\\n",
xi->size, xi->buf, xo->size, xo->buf);
struct b_info h;
// Note: if h.sz_unc == h.sz_cpr then the block was not
// compressible and is stored in its uncompressed form.
// Read and check block sizes.
xread(xi, (char *)&h, sizeof(h));
DPRINTF("h.sz_unc=%%x h.sz_cpr=%%x h.b_method=%%x\\n",
h.sz_unc, h.sz_cpr, h.b_method);
if (h.sz_unc == 0) { // uncompressed size 0 -> EOF
if (h.sz_cpr != UPX_MAGIC_LE32) // h.sz_cpr must be h->magic
err_exit(2);
if (xi->size != 0) // all bytes must be written
err_exit(3);
break;
}
if (h.sz_cpr <= 0) {
err_exit(4);
ERR_LAB
}
if (h.sz_cpr > h.sz_unc
|| h.sz_unc > xo->size ) {
err_exit(5);
}
// Now we have:
// assert(h.sz_cpr <= h.sz_unc);
// assert(h.sz_unc > 0 && h.sz_unc <= blocksize);
// assert(h.sz_cpr > 0 && h.sz_cpr <= blocksize);
if (h.sz_cpr < h.sz_unc) { // Decompress block
size_t out_len = h.sz_unc; // EOF for lzma
int const j = f_expand((unsigned char *)xi->buf - sizeof(h),
(unsigned char *)xo->buf, &out_len);
if (j != 0 || out_len != (nrv_uint)h.sz_unc) {
DPRINTF(" j=%%x out_len=%%x &h=%%p\\n", j, out_len, &h);
err_exit(6);
}
xi->buf += h.sz_cpr;
xi->size -= h.sz_cpr;
}
else { // copy literal block
DPRINTF(" copy %%p %%p %%p\\n", xi->buf, xo->buf, h.sz_cpr);
xread(xi, xo->buf, h.sz_cpr);
}
xo->buf += h.sz_unc;
xo->size -= h.sz_unc;
}
}
extern long upx_mmap_and_fd( // x86_64 Android emulator of i386 is not faithful
void *ptr
, unsigned len // also pre-allocate space in file
, char *pathname // 0 ==> call get_upxfn_path, which stores if 1st time
#if 0 //{ always 0
, unsigned frag_mask // ~page_mask
#endif //}
);
#if defined(__i386__) //
// Create (or find) an escape hatch to use when munmapping ourselves the stub.
// Called by do_xmap to create it; remembered in AT_NULL.d_val
static char *
make_hatch_i386(
ElfW(Phdr) const *const phdr,
char *next_unc,
unsigned frag_mask
)
{
char *hatch = 0;
DPRINTF("make_hatch %%p %%p %%x\\n", phdr, next_unc, frag_mask);
if (phdr->p_type==PT_LOAD && phdr->p_flags & PF_X) {
next_unc += phdr->p_memsz - phdr->p_filesz; // Skip over local .bss
frag_mask &= -(long)next_unc; // bytes left on page
unsigned /*const*/ escape = 0xc36180cd; // "int $0x80; popa; ret"
if (4 <= frag_mask) {
hatch = next_unc;
*(long *)&hatch[0] = escape;
}
else { // Does not fit at hi end of .text, so must use a new page "permanently"
unsigned long fdmap = upx_mmap_and_fd((void *)0, sizeof(escape), nullptr);
unsigned mfd = -1+ (0xfff& fdmap);
write(mfd, &escape, sizeof(escape));
hatch = mmap((void *)(fdmap & ~0xffful), sizeof(escape),
PROT_READ|PROT_EXEC, MAP_PRIVATE, mfd, 0);
close(mfd);
}
}
DPRINTF("hatch=%%p\\n", hatch);
return hatch;
}
#elif defined(__arm__) /*}{*/
extern unsigned get_sys_munmap(void);
#define NINSTR 3
#define NBPI 4
static void *
make_hatch_arm32(
ElfW(Phdr) const *const phdr,
char *next_unc,
unsigned frag_mask
)
{
unsigned const sys_munmap = get_sys_munmap();
unsigned code[2] = {
sys_munmap, // syscall __NR_unmap
0xe8bd8003, // ldmia sp!,{r0,r1,pc}
};
unsigned *hatch = 0;
DPRINTF("make_hatch %%p %%p %%x\\n", phdr, next_unc, frag_mask);
if (phdr->p_type==PT_LOAD && phdr->p_flags & PF_X) {
next_unc += phdr->p_memsz - phdr->p_filesz; // Skip over local .bss
frag_mask &= -(long)next_unc; // bytes left on page
if (2*4 <= frag_mask) {
hatch = (unsigned *)(void *)(~3ul & (long)(3+ next_unc));
hatch[0]= code[0];
hatch[1]= code[1];
__clear_cache(&hatch[0], &hatch[2]);
}
else { // Does not fit at hi end of .text, so must use a new page "permanently"
unsigned long fdmap = upx_mmap_and_fd((void *)0, sizeof(code), nullptr);
unsigned mfd = -1+ (0xfff& fdmap);
write(mfd, &code, sizeof(code));
hatch = mmap((void *)(fdmap & ~0xffful), sizeof(code),
PROT_READ|PROT_EXEC, MAP_PRIVATE, mfd, 0);
close(mfd);
}
}
DPRINTF("hatch=%%p\\n", hatch);
return hatch;
}
#elif defined(__mips__) /*}{*/
static void *
make_hatch_mips(
ElfW(Phdr) const *const phdr,
char *next_unc,
unsigned frag_mask)
{
unsigned code[3];
// avoid gcc initializing array by copying .rodata
code[0] = 0x0000000c; // syscall
#define RS(r) ((037&(r))<<21)
#define JR 010
code[1] = RS(30)|JR; // jr $30 # s8
code[2] = 0x00000000; // nop
unsigned *hatch = 0;
DPRINTF("make_hatch_mips %%p %%p %%x\\n", phdr, next_unc, frag_mask);
if (phdr->p_type==PT_LOAD && phdr->p_flags & PF_X) {
next_unc += phdr->p_memsz - phdr->p_filesz; // Skip over local .bss
frag_mask &= -(long)next_unc; // bytes left on page
if (3*4 <= frag_mask) {
hatch = (unsigned *)(void *)(~3ul & (long)(3+ next_unc));
hatch[0]= code[0];
hatch[1]= code[1];
hatch[2]= code[2];
__clear_cache(&hatch[0], &hatch[3]);
}
else { // Does not fit at hi end of .text, so must use a new page "permanently"
unsigned long fdmap = upx_mmap_and_fd((void *)0, sizeof(code), nullptr);
unsigned mfd = -1+ (0xfff& fdmap);
write(mfd, &code, sizeof(code));
hatch = mmap((void *)(fdmap & ~0xffful), sizeof(code),
PROT_READ|PROT_EXEC, MAP_PRIVATE, mfd, 0);
close(mfd);
}
}
DPRINTF("hatch=%%p\\n", hatch);
return hatch;
}
#elif defined(__powerpc__) /*}{*/
static void *
make_hatch_ppc32(
ElfW(Phdr) const *const phdr,
char *next_unc,
unsigned frag_mask)
{
unsigned code[2];
// avoid gcc initializing array by copying .rodata
code[0] = 0x44000002; // sc
code[1] = 0x4e800020; // blr
unsigned *hatch = 0;
DPRINTF("make_hatch %%p %%p %%x\\n", phdr, next_unc, frag_mask);
if (phdr->p_type==PT_LOAD && phdr->p_flags & PF_X) {
next_unc += phdr->p_memsz - phdr->p_filesz; // Skip over local .bss
frag_mask &= -(long)next_unc; // bytes left on page
if (2*4 <= frag_mask) {
hatch = (unsigned *)(void *)(~3ul & (long)(3+ next_unc));
hatch[0]= code[0];
hatch[1]= code[1];
// __clear_cache(&hatch[0], &hatch[2]); // FIXME
}
else { // Does not fit at hi end of .text, so must use a new page "permanently"
unsigned long fdmap = upx_mmap_and_fd((void *)0, sizeof(code), nullptr);
unsigned mfd = -1+ (0xfff& fdmap);
write(mfd, &code, sizeof(code));
hatch = mmap((void *)(fdmap & ~0xffful), sizeof(code),
PROT_READ|PROT_EXEC, MAP_PRIVATE, mfd, 0);
close(mfd);
}
}
DPRINTF("hatch=%%p\\n", hatch);
return hatch;
}
#endif /*}*/
#if defined(__powerpc64__) || defined(__aarch64__) //{ bzero
static void
upx_bzero(char *p, size_t len)
{
DPRINTF("bzero %%x %%x\\n", p, len);
if (len) do {
*p++= 0;
} while (--len);
}
#define bzero upx_bzero
#else //}{
#define bzero(a,b) __builtin_memset(a,0,b)
#endif //}
static void
auxv_up(ElfW(auxv_t) *av, unsigned const type, uint64_t const value)
{
if (!av || (1& (size_t)av)) { // none, or inhibited for PT_INTERP
return;
}
DPRINTF("\\nauxv_up %%d %%p\\n", type, value);
// Multiple slots can have 'type' which wastes space but is legal.
// rtld (ld-linux) uses the last one, so we must scan the whole table.
ElfW(auxv_t) *ignore_slot = 0;
int found = 0;
for (;; ++av) {
DPRINTF(" %%d %%p\\n", av->a_type, av->a_un.a_val);
if (av->a_type == type) {
av->a_un.a_val = value;
++found;
}
else if (av->a_type == AT_IGNORE) {
ignore_slot = av;
}
if (av->a_type==AT_NULL) { // done scanning
if (found) {
return;
}
if (ignore_slot) {
ignore_slot->a_type = type;
ignore_slot->a_un.a_val = value;
return;
}
err_exit(20);
ERR_LAB
return;
}
}
}
// Segregate large local array, to avoid code bloat due to large displacements.
// Not 'static' to disaable inlining, to control sizeof stack frame in callers.
/*static*/ void
underlay(unsigned size, char *ptr, unsigned len) // len <= PAGE_SIZE
{
DPRINTF("underlay size=%%u ptr=%%p len=%%u\\n", size, ptr, len);
unsigned saved[4096/sizeof(unsigned)];
memcpy(saved, ptr, len);
mmap(ptr, size, PROT_WRITE|PROT_READ,
MAP_FIXED|MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
memcpy(ptr, saved, len);
}
#if 0 //{
// Exchange the bits with values 4 (PF_R, PROT_EXEC) and 1 (PF_X, PROT_READ)
// Use table lookup into a PIC-string that pre-computes the result.
unsigned PF_TO_PROT(unsigned flags)
{
char const *table = addr_string("\x80\x04\x02\x06\x01\x05\x03\x07");
return 7& table[flags & (PF_R|PF_W|PF_X)];
}
#else //}{
// The PF_* and PROT_* bits are {1,2,4}; the conversion table fits in 32 bits.
#define REP8(x) \
((x)|((x)<<4)|((x)<<8)|((x)<<12)|((x)<<16)|((x)<<20)|((x)<<24)|((x)<<28))
#define EXP8(y) \
((1&(y)) ? 0xf0f0f0f0 : (2&(y)) ? 0xff00ff00 : (4&(y)) ? 0xffff0000 : 0)
#define PF_TO_PROT(pf) \
((PROT_READ|PROT_WRITE|PROT_EXEC) & ( \
( (REP8(PROT_EXEC ) & EXP8(PF_X)) \
|(REP8(PROT_READ ) & EXP8(PF_R)) \
|(REP8(PROT_WRITE) & EXP8(PF_W)) \
) >> ((pf & (PF_R|PF_W|PF_X))<<2) ))
#endif //}
// Find convex hull of PT_LOAD (the minimal interval which covers all PT_LOAD),
// and mmap that much, to be sure that a kernel using exec-shield-randomize
// won't place the first piece in a way that leaves no room for the rest.
static ElfW(Addr) // returns relocation constant
xfind_pages(unsigned mflags, ElfW(Phdr) const *phdr, int phnum,
ElfW(Addr) *const p_brk
, ElfW(Addr) const elfaddr
)
{
ElfW(Addr) lo= ~0, hi= 0, addr= 0;
mflags += MAP_PRIVATE | MAP_ANONYMOUS; // '+' can optimize better than '|'
DPRINTF("xfind_pages %%x %%p %%d %%p %%p\\n", mflags, phdr, phnum, elfaddr, p_brk);
for (; --phnum>=0; ++phdr) if (PT_LOAD==phdr->p_type) {
DPRINTF(" p_vaddr=%%p p_memsz=%%p\\n", phdr->p_vaddr, phdr->p_memsz);
if (phdr->p_vaddr < lo) {
lo = phdr->p_vaddr;
}
if (hi < (phdr->p_memsz + phdr->p_vaddr)) {
hi = phdr->p_memsz + phdr->p_vaddr;
}
}
size_t PMASK = get_page_mask();
lo -= ~PMASK & lo; // round down to page boundary
hi = PMASK & (hi - lo - PMASK -1); // page length
if (MAP_FIXED & mflags) {
addr = lo;
}
else if (0==lo) { // -pie ET_DYN
addr = elfaddr;
if (addr) {
mflags |= MAP_FIXED;
}
}
DPRINTF(" addr=%%p lo=%%p hi=%%p\\n", addr, lo, hi);
// PROT_WRITE allows testing of 64k pages on 4k Linux
addr = (ElfW(Addr))mmap((void *)addr, hi, (DEBUG ? PROT_WRITE : PROT_NONE), // FIXME XXX EVIL
mflags, -1, 0);
DPRINTF(" addr=%%p\\n", addr);
*p_brk = hi + addr; // the logical value of brk(0)
return (ElfW(Addr))(addr - lo);
}
static ElfW(Addr) // entry address
do_xmap(
ElfW(Ehdr) const *const ehdr,
Extent *const xi,
int const fdi,
ElfW(auxv_t) *const av,
ElfW(Addr) *const p_reloc
)
{
ElfW(Phdr) const *phdr = (ElfW(Phdr) const *)(void const *)(ehdr->e_phoff +
(char const *)ehdr);
ElfW(Addr) v_brk = 0;
ElfW(Addr) reloc = 0;
if (xi) { // compressed main program:
// C_BASE space reservation, C_TEXT compressed data and stub
ElfW(Addr) ehdr0 = *p_reloc; // the 'hi' copy!
ElfW(Phdr) *phdr0 = (ElfW(Phdr) *)(1+ (ElfW(Ehdr) *)ehdr0); // cheats .e_phoff
// Clear the 'lo' space reservation for use by PT_LOADs
ehdr0 -= phdr0[1].p_vaddr; // the 'lo' copy
if (ET_EXEC == ehdr->e_type) {
ehdr0 = phdr0[0].p_vaddr;
}
else {
reloc = ehdr0;
}
v_brk = phdr0->p_memsz + ehdr0;
munmap((void *)ehdr0, phdr0->p_memsz);
}
else { // PT_INTERP
DPRINTF("INTERP\\n", 0);
reloc = xfind_pages(
((ET_DYN!=ehdr->e_type) ? MAP_FIXED : 0), phdr, ehdr->e_phnum, &v_brk, *p_reloc
);
}
DPRINTF("do_xmap ehdr=%%p xi=%%p(%%x %%p) fdi=%%x\\n"
" av=%%p reloc=%%p p_reloc=%%p/%%p\\n",
ehdr, xi, (xi? xi->size: 0), (xi? xi->buf: 0), fdi,
av, reloc, p_reloc, *p_reloc);
size_t const page_mask = get_page_mask();
int j;
for (j=0; j < ehdr->e_phnum; ++phdr, ++j)
if (xi && PT_PHDR==phdr->p_type) {
auxv_up(av, AT_PHDR, phdr->p_vaddr + reloc);
} else
if (PT_LOAD==phdr->p_type && phdr->p_memsz != 0) {
unsigned const prot = PF_TO_PROT(phdr->p_flags);
DPRINTF("\\n\\nLOAD@%%p p_offset=%%p p_vaddr=%%p p_filesz=%%p"
" p_memsz=%%p p_flags=%%x prot=%%x\\n",
phdr, phdr->p_offset, phdr->p_vaddr, phdr->p_filesz,
phdr->p_memsz, phdr->p_flags, prot);
if (xi && !phdr->p_offset /*&& ET_EXEC==ehdr->e_type*/) { // 1st PT_LOAD
// ? Compressed PT_INTERP must not overwrite values from compressed a.out?
auxv_up(av, AT_PHDR, phdr->p_vaddr + reloc + ehdr->e_phoff);
auxv_up(av, AT_PHNUM, ehdr->e_phnum);
auxv_up(av, AT_PHENT, ehdr->e_phentsize); /* ancient kernels might omit! */
//auxv_up(av, AT_PAGESZ, PAGE_SIZE); /* ld-linux.so.2 does not need this */
}
Extent xo;
size_t mlen = xo.size = phdr->p_filesz;
char * addr = xo.buf = reloc + (char *)phdr->p_vaddr;
// xo.size, xo.buf are not changed except by unpackExtent()
char *const hi_addr = phdr->p_memsz + addr; // end of local .bss
char *addr2 = mlen + addr; // end of local .data
size_t frag = ~page_mask & (ElfW(Addr))addr;
mlen += frag;
addr -= frag;
#if defined(__powerpc64__) || defined(__aarch64__)
// Round up to hardware PAGE_SIZE; allows emulator with smaller.
// But (later) still need bzero when .p_filesz < .p_memsz .
mlen += -(mlen + (size_t)addr) &~ page_mask;
DPRINTF(" mlen=%%p\\n", mlen);
#endif
DPRINTF("mmap addr=%%p mlen=%%p offset=%%p frag=%%p prot=%%x\\n",
addr, mlen, phdr->p_offset - frag, frag, prot);
int mfd = 0;
if (xi && phdr->p_flags & PF_X) { // SELinux
// Cannot set PROT_EXEC except via mmap() into a region (Linux "vma")
// that has never had PROT_WRITE. So use a Linux-only "memory file"
// to hold the contents.
unsigned long val = upx_mmap_and_fd(addr, mlen, nullptr);
mfd = 0xfff & val;
val -= mfd; if ((char *)val != addr) err_exit(17);
--mfd;
}
else {
unsigned tprot = prot;
// Notice that first 4 args are same: mmap vs mmap_privanon
if (xi) {
tprot |= PROT_WRITE; // De-compression needs Write
tprot &= ~PROT_EXEC; // Avoid simultaneous Write and eXecute
if (addr != mmap_privanon(addr, mlen, tprot, MAP_FIXED|MAP_PRIVATE)) {
err_exit(11);
}
}
else if (addr != mmap(addr, mlen, tprot, MAP_FIXED|MAP_PRIVATE,
fdi, phdr->p_offset - frag)) {
err_exit(8);
}
}
DPRINTF("addr= %%p\\n", addr);
if (xi) {
DPRINTF("before unpack xi=(%%p %%p xo=(%%p %%p)\\n", xi->size, xi->buf, xo.size, xo.buf);
unpackExtent(xi, &xo); // updates xi and xo
DPRINTF(" after unpack xi=(%%p %%p xo=(%%p %%p)\\n", xi->size, xi->buf, xo.size, xo.buf);
}
if (PROT_WRITE & prot) { // note: read-only .bss not supported here
// Clear to end-of-page (first part of .bss or &_end)
unsigned hi_frag = -(long)addr2 &~ page_mask;
bzero(addr2, hi_frag);
addr2 += hi_frag; // will be page aligned
}
if (xi && phdr->p_flags & PF_X) {
#if defined(__i386__) //{
void *const hatch = make_hatch_i386(phdr, xo.buf, ~page_mask);
#elif defined(__powerpc__) //}{
void *const hatch = make_hatch_ppc(phdr, xo.buf, ~page_mask);
#elif defined(__arm__) //}{
void *const hatch = make_hatch_arm(phdr, xo.buf, ~page_mask);
#endif //}
if (0!=hatch) {
// Always update AT_NULL, especially for compressed PT_INTERP.
// Clearing lo bit of av is for i386 only; else is superfluous.
auxv_up((ElfW(auxv_t) *)(~1 & (size_t)av), AT_NULL, (size_t)hatch);
}
// SELinux: Map the contents of mfd as per *phdr.
DPRINTF("hatch protect addr=%%p mlen=%%p\\n", addr, mlen);
munmap(addr, mlen); // toss the VMA that has PROT_WRITE
if (addr != mmap(addr, mlen, prot, MAP_FIXED|MAP_SHARED, mfd, 0)) {
err_exit(9);
}
close(mfd);
}
else if ((PROT_WRITE|PROT_READ) != prot
&& 0!=Pprotect(addr, mlen, prot)) {
err_exit(10);
ERR_LAB
}
if (addr2 < hi_addr) { // pages for .bss beyond last page for p_filesz
DPRINTF("zmap addr2=%%p len=%%p\\n", addr2, hi_addr - addr2);
if (addr2 != mmap_privanon(addr2, hi_addr - addr2, prot, MAP_FIXED)) {
err_exit(10);
}
}
}
if (xi && ET_DYN!=ehdr->e_type) {
// Needed only if compressed shell script invokes compressed shell.
// Besides, fold.S needs _Ehdr that is tossed
// do_brk((void *)v_brk);
}
if (p_reloc) {
*p_reloc = reloc;
}
return ehdr->e_entry + reloc;
}
/*************************************************************************
// upx_main - called by our entry code
//
// This function is optimized for size.
**************************************************************************/
void *
upx_main( // returns entry address
/*arg1*/ struct b_info const *const bi // 1st block header
/*arg2*/ , size_t const sz_compressed // total length
/*arg3*/ , ElfW(Addr) elfaddr // In: &ElfW(Ehdr) for stub
/*arg4*/ , ElfW(auxv_t) *const av
/*arg5*/ , ElfW(Ehdr) *const ehdr // temp char[sz_ehdr] for decompressing
)
{
DPRINTF("upx_main b_info=%%p sz_compressed=%%p ehdr=%%p av=%%p\\n",
bi, sz_compressed, ehdr, av);
Extent xo, xi1, xi2;
xo.buf = (char *)ehdr;
xo.size = bi->sz_unc; // can require bi aligned(4)
xi2.buf = CONST_CAST(char *, bi); xi2.size = bi->sz_cpr + sizeof(*bi);
xi1.buf = CONST_CAST(char *, bi); xi1.size = sz_compressed;
// ehdr = Uncompress Ehdr and Phdrs
unpackExtent(&xi2, &xo); // never filtered?
#if defined(__i386__) || defined(__arm__) //{
ElfW(Addr) *const p_reloc = &elfaddr;
#endif //}
ElfW(Addr) page_mask = get_page_mask(); (void)page_mask;
DPRINTF("upx_main1 .e_entry=%%p p_reloc=%%p *p_reloc=%%p page_mask=%%p\\n",
ehdr->e_entry, p_reloc, *p_reloc, page_mask);
ElfW(Phdr) *phdr = (ElfW(Phdr) *)(1+ ehdr);
// De-compress Ehdr again into actual position, then de-compress the rest.
ElfW(Addr) entry = do_xmap(ehdr, &xi1, 0, av, p_reloc);
DPRINTF("upx_main2 entry=%%p *p_reloc=%%p\\n", entry, *p_reloc);
auxv_up(av, AT_ENTRY , entry);
{ // Map PT_INTERP program interpreter
phdr = (ElfW(Phdr) *)(1+ ehdr);
unsigned j;
for (j=0; j < ehdr->e_phnum; ++phdr, ++j) if (PT_INTERP==phdr->p_type) {
char const *const iname = *p_reloc + (char const *)phdr->p_vaddr;
int const fdi = open(iname, O_RDONLY, 0);
if (0 > fdi) {
err_exit(18);
}
if (MAX_ELF_HDR_64!=read(fdi, (void *)ehdr, MAX_ELF_HDR_64)) {
ERR_LAB
err_exit(19);
}
// We expect PT_INTERP to be ET_DYN at 0.
// Thus do_xmap will set *p_reloc = slide.
*p_reloc = 0; // kernel picks where PT_INTERP goes
entry = do_xmap(ehdr, 0, fdi, 0, p_reloc);
DPRINTF("interp p_reloc=%%p reloc=%%p\\n", p_reloc, *p_reloc);
auxv_up(av, AT_BASE, *p_reloc); // musl
close(fdi);
}
}
return (void *)entry;
}
#if DEBUG //{
static int
unsimal(unsigned x, char *ptr, int n)
{
unsigned m = 10;
while (10 <= (x / m)) m *= 10;
while (10 <= x) {
unsigned d = x / m;
x -= m * d;
m /= 10;
ptr[n++] = '0' + d;
}
ptr[n++] = '0' + x;
return n;
}
static int
decimal(int x, char *ptr, int n)
{
if (x < 0) {
x = -x;
ptr[n++] = '-';
}
return unsimal(x, ptr, n);
}
static int
heximal(unsigned long x, char *ptr, int n)
{
unsigned j = -1+ 2*sizeof(unsigned long);
unsigned long m = 0xful << (4 * j);
for (; j; --j, m >>= 4) { // omit leading 0 digits
if (m & x) break;
}
for (; m; --j, m >>= 4) {
unsigned d = 0xf & (x >> (4 * j));
ptr[n++] = ((10<=d) ? ('a' - 10) : '0') + d;
}
return n;
}
#define va_arg __builtin_va_arg
#define va_end __builtin_va_end
#define va_list __builtin_va_list
#define va_start __builtin_va_start
static int
dprintf(char const *fmt, ...)
{
int n= 0;
char const *literal = 0; // NULL
char buf[24]; // ~0ull == 18446744073709551615 ==> 20 chars
va_list va; va_start(va, fmt);
for (;;) {
char c = *fmt++;
if (!c) { // end of fmt
if (literal) {
goto finish;
}
break; // goto done
}
if ('%'!=c) {
if (!literal) {
literal = fmt; // 1 beyond start of literal
}
continue;
}
// '%' == c
if (literal) {
finish:
n += write(2, -1+ literal, fmt - literal);
literal = 0; // NULL
if (!c) { // fmt already ended
break; // goto done
}
}
switch (c= *fmt++) { // deficiency: does not handle _long_
default: { // un-implemented conversion
n+= write(2, -1+ fmt, 1);
} break;
case 0: { // fmt ends with "%\0" ==> ignore
goto done;
} break;
case 'u': {
n+= write(2, buf, unsimal(va_arg(va, unsigned), buf, 0));
} break;
case 'd': {
n+= write(2, buf, decimal(va_arg(va, int), buf, 0));
} break;
case 'p': {
buf[0] = '0';
buf[1] = 'x';
n+= write(2, buf, heximal((unsigned long)va_arg(va, void *), buf, 2));
} break;
case 'x': {
buf[0] = '0';
buf[1] = 'x';
n+= write(2, buf, heximal(va_arg(va, int), buf, 2));
} break;
} // 'switch'
}
done:
va_end(va);
return n;
}
#endif //}
/* vim:set ts=4 sw=4 et: */
+13
View File
@@ -0,0 +1,13 @@
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
OUTPUT_ARCH(i386)
SECTIONS
{
. = 0x00100000 + SIZEOF_HEADERS + 12; /* 12==sizeof(l_info) */
.text : {
}
ELFMAINX : {
*(ELFMAINX)
*(.text)
}
}
+322 -50
View File
@@ -6,15 +6,19 @@
All Rights Reserved.
*/
void my_bkpt(void const *, ...);
#if defined(__i386__) //}{
#define addr_string(string) (char *)({ \
#define ANDROID_FRIEND 1
#define addr_string(string) ({ \
char const *str; \
asm("call 0f; .asciz \"" string "\"; 0: pop %0" \
/*out*/ : "=r"(str) ); \
str; \
})
#elif defined(__arm__) //}{
#define addr_string(string) (char *)({ \
#define ANDROID_FRIEND 1
#define addr_string(string) ({ \
char const *str; \
asm("bl 0f; .string \"" string "\"; .balign 4; 0: mov %0,lr" \
/*out*/ : "=r"(str) \
@@ -22,14 +26,151 @@
/*und*/ : "lr"); \
str; \
})
#elif defined(__mips__) //}{
#define ANDROID_FRIEND 0
#define addr_string(string) ({ \
char const *str; \
asm("bal 0f; .asciz \"" string "\"; .balign 4\n0: move %0,$31" \
/*out*/ : "=r"(str) \
/* in*/ : \
/*und*/ : "ra"); \
str; \
})
#elif defined(__powerpc__) /*}{*/
#define ANDROID_FRIEND 0
#define addr_string(string) ({ \
char const *str; \
asm("bl 0f; .asciz \"" string "\"; .balign 4; 0: mflr %0" \
/*out*/ : "=r"(str) \
/* in*/ : \
/*und*/ : "lr"); \
str; \
})
#elif defined(__powerpc64__) //}{
#define ANDROID_FRIEND 0
#define addr_string(string) ({ \
char const *str; \
asm("bl 0f; .string \"" string "\"; .balign 4; 0: mflr %0" \
/*out*/ : "=r"(str) \
/* in*/ : \
/*und*/ : "lr"); \
str; \
})
#elif defined(__x86_64) //}{
#define ANDROID_FRIEND 0
#define addr_string(string) ({ \
char const *str; \
asm("call 0f; .asciz \"" string "\"; 0: pop %0" \
/*out*/ : "=r"(str) ); \
str; \
})
#elif defined(__aarch64__) //}{
#define ANDROID_FRIEND 0
#define addr_string(string) ({ \
char const *str; \
asm("bl 0f; .string \"" string "\"; .balign 4; 0: mov %0,x30" \
/*out*/ : "=r"(str) \
/* in*/ : \
/*und*/ : "x30"); \
str; \
})
#else //}{
# error; // only: __arm__ or __i386__ (for ARM emulator)
#define ANDROID_FRIEND 0
#error addr_string
#endif //}
#if defined(__x86_64) || defined(__i386__) //}{
#define DPRINTF(fmt, args...) ({ \
char const *r_fmt; \
asm("call 0f; .asciz \"" fmt "\"; 0: pop %0" \
/*out*/ : "=r"(r_fmt) ); \
dprintf(r_fmt, args); \
})
#else //}{
#define DPRINTF(fmt, args...) /*empty*/
#endif //}
#define dprintf my_bkpt
//#include <fcntl.h>
//#include <sys/stat.h>
typedef unsigned long long u64_t;
typedef unsigned int u32_t;
typedef unsigned short u16_t;
// Observed by gdb for libc-bin 2.31-13+deb11u6 on Debian 5.10.158-2 (2022-12-13) armv7l
struct stat { // __NR_stat = 106 + NR_SYSCALL_BASE
u32_t st_dev;
u32_t st_ino;
u16_t st_mode;
u16_t st_nlink;
u16_t st_uid;
u16_t st_gid;
// 0x10
u32_t st_rdev;
u32_t st_size;
u32_t st_blksize;
u32_t st_blocks;
// 0x20
u32_t st_atime;
u32_t st_atime_nsec;
u32_t st_mtime;
u32_t st_mtime_nsec;
// 0x30
u32_t st_ctime;
u32_t st_ctime_nsec;
u32_t pad1;
u32_t pad2;
// 0x40
};
#define S_IFMT 00170000
#define S_IFDIR 0040000
#define S_IRWXU 00700
#define AT_FDCWD -100
#define restrict /**/
#include "include/linux.h" // syscalls; i386 inlines via "int 0x80"
extern int fstatat(int dirfd, const char *restrict pathname,
struct stat *restrict statbuf, int flags);
#define ENOENT 2 /* no such name */
#define ENOSPC 28 /* no space left on device */
#define ENOSYS 38 /* no such system call */
#if ANDROID_FRIEND //{
extern void *memset(void *dst, int val, size_t n);
extern int stat(char const *path, struct stat *statbuf);
extern int mkdir(char const *path, unsigned mode);
__attribute__((__noinline__))
static int dir_check(char const *path)
{
struct stat sb;
memset(&sb,0xff, sizeof(sb)); // DEBUG aid
int rv = stat(path, &sb);
if (0 <= rv) {
if (S_IFDIR == (sb.st_mode & S_IFMT)) {
return 0;
}
}
if (-ENOENT == rv) {
rv = mkdir(path, S_IRWXU);
}
return rv;
}
//#define S_IRWXU 00700 /* rwx------ User Read-Write-eXecute */
extern void *alloca(unsigned size);
//#include <string.h> // we use "typedef unsigned size_t;"
//#include <sys/utsname.h>
extern unsigned getpid(void);
extern void *mempcpy(void *dst, void const *src, unsigned len);
// Upper half of ASCII (chars 0100-0177) are all legal in a Linux filename.
// So the shortest code is " return 0100 + (077 & x); "
// But the 5 chars which follow 'Z' ("[\\]^_") or 'z' ("{|}~\x7F")
// look ugly, so substitute digits.
__attribute__((__noinline__))
static unsigned sixbit(unsigned x)
{
unsigned y = 037 & x; // "upper case"
@@ -44,61 +185,192 @@ static unsigned sixbit(unsigned x)
return x;
}
#define S_IRWXU 00700 /* rwx------ User Read-Write-eXecute */
extern void *alloca(unsigned size);
#include "include/linux.h" // syscalls; i386 inlines via "int 0x80"
extern void *mempcpy(void *dst, void const *src, unsigned len);
#define PATH_MAX 4096 /* linux/include/uapi/linux/limits.h */
// Early 32-bit Android lacks memfd_create.
// Where to put temp file when memfd_create() fails on early 32-bit Android
__attribute__((__noinline__))
static int create_upxfn_path(char *name, char *buf)
{
// Construct path "/data/data/$APP_NAME/cache/upxAAA".
// Note 'mempcpy' [with 'p' in the middle!] returns the end-of-string.
char *p = mempcpy(&name[0], addr_string("/data/data/"), 11); // '/' sentinel at end
p[0] = '\0'; dir_check(name);
// Append the name of the app
int fd = open(addr_string("/proc/self/cmdline"), O_RDONLY, 0);
int rlen = read(fd, p= buf, -1+ PATH_MAX);
close(fd);
if (rlen < 0) {
return rlen; // failure
}
p[rlen] = '\0'; // insurance sentinel
// Kernel-parsed arguments are separated by '\0'.
while (*p) ++p; // advance to end of argv[0]
{
char *app_end = p;
// Sentinel '/' at name[10] provides safety for backing up.
while ('/' != *p) --p; // find last component of argv[0]
p = mempcpy(&name[10], p, app_end - p);
p[0] = '\0'; dir_check(name);
}
p = mempcpy(p, addr_string("/cache"), 6);
p[0] = '\0'; dir_check(name);
p = mempcpy(p, addr_string("/upx"), 4);
pid_t pid = getpid();
p[0] = sixbit(pid >> 0*6);
p[1] = sixbit(pid >> 1*6);
p[2] = sixbit(pid >> 2*6);
p[3]='\0';
return 0; // success
}
// memfd_create() gets ENOSYS on early Android. There are 32-bit x86 Android
// such as Zenfone 2 (discontinued 2018?), x86 Chromebooks (2019 and later),
// FydeOS, Windows subsystem for Android. But the main use is for developing,
// to make Android emulator running on x86_64 (Linux or Windows) run faster
// by emulating x86 instead of ARM.
//
// Try /data/data/$APP_NAME/cache/upxAAA
// where APP_NAME is discovered as basename(argv[0])
// and argv[0] is guessed from /proc/self/cmdline.
// Also 32-bit Android has inconsistent __NR_ftruncate,
// so use direct write()
//
#define BUFLEN 0x2000 /* 4KiB for PATH_MAX; 8KiB for zeroing */
#define ENOSPC 28 /* no space left on device */
struct utsname;
extern int uname(struct utsname *);
extern char * get_upxfn_path(void);
int upxfd_android(unsigned len) // returns fd with (.st_size = len); else -ENOSPC
// To work around bug in "i386-linux-gcc-3.4.6 -m32 -march=i386" .
// gcc optimized out this code:
// uname((struct utsname *)buf);
// int const is_android = ( (('r'<<3*8)|('d'<<2*8)|('n'<<1*8)|('a'<<0*8))
// == (0x20202020 | *(int *)buf) );
// Specialized: does NOT consider early termination of either string, etc.
__attribute__((__noinline__))
static int strncmplc(char const *s1, char const *s2, unsigned n)
{
char *buf = alloca(BUFLEN);
char *p = mempcpy(&buf[0], addr_string("/data/data/"), 11); // '/' sentinel at end
int fd = open(addr_string("/proc/self/cmdline"), O_RDONLY, 0);
int rlen = read(fd, p, BUFLEN);
if (rlen < 0) {
return -1;
while (n--) {
int rv = (0x20 | *s1++) - (0x20 | *s2++);
if (rv) return rv;
}
while (*p) { // advance to end of argv[0]
if (' '==*p) break;
++p;
}
{
char *app_end = p;
while ('/' != *--p) ; // last component of argv[0]
p = mempcpy(&buf[10], p, app_end - p);
}
p = mempcpy(p, addr_string("/cache/upx"), 10);
pid_t pid = getpid();
p[0] = sixbit(pid >> 0*6);
p[1] = sixbit(pid >> 1*6);
p[2] = sixbit(pid >> 2*6);
p[3]='\0';
fd = open(&buf[0], O_CREAT|O_EXCL|O_RDWR, S_IRWXU);
if (fd < 0) {
return -1;
}
unlink(&buf[0]);
extern void *memset(void *dst, int c, unsigned);
memset(buf, 0, BUFLEN);
while (0 < len) {
int x = (len < BUFLEN) ? len : BUFLEN;
if (x != write(fd, buf, BUFLEN)) {
return -ENOSPC;
}
len -= x;
}
lseek(fd, 0, SEEK_SET);
return fd;
return 0;
}
#endif //} ANDROID_FRIEND
// ANDROID_TEST: Set to 1 for testing Android implmentation using Linux on
// Raspberry Pi (arm32, perhaps running on actual arm64); else set to 0.
#define ANDROID_TEST 0
#define MFD_EXEC 0x10
unsigned long upx_mmap_and_fd( // returns (mapped_addr | (1+ fd))
void *ptr // desired address
, unsigned datlen // mapped length
, char *pathname // 0 ==> get_upxfn_path()
)
{
// This used to be a parameter, but was always 0
unsigned const frag_mask = 0u;
unsigned long addr = 0; // for result
// Early 32-bit Android did not implement memfd_create
int fd = (ANDROID_TEST ? -ENOSYS : memfd_create(addr_string("upx"), MFD_EXEC));
#if ANDROID_FRIEND //{
// Varying __NR_ftruncate on Android can hurt even if memfd_create() succeeds.
// On Linux, struct utsname has 6 arrays of size 257; but size can be larger.
#define BUFLEN 4096
void *buf = alloca(BUFLEN); *(int *)buf = 0;
uname((struct utsname *)buf);
int const not_android = (ANDROID_TEST ? 0 : strncmplc(addr_string("andr"), buf, 4));
// Work-around for missing memfd_create syscall on early 32-bit Android.
if (!not_android && !pathname) { // must ask
pathname = get_upxfn_path();
}
if (!not_android && -ENOSYS == fd && pathname) {
if ('\0' == pathname[0]) { // first time; create the pathname and file
int rv = create_upxfn_path(pathname, buf);
if (rv < 0) {
return rv;
}
}
// Use the constructed path.
fd = open(pathname, O_CREAT|O_EXCL|O_RDWR, S_IRWXU);
if (fd < 0) {
return fd;
}
unlink(pathname);
}
#else //}{ !ANDROID_FRIEND: simple!
int not_android = 1;
(void)pathname; // dead: obviated by memfd_create()
#endif //}
// Set the file length
unsigned const frag = frag_mask & (unsigned)ptr;
ptr -= frag; // page-aligned
datlen += frag;
if (datlen) {
if (not_android) { // Linux ftruncate() is well-behaved
int rv = ftruncate(fd, datlen);
if (rv < 0) {
return rv;
}
}
#if ANDROID_FRIEND //{
else { // !not_android: ftruncate has varying system call number on 32-bit
memset(buf, 0, BUFLEN);
unsigned wlen = datlen;
while (0 < wlen) {
int x = (wlen < BUFLEN) ? wlen : BUFLEN;
if (x != write(fd, buf, x)) {
return -ENOSPC;
}
wlen -= x;
}
lseek(fd, 0, SEEK_SET); // go back to the beginning
}
#endif //}
}
if (frag_mask && ptr) { // Preserve entire page that contains *ptr
write(fd, ptr, 1+ frag_mask);
}
addr = (unsigned long)mmap(ptr, datlen , PROT_WRITE | PROT_READ,
MAP_SHARED | (ptr ? MAP_FIXED : 0), fd, 0);
if ((~0ul<<12) < addr) { // error
return addr;
}
return addr | (1+ fd);
}
#if 0 //{ test
char name[1000];
int main(int argc, char *argv[])
{
upx_mmap_and_fd(0, 5000, 0);
}
void *mempcpy(void *adst, void const *asrc, unsigned len)
{
char *dst = adst;
char const *src = asrc;
if (len) do {
*dst++ = *src++;
} while (--len);
return dst;
}
void *memset(void *adst, unsigned val, unsigned len)
{
char *dst = adst;
if (len) do {
*dst++ = val;
} while (--len);
return adst;
}
#endif //}
+33 -32
View File
@@ -9,45 +9,46 @@ Linker script and memory map
TARGET(elf32-i386)
0x0000000000c01080 . = ((0xc01000 + SIZEOF_HEADERS) + 0xc)
.text 0x0000000000c01080 0x698
.text 0x0000000000c01080 0x768
*(.text)
.text 0x0000000000c01080 0xc4 tmp/i386-bsd.elf-fold.o
.text 0x0000000000c01144 0x564 tmp/i386-bsd.elf-main.o
0x0000000000c01570 upx_main
.text 0x0000000000c016a8 0x6d tmp/i386-bsd.syscall.o
0x0000000000c01711 waitpid
0x0000000000c016e5 munmap
0x0000000000c016f9 execve
0x0000000000c016f1 getpid
0x0000000000c01701 ftruncate
0x0000000000c016a8 mmap
0x0000000000c01709 nanosleep
0x0000000000c016d9 write
0x0000000000c016d5 read
0x0000000000c0170d unlink
0x0000000000c016fd fork
0x0000000000c01705 gettimeofday
0x0000000000c016ed access
0x0000000000c016cd exit
0x0000000000c016cc brk
0x0000000000c016dd open
0x0000000000c016e9 mprotect
0x0000000000c016f5 fcntl
0x0000000000c016e1 close
.text 0x0000000000c01144 0x632 tmp/i386-bsd.elf-main.o
0x0000000000c0162f upx_main
*fill* 0x0000000000c01776 0x2 00
.text 0x0000000000c01778 0x6d tmp/i386-bsd.syscall.o
0x0000000000c017e1 waitpid
0x0000000000c017b5 munmap
0x0000000000c017c9 execve
0x0000000000c017c1 getpid
0x0000000000c017d1 ftruncate
0x0000000000c01778 mmap
0x0000000000c017d9 nanosleep
0x0000000000c017a9 write
0x0000000000c017a5 read
0x0000000000c017dd unlink
0x0000000000c017cd fork
0x0000000000c017d5 gettimeofday
0x0000000000c017bd access
0x0000000000c0179d exit
0x0000000000c0179c brk
0x0000000000c017ad open
0x0000000000c017b9 mprotect
0x0000000000c017c5 fcntl
0x0000000000c017b1 close
*(.data)
*fill* 0x0000000000c01715 0x3 00
.data 0x0000000000c01718 0x0 tmp/i386-bsd.elf-fold.o
.data 0x0000000000c01718 0x0 tmp/i386-bsd.elf-main.o
.data 0x0000000000c01718 0x0 tmp/i386-bsd.syscall.o
*fill* 0x0000000000c017e5 0x3 00
.data 0x0000000000c017e8 0x0 tmp/i386-bsd.elf-fold.o
.data 0x0000000000c017e8 0x0 tmp/i386-bsd.elf-main.o
.data 0x0000000000c017e8 0x0 tmp/i386-bsd.syscall.o
.data
.bss 0x0000000000c01718 0x0
.bss 0x0000000000c01718 0x0 tmp/i386-bsd.elf-fold.o
.bss 0x0000000000c01718 0x0 tmp/i386-bsd.elf-main.o
.bss 0x0000000000c01718 0x0 tmp/i386-bsd.syscall.o
.bss 0x0000000000c017e8 0x0
.bss 0x0000000000c017e8 0x0 tmp/i386-bsd.elf-fold.o
.bss 0x0000000000c017e8 0x0 tmp/i386-bsd.elf-main.o
.bss 0x0000000000c017e8 0x0 tmp/i386-bsd.syscall.o
.rel.dyn 0x0000000000c01718 0x0
.rel.dyn 0x0000000000c017e8 0x0
.rel.text 0x0000000000000000 0x0 tmp/i386-bsd.elf-fold.o
LOAD tmp/i386-bsd.elf-fold.o
LOAD tmp/i386-bsd.elf-main.o
+1 -1
View File
@@ -13,7 +13,7 @@ TARGET(elf32-i386)
*(.text)
.text 0x0000000000401080 0x1c tmp/i386-bsd.elf.execve-fold.o
.text 0x000000000040109c 0x2d5 tmp/i386-bsd.elf.execve-main.o
0x0000000000401153 upx_main
0x0000000000401157 upx_main
*fill* 0x0000000000401371 0x3 00
.text 0x0000000000401374 0x6d tmp/i386-bsd.syscall.o
0x00000000004013dd waitpid
+33 -654
View File
@@ -2,659 +2,38 @@ file format elf32-i386
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 LEXEC000 06 0 0 034 2**0 CONTENTS
1 LEXEC009 0 0 0 03a 2**0 CONTENTS
2 LEXEC010 0c 0 0 03a 2**0 CONTENTS
3 N2BSMA10 03 0 0 046 2**0 CONTENTS
4 N2BFAS10 02 0 0 049 2**0 CONTENTS
5 N2BFAS11 06 0 0 04b 2**0 CONTENTS
6 N2BDEC10 0b 0 0 051 2**0 CONTENTS
7 N2BSMA20 05 0 0 05c 2**0 CONTENTS
8 N2BFAS20 09 0 0 061 2**0 CONTENTS
9 N2BDEC20 0d 0 0 06a 2**0 CONTENTS
10 N2BSMA30 0d 0 0 077 2**0 CONTENTS
11 N2BFAS30 0f 0 0 084 2**0 CONTENTS
12 N2BDEC30 03e 0 0 093 2**0 CONTENTS
13 N2BSMA40 0d 0 0 0d1 2**0 CONTENTS
14 N2BFAS40 0f 0 0 0de 2**0 CONTENTS
15 N2BSMA50 02 0 0 0ed 2**0 CONTENTS
16 N2BFAS50 03 0 0 0ef 2**0 CONTENTS
17 N2BDEC50 09 0 0 0f2 2**0 CONTENTS
18 N2BSMA60 0c 0 0 0fb 2**0 CONTENTS
19 N2BFAS60 019 0 0 0107 2**0 CONTENTS
20 N2BFAS61 016 0 0 0120 2**0 CONTENTS
21 N2BDEC60 0 0 0 0136 2**0 CONTENTS
22 N2DSMA10 03 0 0 0136 2**0 CONTENTS
23 N2DFAS10 02 0 0 0139 2**0 CONTENTS
24 N2DFAS11 06 0 0 013b 2**0 CONTENTS
25 N2DDEC10 0b 0 0 0141 2**0 CONTENTS
26 N2DSMA20 05 0 0 014c 2**0 CONTENTS
27 N2DFAS20 09 0 0 0151 2**0 CONTENTS
28 N2DDEC20 0d 0 0 015a 2**0 CONTENTS
29 N2DSMA30 0d 0 0 0167 2**0 CONTENTS
30 N2DFAS30 0f 0 0 0174 2**0 CONTENTS
31 N2DDEC30 052 0 0 0183 2**0 CONTENTS
32 N2DSMA40 0d 0 0 01d5 2**0 CONTENTS
33 N2DFAS40 0f 0 0 01e2 2**0 CONTENTS
34 N2DSMA50 02 0 0 01f1 2**0 CONTENTS
35 N2DFAS50 03 0 0 01f3 2**0 CONTENTS
36 N2DDEC50 09 0 0 01f6 2**0 CONTENTS
37 N2DSMA60 0c 0 0 01ff 2**0 CONTENTS
38 N2DFAS60 019 0 0 020b 2**0 CONTENTS
39 N2DFAS61 016 0 0 0224 2**0 CONTENTS
40 N2DDEC60 0 0 0 023a 2**0 CONTENTS
41 N2ESMA10 03 0 0 023a 2**0 CONTENTS
42 N2EFAS10 02 0 0 023d 2**0 CONTENTS
43 N2EFAS11 06 0 0 023f 2**0 CONTENTS
44 N2EDEC10 0b 0 0 0245 2**0 CONTENTS
45 N2ESMA20 05 0 0 0250 2**0 CONTENTS
46 N2EFAS20 09 0 0 0255 2**0 CONTENTS
47 N2EDEC20 0d 0 0 025e 2**0 CONTENTS
48 N2ESMA30 0d 0 0 026b 2**0 CONTENTS
49 N2EFAS30 0f 0 0 0278 2**0 CONTENTS
50 N2EDEC30 05f 0 0 0287 2**0 CONTENTS
51 N2ESMA40 0d 0 0 02e6 2**0 CONTENTS
52 N2EFAS40 0f 0 0 02f3 2**0 CONTENTS
53 N2ESMA50 02 0 0 0302 2**0 CONTENTS
54 N2EFAS50 03 0 0 0304 2**0 CONTENTS
55 N2EDEC50 09 0 0 0307 2**0 CONTENTS
56 N2ESMA60 0c 0 0 0310 2**0 CONTENTS
57 N2EFAS60 019 0 0 031c 2**0 CONTENTS
58 N2EFAS61 016 0 0 0335 2**0 CONTENTS
59 N2EDEC60 0 0 0 034b 2**0 CONTENTS
60 LZMA_DEC00 02e 0 0 034b 2**0 CONTENTS
61 LZMA_ELF00 048 0 0 0379 2**0 CONTENTS
62 LZMA_DEC10 0a86 0 0 03c1 2**0 CONTENTS
63 LZMA_DEC20 0a86 0 0 0e47 2**0 CONTENTS
64 LZMA_DEC30 01a 0 0 018cd 2**0 CONTENTS
65 CALLTR00 0e 0 0 018e7 2**0 CONTENTS
66 CTCLEVE1 05 0 0 018f5 2**0 CONTENTS
67 CALLTR01 05 0 0 018fa 2**0 CONTENTS
68 CTBSHR01 04 0 0 018ff 2**0 CONTENTS
69 CTBROR01 02 0 0 01903 2**0 CONTENTS
70 CTBSWA01 05 0 0 01905 2**0 CONTENTS
71 CALLTR02 0e 0 0 0190a 2**0 CONTENTS
72 CALLTR10 05 0 0 01918 2**0 CONTENTS
73 CALLTRE8 02 0 0 0191d 2**0 CONTENTS
74 CALLTRE9 02 0 0 0191f 2**0 CONTENTS
75 CALLTR11 04 0 0 01921 2**0 CONTENTS
76 CTCLEVE2 05 0 0 01925 2**0 CONTENTS
77 CALLTR12 02 0 0 0192a 2**0 CONTENTS
78 CTBSHR11 04 0 0 0192c 2**0 CONTENTS
79 CTBROR11 02 0 0 01930 2**0 CONTENTS
80 CTBSWA11 05 0 0 01932 2**0 CONTENTS
81 CALLTR13 05 0 0 01937 2**0 CONTENTS
82 LEXEC015 01d 0 0 0193c 2**0 CONTENTS
83 LXUNF000 02 0 0 01959 2**0 CONTENTS
84 LXUNF002 05 0 0 0195b 2**0 CONTENTS
85 MRUBYTE0 02 0 0 01960 2**0 CONTENTS
86 LXMRU005 05 0 0 01962 2**0 CONTENTS
87 LXMRU006 07 0 0 01967 2**0 CONTENTS
88 LXMRU007 07 0 0 0196e 2**0 CONTENTS
89 LXUNF008 04 0 0 01975 2**0 CONTENTS
90 LXUNF010 05 0 0 01979 2**0 CONTENTS
91 LXJCC010 03 0 0 0197e 2**0 CONTENTS
92 LXMRU045 03 0 0 01981 2**0 CONTENTS
93 LXMRU046 02 0 0 01984 2**0 CONTENTS
94 LXJCC020 02 0 0 01986 2**0 CONTENTS
95 LXJCC021 05 0 0 01988 2**0 CONTENTS
96 LXJCC023 07 0 0 0198d 2**0 CONTENTS
97 LXUNF037 02 0 0 01994 2**0 CONTENTS
98 LXUNF386 01 0 0 01996 2**0 CONTENTS
99 LXUNF387 09 0 0 01997 2**0 CONTENTS
100 LXUNF388 03 0 0 019a0 2**0 CONTENTS
101 LXUNF486 04 0 0 019a3 2**0 CONTENTS
102 LXUNF487 02 0 0 019a7 2**0 CONTENTS
103 LXMRU065 05 0 0 019a9 2**0 CONTENTS
104 MRUBYTE3 02 0 0 019ae 2**0 CONTENTS
105 MRUARB30 01 0 0 019b0 2**0 CONTENTS
106 MRUBITS3 02 0 0 019b1 2**0 CONTENTS
107 MRUARB40 04 0 0 019b3 2**0 CONTENTS
108 LXMRU070 08 0 0 019b7 2**0 CONTENTS
109 MRUBYTE4 03 0 0 019bf 2**0 CONTENTS
110 MRUBITS4 02 0 0 019c2 2**0 CONTENTS
111 MRUARB50 06 0 0 019c4 2**0 CONTENTS
112 LXMRU080 03 0 0 019ca 2**0 CONTENTS
113 MRUBYTE5 02 0 0 019cd 2**0 CONTENTS
114 MRUARB60 01 0 0 019cf 2**0 CONTENTS
115 MRUBITS5 02 0 0 019d0 2**0 CONTENTS
116 MRUARB70 04 0 0 019d2 2**0 CONTENTS
117 LXMRU090 0b 0 0 019d6 2**0 CONTENTS
118 MRUBYTE6 02 0 0 019e1 2**0 CONTENTS
119 MRUARB80 01 0 0 019e3 2**0 CONTENTS
120 MRUBITS6 02 0 0 019e4 2**0 CONTENTS
121 MRUARB90 04 0 0 019e6 2**0 CONTENTS
122 LXMRU100 010 0 0 019ea 2**0 CONTENTS
123 LXUNF040 05 0 0 019fa 2**0 CONTENTS
124 LXMRU110 03 0 0 019ff 2**0 CONTENTS
125 LXMRU111 02 0 0 01a02 2**0 CONTENTS
126 LXUNF041 07 0 0 01a04 2**0 CONTENTS
127 LXUNF042 0 0 0 01a0b 2**0 CONTENTS
128 LEXEC016 05 0 0 01a0b 2**0 CONTENTS
129 LXMRU010 01 0 0 01a10 2**0 CONTENTS
130 LXJMPA00 02 0 0 01a11 2**0 CONTENTS
131 LXCALLB0 02 0 0 01a13 2**0 CONTENTS
132 LXUNF021 06 0 0 01a15 2**0 CONTENTS
133 LXMRU022 03 0 0 01a1b 2**0 CONTENTS
134 LXJMPA01 02 0 0 01a1e 2**0 CONTENTS
135 LXCALLB1 02 0 0 01a20 2**0 CONTENTS
136 MRUBITS1 01 0 0 01a22 2**0 CONTENTS
137 LXMRU030 02 0 0 01a23 2**0 CONTENTS
138 MRUBYTE1 02 0 0 01a25 2**0 CONTENTS
139 MRUARB10 01 0 0 01a27 2**0 CONTENTS
140 LXMRU040 02 0 0 01a28 2**0 CONTENTS
141 LXUNF030 06 0 0 01a2a 2**0 CONTENTS
142 LXJCC000 08 0 0 01a30 2**0 CONTENTS
143 LXCJ0MRU 02 0 0 01a38 2**0 CONTENTS
144 LXCJ1MRU 03 0 0 01a3a 2**0 CONTENTS
145 LXCALJMP 03 0 0 01a3d 2**0 CONTENTS
146 LXCALL00 02 0 0 01a40 2**0 CONTENTS
147 LXCALL01 03 0 0 01a42 2**0 CONTENTS
148 LXCJ2MRU 02 0 0 01a45 2**0 CONTENTS
149 LXCJ4MRU 02 0 0 01a47 2**0 CONTENTS
150 LXCJ6MRU 02 0 0 01a49 2**0 CONTENTS
151 LXCJ7MRU 02 0 0 01a4b 2**0 CONTENTS
152 LXCJ8MRU 03 0 0 01a4d 2**0 CONTENTS
153 LXUNF034 05 0 0 01a50 2**0 CONTENTS
154 LXMRU055 02 0 0 01a55 2**0 CONTENTS
155 MRUBYTE2 05 0 0 01a57 2**0 CONTENTS
156 MRUBITS2 05 0 0 01a5c 2**0 CONTENTS
157 MRUARB20 05 0 0 01a61 2**0 CONTENTS
158 LXMRU057 06 0 0 01a66 2**0 CONTENTS
159 LXMRU058 01 0 0 01a6c 2**0 CONTENTS
160 LXUNF035 06 0 0 01a6d 2**0 CONTENTS
161 ctok32.00 07 0 0 01a73 2**0 CONTENTS
162 ctok32.10 0e 0 0 01a7a 2**0 CONTENTS
163 ctok32.20 020 0 0 01a88 2**0 CONTENTS
164 ctok32.30 0a 0 0 01aa8 2**0 CONTENTS
165 ctok32.40 05 0 0 01ab2 2**0 CONTENTS
166 LEXEC017 02 0 0 01ab7 2**0 CONTENTS
167 LEXEC020 074 0 0 01abc 2**2 CONTENTS
0 ELFMAINX 055b 0 0 034 2**2 CONTENTS
1 ELFMAINZ 0a 0 0 058f 2**0 CONTENTS
SYMBOL TABLE:
00000000 l d N2BSMA10 0 N2BSMA10
00000000 l d N2BFAS11 0 N2BFAS11
00000000 l d N2BDEC10 0 N2BDEC10
00000000 l d N2BDEC20 0 N2BDEC20
00000000 l d N2BDEC30 0 N2BDEC30
00000000 l d N2BDEC50 0 N2BDEC50
00000000 l d N2BFAS61 0 N2BFAS61
00000000 l d N2BDEC60 0 N2BDEC60
00000000 l d N2DSMA10 0 N2DSMA10
00000000 l d N2DFAS11 0 N2DFAS11
00000000 l d N2DDEC10 0 N2DDEC10
00000000 l d N2DDEC20 0 N2DDEC20
00000000 l d N2DDEC30 0 N2DDEC30
00000000 l d N2DDEC50 0 N2DDEC50
00000000 l d N2DFAS61 0 N2DFAS61
00000000 l d N2DDEC60 0 N2DDEC60
00000000 l d N2ESMA10 0 N2ESMA10
00000000 l d N2EFAS11 0 N2EFAS11
00000000 l d N2EDEC10 0 N2EDEC10
00000000 l d N2EDEC20 0 N2EDEC20
00000000 l d N2EDEC30 0 N2EDEC30
00000000 l d N2EDEC50 0 N2EDEC50
00000000 l d N2EFAS61 0 N2EFAS61
00000000 l d N2EDEC60 0 N2EDEC60
00000000 l d CALLTR00 0 CALLTR00
00000000 l d CALLTR10 0 CALLTR10
00000000 l d CALLTR11 0 CALLTR11
00000000 l d CALLTR13 0 CALLTR13
00000000 l d LXUNF010 0 LXUNF010
00000000 l d LXJCC010 0 LXJCC010
00000000 l d LXUNF037 0 LXUNF037
00000000 l d LXMRU070 0 LXMRU070
00000000 l d LXMRU100 0 LXMRU100
00000000 l d LXUNF040 0 LXUNF040
00000000 l d LXUNF042 0 LXUNF042
00000000 l d LXMRU030 0 LXMRU030
00000000 l d LXUNF030 0 LXUNF030
00000000 l d LXCJ8MRU 0 LXCJ8MRU
00000000 l d LXUNF034 0 LXUNF034
00000000 l d ctok32.00 0 ctok32.00
00000000 l d ctok32.10 0 ctok32.10
00000000 l d ctok32.20 0 ctok32.20
00000000 l d ctok32.40 0 ctok32.40
00000000 l d LEXEC020 0 LEXEC020
00000000 l d LEXEC000 0 LEXEC000
00000000 l d LEXEC009 0 LEXEC009
00000000 l d LEXEC010 0 LEXEC010
00000000 l d N2BFAS10 0 N2BFAS10
00000000 l d N2BSMA20 0 N2BSMA20
00000000 l d N2BFAS20 0 N2BFAS20
00000000 l d N2BSMA30 0 N2BSMA30
00000000 l d N2BFAS30 0 N2BFAS30
00000000 l d N2BSMA40 0 N2BSMA40
00000000 l d N2BFAS40 0 N2BFAS40
00000000 l d N2BSMA50 0 N2BSMA50
00000000 l d N2BFAS50 0 N2BFAS50
00000000 l d N2BSMA60 0 N2BSMA60
00000000 l d N2BFAS60 0 N2BFAS60
00000000 l d N2DFAS10 0 N2DFAS10
00000000 l d N2DSMA20 0 N2DSMA20
00000000 l d N2DFAS20 0 N2DFAS20
00000000 l d N2DSMA30 0 N2DSMA30
00000000 l d N2DFAS30 0 N2DFAS30
00000000 l d N2DSMA40 0 N2DSMA40
00000000 l d N2DFAS40 0 N2DFAS40
00000000 l d N2DSMA50 0 N2DSMA50
00000000 l d N2DFAS50 0 N2DFAS50
00000000 l d N2DSMA60 0 N2DSMA60
00000000 l d N2DFAS60 0 N2DFAS60
00000000 l d N2EFAS10 0 N2EFAS10
00000000 l d N2ESMA20 0 N2ESMA20
00000000 l d N2EFAS20 0 N2EFAS20
00000000 l d N2ESMA30 0 N2ESMA30
00000000 l d N2EFAS30 0 N2EFAS30
00000000 l d N2ESMA40 0 N2ESMA40
00000000 l d N2EFAS40 0 N2EFAS40
00000000 l d N2ESMA50 0 N2ESMA50
00000000 l d N2EFAS50 0 N2EFAS50
00000000 l d N2ESMA60 0 N2ESMA60
00000000 l d N2EFAS60 0 N2EFAS60
00000000 l d LZMA_DEC00 0 LZMA_DEC00
00000000 l d LZMA_ELF00 0 LZMA_ELF00
00000000 l d LZMA_DEC10 0 LZMA_DEC10
00000000 l d LZMA_DEC20 0 LZMA_DEC20
00000000 l d LZMA_DEC30 0 LZMA_DEC30
00000000 l d CTCLEVE1 0 CTCLEVE1
00000000 l d CALLTR01 0 CALLTR01
00000000 l d CTBSHR01 0 CTBSHR01
00000000 l d CTBROR01 0 CTBROR01
00000000 l d CTBSWA01 0 CTBSWA01
00000000 l d CALLTR02 0 CALLTR02
00000000 l d CALLTRE8 0 CALLTRE8
00000000 l d CALLTRE9 0 CALLTRE9
00000000 l d CTCLEVE2 0 CTCLEVE2
00000000 l d CALLTR12 0 CALLTR12
00000000 l d CTBSHR11 0 CTBSHR11
00000000 l d CTBROR11 0 CTBROR11
00000000 l d CTBSWA11 0 CTBSWA11
00000000 l d LEXEC015 0 LEXEC015
00000000 l d LXUNF000 0 LXUNF000
00000000 l d LXUNF002 0 LXUNF002
00000000 l d MRUBYTE0 0 MRUBYTE0
00000000 l d LXMRU005 0 LXMRU005
00000000 l d LXMRU006 0 LXMRU006
00000000 l d LXMRU007 0 LXMRU007
00000000 l d LXUNF008 0 LXUNF008
00000000 l d LXMRU045 0 LXMRU045
00000000 l d LXMRU046 0 LXMRU046
00000000 l d LXJCC020 0 LXJCC020
00000000 l d LXJCC021 0 LXJCC021
00000000 l d LXJCC023 0 LXJCC023
00000000 l d LXUNF386 0 LXUNF386
00000000 l d LXUNF387 0 LXUNF387
00000000 l d LXUNF388 0 LXUNF388
00000000 l d LXUNF486 0 LXUNF486
00000000 l d LXUNF487 0 LXUNF487
00000000 l d LXMRU065 0 LXMRU065
00000000 l d MRUBYTE3 0 MRUBYTE3
00000000 l d MRUARB30 0 MRUARB30
00000000 l d MRUBITS3 0 MRUBITS3
00000000 l d MRUARB40 0 MRUARB40
00000000 l d MRUBYTE4 0 MRUBYTE4
00000000 l d MRUBITS4 0 MRUBITS4
00000000 l d MRUARB50 0 MRUARB50
00000000 l d LXMRU080 0 LXMRU080
00000000 l d MRUBYTE5 0 MRUBYTE5
00000000 l d MRUARB60 0 MRUARB60
00000000 l d MRUBITS5 0 MRUBITS5
00000000 l d MRUARB70 0 MRUARB70
00000000 l d LXMRU090 0 LXMRU090
00000000 l d MRUBYTE6 0 MRUBYTE6
00000000 l d MRUARB80 0 MRUARB80
00000000 l d MRUBITS6 0 MRUBITS6
00000000 l d MRUARB90 0 MRUARB90
00000000 l d LXMRU110 0 LXMRU110
00000000 l d LXMRU111 0 LXMRU111
00000000 l d LXUNF041 0 LXUNF041
00000000 l d LEXEC016 0 LEXEC016
00000000 l d LXMRU010 0 LXMRU010
00000000 l d LXJMPA00 0 LXJMPA00
00000000 l d LXCALLB0 0 LXCALLB0
00000000 l d LXUNF021 0 LXUNF021
00000000 l d LXMRU022 0 LXMRU022
00000000 l d LXJMPA01 0 LXJMPA01
00000000 l d LXCALLB1 0 LXCALLB1
00000000 l d MRUBITS1 0 MRUBITS1
00000000 l d MRUBYTE1 0 MRUBYTE1
00000000 l d MRUARB10 0 MRUARB10
00000000 l d LXMRU040 0 LXMRU040
00000000 l d LXJCC000 0 LXJCC000
00000000 l d LXCJ0MRU 0 LXCJ0MRU
00000000 l d LXCJ1MRU 0 LXCJ1MRU
00000000 l d LXCALJMP 0 LXCALJMP
00000000 l d LXCALL00 0 LXCALL00
00000000 l d LXCALL01 0 LXCALL01
00000000 l d LXCJ2MRU 0 LXCJ2MRU
00000000 l d LXCJ4MRU 0 LXCJ4MRU
00000000 l d LXCJ6MRU 0 LXCJ6MRU
00000000 l d LXCJ7MRU 0 LXCJ7MRU
00000000 l d LXMRU055 0 LXMRU055
00000000 l d MRUBYTE2 0 MRUBYTE2
00000000 l d MRUBITS2 0 MRUBITS2
00000000 l d MRUARB20 0 MRUARB20
00000000 l d LXMRU057 0 LXMRU057
00000000 l d LXMRU058 0 LXMRU058
00000000 l d LXUNF035 0 LXUNF035
00000000 l d ctok32.30 0 ctok32.30
00000000 l d LEXEC017 0 LEXEC017
00000000 g LEXEC000 0 _start
00000000 *UND* 0 lzma_stack_adjust
00000000 *UND* 0 lzma_u_len
00000000 *UND* 0 lzma_c_len
00000000 *UND* 0 lzma_properties
00000000 *UND* 0 filter_length
00000000 *UND* 0 filter_cto
00000000 *UND* 0 NMRU
00000000 l d ELFMAINX 0 ELFMAINX
00000000 l d ELFMAINZ 0 ELFMAINZ
000003e3 g F ELFMAINX 0178 upx_mmap_and_fd
00000000 *UND* 0 O_BINFO
RELOCATION RECORDS FOR [LEXEC000]:
OFFSET TYPE VALUE
00000002 R_386_PC32 LEXEC020
RELOCATION RECORDS FOR [N2BSMA10]:
OFFSET TYPE VALUE
00000001 R_386_PC8 N2BDEC10
RELOCATION RECORDS FOR [N2BFAS10]:
OFFSET TYPE VALUE
00000001 R_386_PC8 N2BDEC10
RELOCATION RECORDS FOR [N2BSMA20]:
OFFSET TYPE VALUE
00000001 R_386_PC8 N2BSMA10
RELOCATION RECORDS FOR [N2BFAS20]:
OFFSET TYPE VALUE
00000003 R_386_PC8 N2BFAS11
RELOCATION RECORDS FOR [N2BSMA30]:
OFFSET TYPE VALUE
0000000c R_386_PC8 N2BDEC20
RELOCATION RECORDS FOR [N2BFAS30]:
OFFSET TYPE VALUE
00000003 R_386_PC8 N2BDEC20
0000000e R_386_PC8 N2BDEC20
RELOCATION RECORDS FOR [N2BDEC30]:
OFFSET TYPE VALUE
00000011 R_386_PC8 N2BDEC60
0000002f R_386_PC8 N2BDEC50
RELOCATION RECORDS FOR [N2BSMA40]:
OFFSET TYPE VALUE
0000000c R_386_PC8 N2BDEC30
RELOCATION RECORDS FOR [N2BFAS40]:
OFFSET TYPE VALUE
00000003 R_386_PC8 N2BDEC30
0000000e R_386_PC8 N2BDEC30
RELOCATION RECORDS FOR [N2BSMA60]:
OFFSET TYPE VALUE
00000008 R_386_PC32 N2BDEC10
RELOCATION RECORDS FOR [N2BFAS60]:
OFFSET TYPE VALUE
0000000a R_386_PC8 N2BFAS61
00000015 R_386_PC32 N2BDEC10
RELOCATION RECORDS FOR [N2BFAS61]:
OFFSET TYPE VALUE
00000012 R_386_PC32 N2BDEC10
RELOCATION RECORDS FOR [N2DSMA10]:
OFFSET TYPE VALUE
00000001 R_386_PC8 N2DDEC10
RELOCATION RECORDS FOR [N2DFAS10]:
OFFSET TYPE VALUE
00000001 R_386_PC8 N2DDEC10
RELOCATION RECORDS FOR [N2DSMA20]:
OFFSET TYPE VALUE
00000001 R_386_PC8 N2DSMA10
RELOCATION RECORDS FOR [N2DFAS20]:
OFFSET TYPE VALUE
00000003 R_386_PC8 N2DFAS11
RELOCATION RECORDS FOR [N2DSMA30]:
OFFSET TYPE VALUE
0000000c R_386_PC8 N2DDEC30
RELOCATION RECORDS FOR [N2DFAS30]:
OFFSET TYPE VALUE
00000005 R_386_PC8 N2DDEC30
0000000e R_386_PC8 N2DDEC30
RELOCATION RECORDS FOR [N2DDEC30]:
OFFSET TYPE VALUE
0000000f R_386_PC8 N2DDEC20
00000021 R_386_PC8 N2DDEC60
00000043 R_386_PC8 N2DDEC50
RELOCATION RECORDS FOR [N2DSMA40]:
OFFSET TYPE VALUE
0000000c R_386_PC8 N2DDEC30
RELOCATION RECORDS FOR [N2DFAS40]:
OFFSET TYPE VALUE
00000003 R_386_PC8 N2DDEC30
0000000e R_386_PC8 N2DDEC30
RELOCATION RECORDS FOR [N2DSMA60]:
OFFSET TYPE VALUE
00000008 R_386_PC32 N2DDEC10
RELOCATION RECORDS FOR [N2DFAS60]:
OFFSET TYPE VALUE
0000000a R_386_PC8 N2DFAS61
00000015 R_386_PC32 N2DDEC10
RELOCATION RECORDS FOR [N2DFAS61]:
OFFSET TYPE VALUE
00000012 R_386_PC32 N2DDEC10
RELOCATION RECORDS FOR [N2ESMA10]:
OFFSET TYPE VALUE
00000001 R_386_PC8 N2EDEC10
RELOCATION RECORDS FOR [N2EFAS10]:
OFFSET TYPE VALUE
00000001 R_386_PC8 N2EDEC10
RELOCATION RECORDS FOR [N2ESMA20]:
OFFSET TYPE VALUE
00000001 R_386_PC8 N2ESMA10
RELOCATION RECORDS FOR [N2EFAS20]:
OFFSET TYPE VALUE
00000003 R_386_PC8 N2EFAS11
RELOCATION RECORDS FOR [N2ESMA30]:
OFFSET TYPE VALUE
0000000c R_386_PC8 N2EDEC30
RELOCATION RECORDS FOR [N2EFAS30]:
OFFSET TYPE VALUE
00000005 R_386_PC8 N2EDEC30
0000000e R_386_PC8 N2EDEC30
RELOCATION RECORDS FOR [N2EDEC30]:
OFFSET TYPE VALUE
0000000f R_386_PC8 N2EDEC20
0000001e R_386_PC8 N2EDEC50
00000030 R_386_PC8 N2EDEC60
RELOCATION RECORDS FOR [N2ESMA40]:
OFFSET TYPE VALUE
0000000c R_386_PC8 N2EDEC30
RELOCATION RECORDS FOR [N2EFAS40]:
OFFSET TYPE VALUE
00000003 R_386_PC8 N2EDEC30
0000000e R_386_PC8 N2EDEC30
RELOCATION RECORDS FOR [N2ESMA60]:
OFFSET TYPE VALUE
00000008 R_386_PC32 N2EDEC10
RELOCATION RECORDS FOR [N2EFAS60]:
OFFSET TYPE VALUE
0000000a R_386_PC8 N2EFAS61
00000015 R_386_PC32 N2EDEC10
RELOCATION RECORDS FOR [N2EFAS61]:
OFFSET TYPE VALUE
00000012 R_386_PC32 N2EDEC10
RELOCATION RECORDS FOR [LZMA_DEC00]:
OFFSET TYPE VALUE
00000005 R_386_32 lzma_stack_adjust
00000014 R_386_32 lzma_u_len
0000001e R_386_32 lzma_c_len
0000002a R_386_32 lzma_properties
RELOCATION RECORDS FOR [CALLTR00]:
OFFSET TYPE VALUE
00000001 R_386_32 filter_length
RELOCATION RECORDS FOR [CTCLEVE1]:
OFFSET TYPE VALUE
00000002 R_386_8 filter_cto
00000004 R_386_PC8 CALLTR00
RELOCATION RECORDS FOR [CALLTR02]:
OFFSET TYPE VALUE
0000000d R_386_PC8 CALLTR00
RELOCATION RECORDS FOR [CALLTR10]:
OFFSET TYPE VALUE
00000001 R_386_32 filter_length
RELOCATION RECORDS FOR [CALLTR11]:
OFFSET TYPE VALUE
00000003 R_386_PC8 CALLTR13
RELOCATION RECORDS FOR [CTCLEVE2]:
OFFSET TYPE VALUE
00000002 R_386_8 filter_cto
00000004 R_386_PC8 CALLTR11
RELOCATION RECORDS FOR [CALLTR13]:
OFFSET TYPE VALUE
00000004 R_386_PC8 CALLTR10
RELOCATION RECORDS FOR [LXUNF000]:
OFFSET TYPE VALUE
00000001 R_386_PC8 LXUNF010
RELOCATION RECORDS FOR [LXMRU005]:
OFFSET TYPE VALUE
00000001 R_386_32 NMRU
RELOCATION RECORDS FOR [LXUNF010]:
OFFSET TYPE VALUE
00000001 R_386_PC32 LXUNF042
RELOCATION RECORDS FOR [LXJCC020]:
OFFSET TYPE VALUE
00000001 R_386_PC8 LXUNF034
RELOCATION RECORDS FOR [LXJCC021]:
OFFSET TYPE VALUE
00000004 R_386_PC8 LXUNF034
RELOCATION RECORDS FOR [LXUNF388]:
OFFSET TYPE VALUE
00000002 R_386_PC8 LXUNF040
RELOCATION RECORDS FOR [LXUNF487]:
OFFSET TYPE VALUE
00000001 R_386_PC8 LXUNF040
RELOCATION RECORDS FOR [LXMRU065]:
OFFSET TYPE VALUE
00000004 R_386_PC8 LXMRU070
RELOCATION RECORDS FOR [LXMRU070]:
OFFSET TYPE VALUE
00000004 R_386_PC8 LXUNF040
RELOCATION RECORDS FOR [LXMRU090]:
OFFSET TYPE VALUE
00000006 R_386_PC8 LXMRU100
RELOCATION RECORDS FOR [LXUNF041]:
OFFSET TYPE VALUE
00000006 R_386_PC8 LXUNF034
RELOCATION RECORDS FOR [LEXEC016]:
OFFSET TYPE VALUE
00000001 R_386_PC32 LXUNF042
RELOCATION RECORDS FOR [LXMRU040]:
OFFSET TYPE VALUE
00000001 R_386_PC8 LXMRU030
RELOCATION RECORDS FOR [LXJCC000]:
OFFSET TYPE VALUE
00000007 R_386_PC8 LXJCC010
RELOCATION RECORDS FOR [LXCALL00]:
OFFSET TYPE VALUE
00000001 R_386_PC8 LXUNF037
RELOCATION RECORDS FOR [LXCJ2MRU]:
OFFSET TYPE VALUE
00000001 R_386_PC8 LXUNF037
RELOCATION RECORDS FOR [LXCJ4MRU]:
OFFSET TYPE VALUE
00000001 R_386_PC8 LXUNF034
RELOCATION RECORDS FOR [LXCJ6MRU]:
OFFSET TYPE VALUE
00000001 R_386_PC8 LXCJ8MRU
RELOCATION RECORDS FOR [LXCJ7MRU]:
OFFSET TYPE VALUE
00000001 R_386_PC8 LXCJ8MRU
RELOCATION RECORDS FOR [LXCJ8MRU]:
OFFSET TYPE VALUE
00000002 R_386_PC8 LXUNF037
RELOCATION RECORDS FOR [LXUNF034]:
OFFSET TYPE VALUE
00000004 R_386_PC8 LXUNF030
RELOCATION RECORDS FOR [ctok32.00]:
OFFSET TYPE VALUE
00000003 R_386_PC8 ctok32.20
RELOCATION RECORDS FOR [ctok32.10]:
OFFSET TYPE VALUE
0000000d R_386_PC8 ctok32.20
RELOCATION RECORDS FOR [ctok32.20]:
OFFSET TYPE VALUE
00000005 R_386_PC8 ctok32.40
0000000a R_386_PC8 ctok32.40
00000010 R_386_PC8 ctok32.40
RELOCATION RECORDS FOR [ctok32.30]:
OFFSET TYPE VALUE
00000004 R_386_PC8 ctok32.40
00000009 R_386_PC8 ctok32.10
RELOCATION RECORDS FOR [ctok32.40]:
OFFSET TYPE VALUE
00000004 R_386_PC8 ctok32.00
RELOCATION RECORDS FOR [LEXEC020]:
OFFSET TYPE VALUE
00000070 R_386_32 O_BINFO
000001ba g ELFMAINX 0 mempcpy
00000160 g ELFMAINX 0 mmap
00000183 g ELFMAINX 0 uname
0000016e g ELFMAINX 0 get_upxfn_path
00000000 g ELFMAINX 0 _start
000001a8 g ELFMAINX 0 memset
000001da g ELFMAINX 0 my_bkpt
00000171 g ELFMAINX 0 stat
00000192 g ELFMAINX 0 mkdir
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
00000001 R_386_PC32 ELFMAINZ
00000093 R_386_PC32 upx_mmap_and_fd
00000138 R_386_PC32 mmap
000001f3 R_386_PC32 memset
000001fa R_386_PC32 stat
00000228 R_386_PC32 mkdir
00000317 R_386_PC32 mempcpy
0000041b R_386_PC32 uname
0000044a R_386_PC32 get_upxfn_path
000004d1 R_386_PC32 memset
0000052f R_386_PC32 mmap
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
00000002 R_386_PC32 ELFMAINX
00000006 R_386_32 O_BINFO
+77 -24
View File
@@ -6,30 +6,83 @@ Name Origin Length Attributes
Linker script and memory map
.text 0x0000000000000000 0xca0
.text 0x0000000000000000 0x183 tmp/i386-linux.elf-fold.o
0x0000000000000004 get_page_mask
0x0000000000000011 get_upxfn_path
*fill* 0x0000000000000183 0x1 00
.text 0x0000000000000184 0x37f tmp/i386-linux.elf-upxfd_android.o
0x000000000000038b upx_mmap_and_fd
*fill* 0x0000000000000503 0x1 00
.text 0x0000000000000504 0x0 tmp/i386-expand.o
.text 0x0000000000000504 0x79c tmp/i386-linux.elf-main2.o
0x0000000000000659 underlay
0x0000000000000b4c upx_main
.data 0x0000000000000000 0x0
.data 0x0000000000000000 0x0 tmp/i386-linux.elf-fold.o
.data 0x0000000000000000 0x0 tmp/i386-linux.elf-upxfd_android.o
.data 0x0000000000000000 0x0 tmp/i386-expand.o
.data 0x0000000000000000 0x0 tmp/i386-linux.elf-main2.o
.bss 0x0000000000000000 0x0
.bss 0x0000000000000000 0x0 tmp/i386-linux.elf-fold.o
.bss 0x0000000000000000 0x0 tmp/i386-linux.elf-upxfd_android.o
.bss 0x0000000000000000 0x0 tmp/i386-expand.o
.bss 0x0000000000000000 0x0 tmp/i386-linux.elf-main2.o
TARGET(elf32-i386)
0x0000000000c01080 . = ((0xc01000 + SIZEOF_HEADERS) + 0xc)
.text 0x0000000000c01080 0x7b8
*(.text)
.text 0x0000000000c01080 0x1bc tmp/i386-linux.elf-fold.o
0x0000000000c0120e mmap
0x0000000000c011e6 Pprotect
.text 0x0000000000c0123c 0x5fa tmp/i386-linux.elf-main.o
0x0000000000c01397 get_page_mask
0x0000000000c0172c upx_main
*(.data)
*fill* 0x0000000000c01836 0x2 00
.data 0x0000000000c01838 0x0 tmp/i386-linux.elf-fold.o
.data 0x0000000000c01838 0x0 tmp/i386-linux.elf-main.o
.data
.bss 0x0000000000c01838 0x0
.bss 0x0000000000c01838 0x0 tmp/i386-linux.elf-fold.o
.bss 0x0000000000c01838 0x0 tmp/i386-linux.elf-main.o
.rel.dyn 0x0000000000c01838 0x0
.rel.text 0x0000000000000000 0x0 tmp/i386-linux.elf-fold.o
0x0000000000100040 . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
LOAD tmp/i386-linux.elf-fold.o
LOAD tmp/i386-linux.elf-main.o
LOAD tmp/i386-linux.elf-upxfd_android.o
LOAD tmp/i386-expand.o
LOAD tmp/i386-linux.elf-main2.o
OUTPUT(tmp/i386-linux.elf-fold.bin elf32-i386)
SYSCALLS 0x0000000000000000 0xc0
SYSCALLS 0x0000000000000000 0xc0 tmp/i386-linux.elf-fold.o
0x000000000000008f memcpy
0x00000000000000a5 mempcpy
0x000000000000002a mmap
0x000000000000005a uname
0x000000000000007b memset
0x00000000000000bb my_bkpt
0x0000000000000000 Pprotect
0x0000000000000048 stat
0x0000000000000069 mkdir
.note.GNU-stack
0x0000000000000000 0x0
.note.GNU-stack
0x0000000000000000 0x0 tmp/i386-linux.elf-upxfd_android.o
EXP_HEAD 0x0000000000000000 0xf1
EXP_HEAD 0x0000000000000000 0xf1 tmp/i386-expand.o
0x0000000000000057 f_expand
EXP_TAIL 0x0000000000000000 0xb
EXP_TAIL 0x0000000000000000 0xb tmp/i386-expand.o
NRV2E 0x0000000000000000 0xd2
NRV2E 0x0000000000000000 0xd2 tmp/i386-expand.o
NRV2D 0x0000000000000000 0xc5
NRV2D 0x0000000000000000 0xc5 tmp/i386-expand.o
NRV2B 0x0000000000000000 0xb0
NRV2B 0x0000000000000000 0xb0 tmp/i386-expand.o
LZMA_DEC00 0x0000000000000000 0x2e
LZMA_DEC00 0x0000000000000000 0x2e tmp/i386-expand.o
LZMA_ELF00 0x0000000000000000 0x48
LZMA_ELF00 0x0000000000000000 0x48 tmp/i386-expand.o
LZMA_DEC10 0x0000000000000000 0xa86
LZMA_DEC10 0x0000000000000000 0xa86 tmp/i386-expand.o
LZMA_DEC20 0x0000000000000000 0xa86
LZMA_DEC20 0x0000000000000000 0xa86 tmp/i386-expand.o
LZMA_DEC30 0x0000000000000000 0x1a
LZMA_DEC30 0x0000000000000000 0x1a tmp/i386-expand.o
+15 -14
View File
@@ -9,28 +9,29 @@ Linker script and memory map
TARGET(elf32-i386)
0x0000000000401080 . = ((0x401000 + SIZEOF_HEADERS) + 0xc)
.data 0x0000000000401080 0x3c8
.data 0x0000000000401080 0x3f0
*(.text)
.text 0x0000000000401080 0x28 tmp/i386-linux.elf.execve-fold.o
0x000000000040109c mmap
.text 0x00000000004010a8 0x37c tmp/i386-linux.elf.execve-main.o
0x00000000004011c0 my_bkpt
0x00000000004011c2 upx_main
.text 0x0000000000401424 0x23 tmp/i386-linux.elf.execve-upx_itoa.o
0x0000000000401424 upx_itoa
.text 0x00000000004010a8 0x3a3 tmp/i386-linux.elf.execve-main.o
0x00000000004011c4 my_bkpt
0x00000000004011c6 upx_main
*fill* 0x000000000040144b 0x1 00
.text 0x000000000040144c 0x23 tmp/i386-linux.elf.execve-upx_itoa.o
0x000000000040144c upx_itoa
*(.rodata)
*(.data)
*fill* 0x0000000000401447 0x1 00
.data 0x0000000000401448 0x0 tmp/i386-linux.elf.execve-fold.o
.data 0x0000000000401448 0x0 tmp/i386-linux.elf.execve-main.o
.data 0x0000000000401448 0x0 tmp/i386-linux.elf.execve-upx_itoa.o
*fill* 0x000000000040146f 0x1 00
.data 0x0000000000401470 0x0 tmp/i386-linux.elf.execve-fold.o
.data 0x0000000000401470 0x0 tmp/i386-linux.elf.execve-main.o
.data 0x0000000000401470 0x0 tmp/i386-linux.elf.execve-upx_itoa.o
*(.bss)
.bss 0x0000000000401448 0x0 tmp/i386-linux.elf.execve-fold.o
.bss 0x0000000000401448 0x0 tmp/i386-linux.elf.execve-main.o
.bss 0x0000000000401448 0x0 tmp/i386-linux.elf.execve-upx_itoa.o
.bss 0x0000000000401470 0x0 tmp/i386-linux.elf.execve-fold.o
.bss 0x0000000000401470 0x0 tmp/i386-linux.elf.execve-main.o
.bss 0x0000000000401470 0x0 tmp/i386-linux.elf.execve-upx_itoa.o
*(COMMON)
.rel.dyn 0x0000000000401448 0x0
.rel.dyn 0x0000000000401470 0x0
.rel.text 0x0000000000000000 0x0 tmp/i386-linux.elf.execve-fold.o
LOAD tmp/i386-linux.elf.execve-fold.o
LOAD tmp/i386-linux.elf.execve-main.o
+10 -10
View File
@@ -9,25 +9,25 @@ Linker script and memory map
TARGET(elf32-i386)
0x0000000000010074 . = (0x10000 + SIZEOF_HEADERS)
.text 0x0000000000010074 0x584
.text 0x0000000000010074 0x630
*(.text)
.text 0x0000000000010074 0x74 tmp/i386-linux.elf.interp-fold.o
0x00000000000100da mmap
.text 0x00000000000100e8 0x50d tmp/i386-linux.elf.interp-main.o
0x00000000000104fa pti_main
.text 0x00000000000100e8 0x5bb tmp/i386-linux.elf.interp-main.o
0x000000000001059f pti_main
*(.rodata)
*(.data)
*fill* 0x00000000000105f5 0x3 00
.data 0x00000000000105f8 0x0 tmp/i386-linux.elf.interp-fold.o
.data 0x00000000000105f8 0x0 tmp/i386-linux.elf.interp-main.o
*fill* 0x00000000000106a3 0x1 00
.data 0x00000000000106a4 0x0 tmp/i386-linux.elf.interp-fold.o
.data 0x00000000000106a4 0x0 tmp/i386-linux.elf.interp-main.o
.data
.bss 0x00000000000105f8 0x0
.bss 0x00000000000105f8 0x0 tmp/i386-linux.elf.interp-fold.o
.bss 0x00000000000105f8 0x0 tmp/i386-linux.elf.interp-main.o
.bss 0x00000000000106a4 0x0
.bss 0x00000000000106a4 0x0 tmp/i386-linux.elf.interp-fold.o
.bss 0x00000000000106a4 0x0 tmp/i386-linux.elf.interp-main.o
.rel.dyn 0x00000000000105f8 0x0
.rel.dyn 0x00000000000106a4 0x0
.rel.text 0x0000000000000000 0x0 tmp/i386-linux.elf.interp-fold.o
LOAD tmp/i386-linux.elf.interp-fold.o
LOAD tmp/i386-linux.elf.interp-main.o
+8 -8
View File
@@ -10,22 +10,22 @@ TARGET(elf32-i386)
0x0000000001400074 . = (0x1400000 + SIZEOF_HEADERS)
0x0000000001400080 . = ALIGN (0x80)
.data 0x0000000001400080 0x4ac
.data 0x0000000001400080 0x4f0
*(.text)
.text 0x0000000001400080 0xf4 tmp/i386-linux.elf.shell-fold.o
0x0000000001400167 mmap
.text 0x0000000001400174 0x3b8 tmp/i386-linux.elf.shell-main.o
0x00000000014003bc upx_main
.text 0x0000000001400174 0x3fc tmp/i386-linux.elf.shell-main.o
0x00000000014003ec upx_main
*(.rodata)
*(.data)
.data 0x000000000140052c 0x0 tmp/i386-linux.elf.shell-fold.o
.data 0x000000000140052c 0x0 tmp/i386-linux.elf.shell-main.o
.data 0x0000000001400570 0x0 tmp/i386-linux.elf.shell-fold.o
.data 0x0000000001400570 0x0 tmp/i386-linux.elf.shell-main.o
*(.bss)
.bss 0x000000000140052c 0x0 tmp/i386-linux.elf.shell-fold.o
.bss 0x000000000140052c 0x0 tmp/i386-linux.elf.shell-main.o
.bss 0x0000000001400570 0x0 tmp/i386-linux.elf.shell-fold.o
.bss 0x0000000001400570 0x0 tmp/i386-linux.elf.shell-main.o
*(COMMON)
.rel.dyn 0x000000000140052c 0x0
.rel.dyn 0x0000000001400570 0x0
.rel.text 0x0000000000000000 0x0 tmp/i386-linux.elf.shell-fold.o
LOAD tmp/i386-linux.elf.shell-fold.o
LOAD tmp/i386-linux.elf.shell-main.o
+33 -32
View File
@@ -9,45 +9,46 @@ Linker script and memory map
TARGET(elf32-i386)
0x0000000000c01080 . = ((0xc01000 + SIZEOF_HEADERS) + 0xc)
.text 0x0000000000c01080 0x698
.text 0x0000000000c01080 0x768
*(.text)
.text 0x0000000000c01080 0xc4 tmp/i386-bsd.elf-fold.o
.text 0x0000000000c01144 0x564 tmp/i386-bsd.elf-main.o
0x0000000000c01570 upx_main
.text 0x0000000000c016a8 0x6d tmp/i386-bsd.syscall.o
0x0000000000c01711 waitpid
0x0000000000c016e5 munmap
0x0000000000c016f9 execve
0x0000000000c016f1 getpid
0x0000000000c01701 ftruncate
0x0000000000c016a8 mmap
0x0000000000c01709 nanosleep
0x0000000000c016d9 write
0x0000000000c016d5 read
0x0000000000c0170d unlink
0x0000000000c016fd fork
0x0000000000c01705 gettimeofday
0x0000000000c016ed access
0x0000000000c016cd exit
0x0000000000c016cc brk
0x0000000000c016dd open
0x0000000000c016e9 mprotect
0x0000000000c016f5 fcntl
0x0000000000c016e1 close
.text 0x0000000000c01144 0x632 tmp/i386-bsd.elf-main.o
0x0000000000c0162f upx_main
*fill* 0x0000000000c01776 0x2 00
.text 0x0000000000c01778 0x6d tmp/i386-bsd.syscall.o
0x0000000000c017e1 waitpid
0x0000000000c017b5 munmap
0x0000000000c017c9 execve
0x0000000000c017c1 getpid
0x0000000000c017d1 ftruncate
0x0000000000c01778 mmap
0x0000000000c017d9 nanosleep
0x0000000000c017a9 write
0x0000000000c017a5 read
0x0000000000c017dd unlink
0x0000000000c017cd fork
0x0000000000c017d5 gettimeofday
0x0000000000c017bd access
0x0000000000c0179d exit
0x0000000000c0179c brk
0x0000000000c017ad open
0x0000000000c017b9 mprotect
0x0000000000c017c5 fcntl
0x0000000000c017b1 close
*(.data)
*fill* 0x0000000000c01715 0x3 00
.data 0x0000000000c01718 0x0 tmp/i386-bsd.elf-fold.o
.data 0x0000000000c01718 0x0 tmp/i386-bsd.elf-main.o
.data 0x0000000000c01718 0x0 tmp/i386-bsd.syscall.o
*fill* 0x0000000000c017e5 0x3 00
.data 0x0000000000c017e8 0x0 tmp/i386-bsd.elf-fold.o
.data 0x0000000000c017e8 0x0 tmp/i386-bsd.elf-main.o
.data 0x0000000000c017e8 0x0 tmp/i386-bsd.syscall.o
.data
.bss 0x0000000000c01718 0x0
.bss 0x0000000000c01718 0x0 tmp/i386-bsd.elf-fold.o
.bss 0x0000000000c01718 0x0 tmp/i386-bsd.elf-main.o
.bss 0x0000000000c01718 0x0 tmp/i386-bsd.syscall.o
.bss 0x0000000000c017e8 0x0
.bss 0x0000000000c017e8 0x0 tmp/i386-bsd.elf-fold.o
.bss 0x0000000000c017e8 0x0 tmp/i386-bsd.elf-main.o
.bss 0x0000000000c017e8 0x0 tmp/i386-bsd.syscall.o
.rel.dyn 0x0000000000c01718 0x0
.rel.dyn 0x0000000000c017e8 0x0
.rel.text 0x0000000000000000 0x0 tmp/i386-bsd.elf-fold.o
LOAD tmp/i386-bsd.elf-fold.o
LOAD tmp/i386-bsd.elf-main.o
+33 -32
View File
@@ -9,45 +9,46 @@ Linker script and memory map
TARGET(elf32-i386)
0x0000000000c01080 . = ((0xc01000 + SIZEOF_HEADERS) + 0xc)
.text 0x0000000000c01080 0x77c
.text 0x0000000000c01080 0x854
*(.text)
.text 0x0000000000c01080 0xc4 tmp/i386-openbsd.elf-fold.o
.text 0x0000000000c01144 0x648 tmp/i386-openbsd.elf-main.o
0x0000000000c0163e upx_main
.text 0x0000000000c0178c 0x6d tmp/i386-bsd.syscall.o
0x0000000000c017f5 waitpid
0x0000000000c017c9 munmap
0x0000000000c017dd execve
0x0000000000c017d5 getpid
0x0000000000c017e5 ftruncate
0x0000000000c0178c mmap
0x0000000000c017ed nanosleep
0x0000000000c017bd write
0x0000000000c017b9 read
0x0000000000c017f1 unlink
0x0000000000c017e1 fork
0x0000000000c017e9 gettimeofday
0x0000000000c017d1 access
0x0000000000c017b1 exit
0x0000000000c017b0 brk
0x0000000000c017c1 open
0x0000000000c017cd mprotect
0x0000000000c017d9 fcntl
0x0000000000c017c5 close
.text 0x0000000000c01144 0x71d tmp/i386-openbsd.elf-main.o
0x0000000000c01704 upx_main
*fill* 0x0000000000c01861 0x3 00
.text 0x0000000000c01864 0x6d tmp/i386-bsd.syscall.o
0x0000000000c018cd waitpid
0x0000000000c018a1 munmap
0x0000000000c018b5 execve
0x0000000000c018ad getpid
0x0000000000c018bd ftruncate
0x0000000000c01864 mmap
0x0000000000c018c5 nanosleep
0x0000000000c01895 write
0x0000000000c01891 read
0x0000000000c018c9 unlink
0x0000000000c018b9 fork
0x0000000000c018c1 gettimeofday
0x0000000000c018a9 access
0x0000000000c01889 exit
0x0000000000c01888 brk
0x0000000000c01899 open
0x0000000000c018a5 mprotect
0x0000000000c018b1 fcntl
0x0000000000c0189d close
*(.data)
*fill* 0x0000000000c017f9 0x3 00
.data 0x0000000000c017fc 0x0 tmp/i386-openbsd.elf-fold.o
.data 0x0000000000c017fc 0x0 tmp/i386-openbsd.elf-main.o
.data 0x0000000000c017fc 0x0 tmp/i386-bsd.syscall.o
*fill* 0x0000000000c018d1 0x3 00
.data 0x0000000000c018d4 0x0 tmp/i386-openbsd.elf-fold.o
.data 0x0000000000c018d4 0x0 tmp/i386-openbsd.elf-main.o
.data 0x0000000000c018d4 0x0 tmp/i386-bsd.syscall.o
.data
.bss 0x0000000000c017fc 0x0
.bss 0x0000000000c017fc 0x0 tmp/i386-openbsd.elf-fold.o
.bss 0x0000000000c017fc 0x0 tmp/i386-openbsd.elf-main.o
.bss 0x0000000000c017fc 0x0 tmp/i386-bsd.syscall.o
.bss 0x0000000000c018d4 0x0
.bss 0x0000000000c018d4 0x0 tmp/i386-openbsd.elf-fold.o
.bss 0x0000000000c018d4 0x0 tmp/i386-openbsd.elf-main.o
.bss 0x0000000000c018d4 0x0 tmp/i386-bsd.syscall.o
.rel.dyn 0x0000000000c017fc 0x0
.rel.dyn 0x0000000000c018d4 0x0
.rel.text 0x0000000000000000 0x0 tmp/i386-openbsd.elf-fold.o
LOAD tmp/i386-openbsd.elf-fold.o
LOAD tmp/i386-openbsd.elf-main.o