mipsel remember /proc/self/exe in environment

This commit is contained in:
John Reiser 2007-05-16 15:37:22 -07:00
parent 265957712a
commit a503a54240
2 changed files with 212 additions and 173 deletions

View File

@ -1,5 +1,5 @@
/* mipsel.r3000-linux.elf-fold.h
created from mipsel.r3000-linux.elf-fold.bin, 2416 (0x970) bytes
created from mipsel.r3000-linux.elf-fold.bin, 2560 (0xa00) bytes
This file is part of the UPX executable compressor.
@ -28,160 +28,169 @@
*/
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_SIZE 2416
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_ADLER32 0x3f2f1761
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_CRC32 0x040f752e
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_SIZE 2560
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_ADLER32 0x47892e4c
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_CRC32 0xf8bf56d3
unsigned char stub_mipsel_r3000_linux_elf_fold[2416] = {
unsigned char stub_mipsel_r3000_linux_elf_fold[2560] = {
127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */
2, 0, 8, 0, 1, 0, 0, 0,128, 0, 16, 0, 52, 0, 0, 0, /* 0x 10 */
0, 0, 0, 0, 1, 48, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0, /* 0x 20 */
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, /* 0x 30 */
0, 0, 16, 0,112, 9, 0, 0,112, 9, 0, 0, 5, 0, 0, 0, /* 0x 40 */
0, 16, 0, 0, 1, 0, 0, 0,112, 9, 0, 0, 0, 0, 0, 0, /* 0x 50 */
0, 0, 16, 0, 0, 10, 0, 0, 0, 10, 0, 0, 5, 0, 0, 0, /* 0x 40 */
0, 16, 0, 0, 1, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, /* 0x 50 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 60 */
0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 70 */
36, 0,167, 39, 0, 0,225,140, 4, 0,231, 36,253,255, 32, 20, /* 0x 80 */
33, 72, 0, 0, 0, 0,225,140, 4, 0,231, 36,253,255, 32, 20, /* 0x 90 */
33, 64,224, 2, 32,254,189, 39, 33, 48,160, 3,116,255,165, 38, /* 0x a0 */
33, 32, 32, 2, 1, 0, 16, 4,188, 0, 2, 36, 35, 16,226, 3, /* 0x b0 */
196, 7, 66, 36, 9,248, 64, 0, 33,176,224, 0, 0, 2,189, 39, /* 0x c0 */
0, 0,193,142, 8, 0,214, 38,253,255, 32, 20, 33,200, 64, 0, /* 0x d0 */
252,255,193,142, 33, 40, 64, 2, 3, 0, 32, 16, 33, 32, 96, 2, /* 0x e0 */
8, 0, 32, 0,251, 15, 2, 36, 8, 0,224, 3, 0, 0, 0, 0, /* 0x f0 */
250, 15, 2, 36,224,255,189, 39, 16, 0,168,175, 20, 0,169,175, /* 0x 100 */
12, 0, 0, 0, 2, 0, 0, 16, 32, 0,189, 39, 12, 0, 0, 0, /* 0x 110 */
3, 0,224, 20, 0, 0, 0, 0, 8, 0,224, 3, 0, 0, 0, 0, /* 0x 120 */
8, 0,224, 3,255,255, 2, 36, 8, 0,224, 3, 0, 0, 0, 0, /* 0x 130 */
0, 0,130,140, 4, 0,135,140, 43, 16, 70, 0, 3, 0, 64, 20, /* 0x 140 */
161, 15, 2, 36, 10, 0, 0, 16, 33, 24,192, 0,127, 0, 4, 36, /* 0x 150 */
238,255, 17, 4, 0, 0, 0, 0,255,255, 0, 16, 0, 0, 0, 0, /* 0x 160 */
0, 0,226,144, 1, 0,231, 36, 0, 0,162,160, 1, 0,165, 36, /* 0x 170 */
255,255, 99, 36,255,255, 2, 36,249,255, 98, 20, 0, 0, 0, 0, /* 0x 180 */
4, 0,131,140, 0, 0,130,140, 33, 24,102, 0, 35, 16, 70, 0, /* 0x 190 */
0, 0,130,172, 8, 0,224, 3, 4, 0,131,172,216,255,189, 39, /* 0x 1a0 */
28, 0,179,175, 24, 0,178,175, 20, 0,177,175, 16, 0,176,175, /* 0x 1b0 */
33,136,128, 0, 33,128,160, 0, 33,152,192, 0, 33,144,224, 0, /* 0x 1c0 */
82, 0, 0, 16, 32, 0,191,175, 33, 32, 32, 2,216,255, 17, 4, /* 0x 1d0 */
4, 0,165, 39, 4, 0,163,143, 8, 0,166,143, 10, 0, 96, 20, /* 0x 1e0 */
88, 33, 2, 60, 85, 80, 66, 52, 10, 0,194, 20,127, 0, 4, 36, /* 0x 1f0 */
0, 0, 34,142, 0, 0, 0, 0, 7, 0, 64, 20,161, 15, 2, 36, /* 0x 200 */
70, 0, 0, 16, 0, 0, 0, 0, 7, 0,192, 20, 43, 16,102, 0, /* 0x 210 */
127, 0, 4, 36,161, 15, 2, 36,188,255, 17, 4, 0, 0, 0, 0, /* 0x 220 */
255,255, 0, 16, 0, 0, 0, 0,250,255, 64, 20,127, 0, 4, 36, /* 0x 230 */
0, 0, 2,142, 0, 0, 0, 0, 43, 16, 67, 0,245,255, 64, 20, /* 0x 240 */
43, 16,195, 0, 4, 0, 7,142, 39, 0, 64, 16, 33, 40,224, 0, /* 0x 250 */
4, 0, 36,142, 12, 0,168,143, 33, 40,192, 0, 0, 0,163,175, /* 0x 260 */
33, 48,224, 0, 9,248, 96, 2, 33, 56,160, 3,233,255, 64, 20, /* 0x 270 */
127, 0, 4, 36, 0, 0,165,143, 4, 0,162,143, 0, 0, 0, 0, /* 0x 280 */
228,255,162, 20, 0, 0, 0, 0, 13, 0,167,147, 0, 0, 0, 0, /* 0x 290 */
13, 0,224, 16, 0, 0, 0, 0, 11, 0, 64, 18, 1, 2,162, 44, /* 0x 2a0 */
5, 0, 64, 16, 0, 0, 0, 0, 0, 0, 2,142, 0, 0, 0, 0, /* 0x 2b0 */
5, 0, 69, 20, 0, 0, 0, 0, 4, 0, 4,142, 14, 0,166,147, /* 0x 2c0 */
9,248, 64, 2, 0, 0, 0, 0, 8, 0,162,143, 4, 0, 35,142, /* 0x 2d0 */
0, 0, 36,142, 33, 24, 98, 0, 35, 32,130, 0, 4, 0, 35,174, /* 0x 2e0 */
3, 0, 0, 16, 0, 0, 36,174,145,255, 17, 4, 33, 32, 32, 2, /* 0x 2f0 */
4, 0,162,143, 4, 0, 3,142, 0, 0, 4,142, 33, 24, 98, 0, /* 0x 300 */
35, 32,130, 0, 4, 0, 3,174, 0, 0, 4,174, 0, 0, 2,142, /* 0x 310 */
0, 0, 0, 0,172,255, 64, 20, 12, 0, 6, 36, 32, 0,191,143, /* 0x 320 */
28, 0,179,143, 24, 0,178,143, 20, 0,177,143, 16, 0,176,143, /* 0x 330 */
8, 0,224, 3, 40, 0,189, 39, 14, 0,128, 16, 33, 16,128, 0, /* 0x 340 */
1, 0, 4, 36, 0, 0, 67,140, 0, 0, 0, 0, 5, 0,101, 16, /* 0x 350 */
0, 0, 0, 0, 5, 0,100, 20, 0, 0, 0, 0, 3, 0,160, 16, /* 0x 360 */
0, 0, 0, 0, 8, 0,224, 3, 0, 0, 69,172,245,255, 0, 16, /* 0x 370 */
8, 0, 66, 36, 8, 0,224, 3, 0, 0, 0, 0,248,255,189, 39, /* 0x 380 */
0, 0,176,175, 4, 0,191,175,235,255, 17, 4, 33,128,192, 0, /* 0x 390 */
2, 0, 64, 16, 0, 0, 0, 0, 4, 0, 80,172, 4, 0,191,143, /* 0x 3a0 */
0, 0,176,143, 8, 0,224, 3, 8, 0,189, 39,168,255,189, 39, /* 0x 3b0 */
80, 0,190,175, 68, 0,181,175, 52, 0,177,175, 84, 0,191,175, /* 0x 3c0 */
76, 0,183,175, 72, 0,182,175, 64, 0,180,175, 60, 0,179,175, /* 0x 3d0 */
56, 0,178,175, 48, 0,176,175, 28, 0,162,140, 33,168,160, 0, /* 0x 3e0 */
28, 0,164,175, 6, 0, 5, 36, 33, 32,224, 0, 32, 0,167,175, /* 0x 3f0 */
33,240,192, 0, 36, 0,168,175, 40, 0,169,175,206,255, 17, 4, /* 0x 400 */
33,136,162, 2, 3, 0, 64, 20, 0, 0, 0, 0, 4, 0, 0, 16, /* 0x 410 */
255,255, 2, 52, 4, 0, 66,140, 0, 0, 0, 0,255,255, 66, 36, /* 0x 420 */
20, 0,162,175, 16, 0,162,150, 20, 0,164,143, 2, 0, 66, 56, /* 0x 430 */
44, 0,163,150, 1, 0, 66, 44, 0, 17, 2, 0, 39, 40, 4, 0, /* 0x 440 */
2, 8, 71, 36,255,255, 99, 36, 33, 64, 32, 2,255,255, 4, 36, /* 0x 450 */
33, 72, 0, 0, 19, 0, 0, 16, 1, 0, 10, 36, 0, 0, 2,141, /* 0x 460 */
0, 0, 0, 0, 14, 0, 74, 20,255,255, 99, 36, 8, 0, 6,141, /* 0x 470 */
0, 0, 0, 0, 43, 16,196, 0, 2, 0, 64, 16, 0, 0, 0, 0, /* 0x 480 */
33, 32,192, 0, 20, 0, 2,141, 0, 0, 0, 0, 33, 48,194, 0, /* 0x 490 */
43, 16, 38, 1, 2, 0, 64, 16, 0, 0, 0, 0, 33, 72,192, 0, /* 0x 4a0 */
32, 0, 8, 37,237,255, 97, 4, 36,128,164, 0, 35, 16, 48, 1, /* 0x 4b0 */
35, 16, 69, 0,255,255, 66, 36, 36, 40,162, 0, 16, 0,227, 48, /* 0x 4c0 */
3, 0, 96, 16, 8, 0,165,175, 8, 0, 0, 16, 12, 0,176,175, /* 0x 4d0 */
8, 0,165,143, 33, 32, 0, 2, 33, 48, 0, 0,255,255, 8, 36, /* 0x 4e0 */
3,255, 17, 4, 33, 72, 0, 0, 12, 0,162,175, 12, 0,165,143, /* 0x 4f0 */
16, 0,160,175,133, 0, 0, 16, 35,184,176, 0, 12, 0,192, 19, /* 0x 500 */
6, 0, 2, 36, 0, 0, 35,142, 0, 0, 0, 0, 10, 0, 98, 20, /* 0x 510 */
1, 0, 2, 36, 8, 0, 38,142, 32, 0,164,143, 33, 48,230, 2, /* 0x 520 */
150,255, 17, 4, 3, 0, 5, 36,116, 0, 0, 16, 0, 0, 0, 0, /* 0x 530 */
0, 0, 35,142, 1, 0, 2, 36,112, 0, 98, 20, 0, 0, 0, 0, /* 0x 540 */
8, 0, 34,142, 24, 0, 35,142, 33,176,226, 2, 81,115, 2, 60, /* 0x 550 */
128, 24, 3, 0, 64, 98, 66, 52, 6, 16, 98, 0, 20, 0,165,143, /* 0x 560 */
16, 0, 36,142, 7, 0, 82, 48, 20, 0, 34,142, 36, 24,197, 2, /* 0x 570 */
0, 0,164,175, 4, 0,182,175, 33,160,131, 0, 24, 0,162,175, /* 0x 580 */
122, 0,192, 19, 35,152,195, 2, 2, 0, 70, 54,255,255, 8, 36, /* 0x 590 */
18, 8, 7, 36, 4, 0, 41,142, 33, 32, 96, 2, 35, 72, 35, 1, /* 0x 5a0 */
211,254, 17, 4, 33, 40,128, 2, 64, 0, 98, 22,127, 0, 4, 36, /* 0x 5b0 */
11, 0,192, 19, 4, 0, 66, 50, 4, 0, 64, 16, 0, 0, 0, 0, /* 0x 5c0 */
40, 0,167,143, 2, 0, 0, 16, 0, 0, 0, 0, 33, 56, 0, 0, /* 0x 5d0 */
28, 0,166,143, 33, 32,192, 3,240,254, 17, 4, 33, 40,160, 3, /* 0x 5e0 */
20, 0,164,143, 35, 16, 20, 0, 2, 0, 67, 50, 8, 0, 96, 16, /* 0x 5f0 */
36,128, 68, 0, 6, 0, 0, 18, 33, 24,116, 2, 33, 16, 0, 2, /* 0x 600 */
255,255, 66, 36, 0, 0, 96,160,253,255, 64, 20, 1, 0, 99, 36, /* 0x 610 */
43, 0,192, 19, 1, 0, 2, 36, 0, 0, 35,142, 0, 0, 0, 0, /* 0x 620 */
28, 0, 98, 20, 33, 32, 96, 2, 24, 0, 34,142, 0, 0, 0, 0, /* 0x 630 */
1, 0, 66, 48, 24, 0, 64, 16, 33, 40,128, 2, 20, 0, 36,142, /* 0x 640 */
16, 0, 34,142, 8, 0, 35,142, 17, 0,130, 20, 33, 16,131, 0, /* 0x 650 */
33, 48, 87, 0, 20, 0,165,143, 35, 16, 6, 0, 36, 16,162, 0, /* 0x 660 */
12, 0, 66, 44, 11, 0, 64, 20, 33, 32, 96, 2, 12, 0, 2, 36, /* 0x 670 */
0, 0,194,172, 32, 3, 2, 60, 8, 0, 66, 52, 32, 0,164,143, /* 0x 680 */
4, 0,194,172, 8, 0,192,172, 60,255, 17, 4, 33, 40, 0, 0, /* 0x 690 */
33, 32, 96, 2, 33, 40,128, 2, 33, 48, 64, 2,155,254, 17, 4, /* 0x 6a0 */
29, 16, 2, 36, 6, 0, 64, 16,127, 0, 4, 36,161, 15, 2, 36, /* 0x 6b0 */
150,254, 17, 4, 0, 0, 0, 0,255,255, 0, 16, 0, 0, 0, 0, /* 0x 6c0 */
24, 0,163,143, 33, 16,144, 2, 33, 40,195, 2, 33,128, 98, 2, /* 0x 6d0 */
43, 16, 5, 2, 9, 0, 64, 16, 35, 40,176, 0, 33, 48, 64, 2, /* 0x 6e0 */
33, 32, 0, 2, 18, 8, 7, 36,255,255, 8, 36,128,254, 17, 4, /* 0x 6f0 */
33, 72, 0, 0,237,255, 2, 22,127, 0, 4, 36, 16, 0,164,143, /* 0x 700 */
32, 0, 49, 38, 1, 0,132, 36, 16, 0,164,175, 44, 0,162,150, /* 0x 710 */
16, 0,165,143, 0, 0, 0, 0, 42, 16,162, 0,119,255, 64, 20, /* 0x 720 */
0, 0, 0, 0, 11, 0,192, 19, 3, 0, 2, 36, 16, 0,163,150, /* 0x 730 */
0, 0, 0, 0, 7, 0, 98, 16, 0, 0, 0, 0, 12, 0,162,143, /* 0x 740 */
8, 0,163,143, 0, 0, 0, 0, 33, 32, 67, 0,111,254, 17, 4, /* 0x 750 */
205, 15, 2, 36, 36, 0,164,143, 0, 0, 0, 0, 7, 0,128, 16, /* 0x 760 */
0, 0, 0, 0, 5, 0, 0, 16, 0, 0,151,172, 28, 0,168,143, /* 0x 770 */
33, 48, 64, 2,135,255, 0, 16, 18, 0, 7, 36, 24, 0,162,142, /* 0x 780 */
84, 0,191,143, 33, 16,226, 2, 80, 0,190,143, 76, 0,183,143, /* 0x 790 */
72, 0,182,143, 68, 0,181,143, 64, 0,180,143, 60, 0,179,143, /* 0x 7a0 */
56, 0,178,143, 52, 0,177,143, 48, 0,176,143, 8, 0,224, 3, /* 0x 7b0 */
88, 0,189, 39,200,255,189, 39, 52, 0,191,175, 48, 0,180,175, /* 0x 7c0 */
44, 0,179,175, 40, 0,178,175, 36, 0,177,175, 32, 0,176,175, /* 0x 7d0 */
33,128, 0, 1, 0, 0,136,140, 33, 24,160, 0, 33, 16,128, 0, /* 0x 7e0 */
33,144,192, 0, 33,160,224, 0, 4, 0,165, 39, 33, 56, 0, 0, /* 0x 7f0 */
33, 48, 0, 2, 20, 0,164, 39, 20, 0,163,175, 33,136, 32, 1, /* 0x 800 */
12, 0,163,175, 4, 0,168,175, 24, 0,162,175, 16, 0,162,175, /* 0x 810 */
98,254, 17, 4, 8, 0,178,175, 44, 0, 70,150, 33, 32,128, 2, /* 0x 820 */
214,254, 17, 4, 5, 0, 5, 36, 42, 0, 70,150, 33, 32,128, 2, /* 0x 830 */
4, 0, 5, 36,209,254, 17, 4, 52, 0, 83, 38, 8, 0,102,142, /* 0x 840 */
33, 32,128, 2, 52, 0,198, 36,204,254, 17, 4, 3, 0, 5, 36, /* 0x 850 */
33, 72, 32, 2, 33, 32, 0, 2, 33, 40, 64, 2, 12, 0,166, 39, /* 0x 860 */
33, 56,128, 2,209,254, 17, 4, 33, 64,160, 3, 33, 48, 64, 0, /* 0x 870 */
33, 32,128, 2, 9, 0, 5, 36,192,254, 17, 4, 33,136, 64, 0, /* 0x 880 */
44, 0, 69,150, 42, 0, 0, 16, 33, 32, 0, 0, 0, 0, 99,142, /* 0x 890 */
3, 0, 2, 36, 38, 0, 98, 20, 32, 0,115, 38,224,255,115, 38, /* 0x 8a0 */
8, 0, 98,142, 0, 0,164,143, 33, 40, 0, 0, 33, 32, 68, 0, /* 0x 8b0 */
33, 48, 0, 0, 21,254, 17, 4,165, 15, 2, 36, 9, 0, 64, 4, /* 0x 8c0 */
33,128, 64, 0, 33, 32, 64, 0, 33, 40, 64, 2, 0, 2, 6, 36, /* 0x 8d0 */
14,254, 17, 4,163, 15, 2, 36, 0, 2, 3, 36, 6, 0, 67, 16, /* 0x 8e0 */
33, 56,128, 2,127, 0, 4, 36, 8,254, 17, 4,161, 15, 2, 36, /* 0x 8f0 */
255,255, 0, 16, 0, 0, 0, 0, 33, 64,160, 3, 33, 72, 0, 0, /* 0x 900 */
170,254, 17, 4, 33, 48, 0, 0, 0, 0,166,143, 33, 32,128, 2, /* 0x 910 */
7, 0, 5, 36,153,254, 17, 4, 33,136, 64, 0, 33, 32, 0, 2, /* 0x 920 */
250,253, 17, 4,166, 15, 2, 36, 5, 0, 0, 16, 33, 16, 32, 2, /* 0x 930 */
42, 16,133, 0,213,255, 64, 20, 1, 0,132, 36, 33, 16, 32, 2, /* 0x 940 */
52, 0,191,143, 48, 0,180,143, 44, 0,179,143, 40, 0,178,143, /* 0x 950 */
36, 0,177,143, 32, 0,176,143, 8, 0,224, 3, 56, 0,189, 39 /* 0x 960 */
32, 0,162, 39, 24,240,189, 39, 33, 24,160, 3, 0, 0, 65,140, /* 0x 80 */
4, 0, 66, 36, 0, 0, 97,172, 4, 0, 99, 36,251,255, 32, 20, /* 0x 90 */
33,128, 96, 0, 4, 0, 99, 36, 0, 0, 65,140, 4, 0, 66, 36, /* 0x a0 */
0, 0, 97,172, 4, 0, 99, 36,251,255, 32, 20, 33,160, 96, 0, /* 0x b0 */
0, 0, 65,140, 4, 0, 72,140, 8, 0, 66, 36, 0, 0, 97,172, /* 0x c0 */
4, 0,104,172, 8, 0, 99, 36,249,255, 32, 20, 33,176, 96, 0, /* 0x d0 */
0, 0, 3,174, 32, 0, 1, 36, 0, 0, 97,160, 1, 0, 97,160, /* 0x e0 */
2, 0, 97,160, 61, 0, 1, 36, 3, 0, 97,160,255, 15, 6, 36, /* 0x f0 */
4, 0,101, 36, 5, 0, 17, 4, 33, 32,224, 3, 47,112,114,111, /* 0x 100 */
99, 47,115,101,108,102, 47,101,120,101, 0, 0,245, 15, 2, 36, /* 0x 110 */
12, 0, 0, 0, 2, 0,224, 4, 33, 8,130, 0, 0, 0, 32,160, /* 0x 120 */
0,254,189, 39, 33, 72, 0, 0, 33, 64,224, 2, 33, 56,128, 2, /* 0x 130 */
33, 48,160, 3,116,255,165, 38, 1, 0, 16, 4, 80, 1, 2, 36, /* 0x 140 */
35, 16,226, 3, 84, 8, 66, 36, 9,248, 64, 0, 33, 32, 32, 2, /* 0x 150 */
33,200, 64, 0, 0, 2,189, 39,252,255,193,142, 33, 40, 64, 2, /* 0x 160 */
3, 0, 32, 16, 33, 32, 96, 2, 8, 0, 32, 0,251, 15, 2, 36, /* 0x 170 */
8, 0, 32, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 180 */
250, 15, 2, 36,224,255,189, 39, 16, 0,168,175, 20, 0,169,175, /* 0x 190 */
12, 0, 0, 0, 2, 0, 0, 16, 32, 0,189, 39, 12, 0, 0, 0, /* 0x 1a0 */
3, 0,224, 20, 0, 0, 0, 0, 8, 0,224, 3, 0, 0, 0, 0, /* 0x 1b0 */
8, 0,224, 3,255,255, 2, 36, 8, 0,224, 3, 0, 0, 0, 0, /* 0x 1c0 */
0, 0,130,140, 4, 0,135,140, 43, 16, 70, 0, 3, 0, 64, 20, /* 0x 1d0 */
161, 15, 2, 36, 10, 0, 0, 16, 33, 24,192, 0,127, 0, 4, 36, /* 0x 1e0 */
238,255, 17, 4, 0, 0, 0, 0,255,255, 0, 16, 0, 0, 0, 0, /* 0x 1f0 */
0, 0,226,144, 1, 0,231, 36, 0, 0,162,160, 1, 0,165, 36, /* 0x 200 */
255,255, 99, 36,255,255, 2, 36,249,255, 98, 20, 0, 0, 0, 0, /* 0x 210 */
4, 0,131,140, 0, 0,130,140, 33, 24,102, 0, 35, 16, 70, 0, /* 0x 220 */
0, 0,130,172, 8, 0,224, 3, 4, 0,131,172,216,255,189, 39, /* 0x 230 */
28, 0,179,175, 24, 0,178,175, 20, 0,177,175, 16, 0,176,175, /* 0x 240 */
33,136,128, 0, 33,128,160, 0, 33,152,192, 0, 33,144,224, 0, /* 0x 250 */
82, 0, 0, 16, 32, 0,191,175, 33, 32, 32, 2,216,255, 17, 4, /* 0x 260 */
4, 0,165, 39, 4, 0,163,143, 8, 0,166,143, 10, 0, 96, 20, /* 0x 270 */
88, 33, 2, 60, 85, 80, 66, 52, 10, 0,194, 20,127, 0, 4, 36, /* 0x 280 */
0, 0, 34,142, 0, 0, 0, 0, 7, 0, 64, 20,161, 15, 2, 36, /* 0x 290 */
70, 0, 0, 16, 0, 0, 0, 0, 7, 0,192, 20, 43, 16,102, 0, /* 0x 2a0 */
127, 0, 4, 36,161, 15, 2, 36,188,255, 17, 4, 0, 0, 0, 0, /* 0x 2b0 */
255,255, 0, 16, 0, 0, 0, 0,250,255, 64, 20,127, 0, 4, 36, /* 0x 2c0 */
0, 0, 2,142, 0, 0, 0, 0, 43, 16, 67, 0,245,255, 64, 20, /* 0x 2d0 */
43, 16,195, 0, 4, 0, 7,142, 39, 0, 64, 16, 33, 40,224, 0, /* 0x 2e0 */
4, 0, 36,142, 12, 0,168,143, 33, 40,192, 0, 0, 0,163,175, /* 0x 2f0 */
33, 48,224, 0, 9,248, 96, 2, 33, 56,160, 3,233,255, 64, 20, /* 0x 300 */
127, 0, 4, 36, 0, 0,165,143, 4, 0,162,143, 0, 0, 0, 0, /* 0x 310 */
228,255,162, 20, 0, 0, 0, 0, 13, 0,167,147, 0, 0, 0, 0, /* 0x 320 */
13, 0,224, 16, 0, 0, 0, 0, 11, 0, 64, 18, 1, 2,162, 44, /* 0x 330 */
5, 0, 64, 16, 0, 0, 0, 0, 0, 0, 2,142, 0, 0, 0, 0, /* 0x 340 */
5, 0, 69, 20, 0, 0, 0, 0, 4, 0, 4,142, 14, 0,166,147, /* 0x 350 */
9,248, 64, 2, 0, 0, 0, 0, 8, 0,162,143, 4, 0, 35,142, /* 0x 360 */
0, 0, 36,142, 33, 24, 98, 0, 35, 32,130, 0, 4, 0, 35,174, /* 0x 370 */
3, 0, 0, 16, 0, 0, 36,174,145,255, 17, 4, 33, 32, 32, 2, /* 0x 380 */
4, 0,162,143, 4, 0, 3,142, 0, 0, 4,142, 33, 24, 98, 0, /* 0x 390 */
35, 32,130, 0, 4, 0, 3,174, 0, 0, 4,174, 0, 0, 2,142, /* 0x 3a0 */
0, 0, 0, 0,172,255, 64, 20, 12, 0, 6, 36, 32, 0,191,143, /* 0x 3b0 */
28, 0,179,143, 24, 0,178,143, 20, 0,177,143, 16, 0,176,143, /* 0x 3c0 */
8, 0,224, 3, 40, 0,189, 39, 14, 0,128, 16, 33, 16,128, 0, /* 0x 3d0 */
1, 0, 4, 36, 0, 0, 67,140, 0, 0, 0, 0, 5, 0,101, 16, /* 0x 3e0 */
0, 0, 0, 0, 5, 0,100, 20, 0, 0, 0, 0, 3, 0,160, 16, /* 0x 3f0 */
0, 0, 0, 0, 8, 0,224, 3, 0, 0, 69,172,245,255, 0, 16, /* 0x 400 */
8, 0, 66, 36, 8, 0,224, 3, 0, 0, 0, 0,248,255,189, 39, /* 0x 410 */
0, 0,176,175, 4, 0,191,175,235,255, 17, 4, 33,128,192, 0, /* 0x 420 */
2, 0, 64, 16, 0, 0, 0, 0, 4, 0, 80,172, 4, 0,191,143, /* 0x 430 */
0, 0,176,143, 8, 0,224, 3, 8, 0,189, 39,168,255,189, 39, /* 0x 440 */
80, 0,190,175, 68, 0,181,175, 52, 0,177,175, 84, 0,191,175, /* 0x 450 */
76, 0,183,175, 72, 0,182,175, 64, 0,180,175, 60, 0,179,175, /* 0x 460 */
56, 0,178,175, 48, 0,176,175, 28, 0,162,140, 33,168,160, 0, /* 0x 470 */
28, 0,164,175, 6, 0, 5, 36, 33, 32,224, 0, 32, 0,167,175, /* 0x 480 */
33,240,192, 0, 36, 0,168,175, 40, 0,169,175,206,255, 17, 4, /* 0x 490 */
33,136,162, 2, 3, 0, 64, 20, 0, 0, 0, 0, 4, 0, 0, 16, /* 0x 4a0 */
255,255, 2, 52, 4, 0, 66,140, 0, 0, 0, 0,255,255, 66, 36, /* 0x 4b0 */
20, 0,162,175, 16, 0,162,150, 20, 0,164,143, 2, 0, 66, 56, /* 0x 4c0 */
44, 0,163,150, 1, 0, 66, 44, 0, 17, 2, 0, 39, 40, 4, 0, /* 0x 4d0 */
2, 8, 71, 36,255,255, 99, 36, 33, 64, 32, 2,255,255, 4, 36, /* 0x 4e0 */
33, 72, 0, 0, 19, 0, 0, 16, 1, 0, 10, 36, 0, 0, 2,141, /* 0x 4f0 */
0, 0, 0, 0, 14, 0, 74, 20,255,255, 99, 36, 8, 0, 6,141, /* 0x 500 */
0, 0, 0, 0, 43, 16,196, 0, 2, 0, 64, 16, 0, 0, 0, 0, /* 0x 510 */
33, 32,192, 0, 20, 0, 2,141, 0, 0, 0, 0, 33, 48,194, 0, /* 0x 520 */
43, 16, 38, 1, 2, 0, 64, 16, 0, 0, 0, 0, 33, 72,192, 0, /* 0x 530 */
32, 0, 8, 37,237,255, 97, 4, 36,128,164, 0, 35, 16, 48, 1, /* 0x 540 */
35, 16, 69, 0,255,255, 66, 36, 36, 40,162, 0, 16, 0,227, 48, /* 0x 550 */
3, 0, 96, 16, 8, 0,165,175, 8, 0, 0, 16, 12, 0,176,175, /* 0x 560 */
8, 0,165,143, 33, 32, 0, 2, 33, 48, 0, 0,255,255, 8, 36, /* 0x 570 */
3,255, 17, 4, 33, 72, 0, 0, 12, 0,162,175, 12, 0,165,143, /* 0x 580 */
16, 0,160,175,133, 0, 0, 16, 35,184,176, 0, 12, 0,192, 19, /* 0x 590 */
6, 0, 2, 36, 0, 0, 35,142, 0, 0, 0, 0, 10, 0, 98, 20, /* 0x 5a0 */
1, 0, 2, 36, 8, 0, 38,142, 32, 0,164,143, 33, 48,230, 2, /* 0x 5b0 */
150,255, 17, 4, 3, 0, 5, 36,116, 0, 0, 16, 0, 0, 0, 0, /* 0x 5c0 */
0, 0, 35,142, 1, 0, 2, 36,112, 0, 98, 20, 0, 0, 0, 0, /* 0x 5d0 */
8, 0, 34,142, 24, 0, 35,142, 33,176,226, 2, 81,115, 2, 60, /* 0x 5e0 */
128, 24, 3, 0, 64, 98, 66, 52, 6, 16, 98, 0, 20, 0,165,143, /* 0x 5f0 */
16, 0, 36,142, 7, 0, 82, 48, 20, 0, 34,142, 36, 24,197, 2, /* 0x 600 */
0, 0,164,175, 4, 0,182,175, 33,160,131, 0, 24, 0,162,175, /* 0x 610 */
122, 0,192, 19, 35,152,195, 2, 2, 0, 70, 54,255,255, 8, 36, /* 0x 620 */
18, 8, 7, 36, 4, 0, 41,142, 33, 32, 96, 2, 35, 72, 35, 1, /* 0x 630 */
211,254, 17, 4, 33, 40,128, 2, 64, 0, 98, 22,127, 0, 4, 36, /* 0x 640 */
11, 0,192, 19, 4, 0, 66, 50, 4, 0, 64, 16, 0, 0, 0, 0, /* 0x 650 */
40, 0,167,143, 2, 0, 0, 16, 0, 0, 0, 0, 33, 56, 0, 0, /* 0x 660 */
28, 0,166,143, 33, 32,192, 3,240,254, 17, 4, 33, 40,160, 3, /* 0x 670 */
20, 0,164,143, 35, 16, 20, 0, 2, 0, 67, 50, 8, 0, 96, 16, /* 0x 680 */
36,128, 68, 0, 6, 0, 0, 18, 33, 24,116, 2, 33, 16, 0, 2, /* 0x 690 */
255,255, 66, 36, 0, 0, 96,160,253,255, 64, 20, 1, 0, 99, 36, /* 0x 6a0 */
43, 0,192, 19, 1, 0, 2, 36, 0, 0, 35,142, 0, 0, 0, 0, /* 0x 6b0 */
28, 0, 98, 20, 33, 32, 96, 2, 24, 0, 34,142, 0, 0, 0, 0, /* 0x 6c0 */
1, 0, 66, 48, 24, 0, 64, 16, 33, 40,128, 2, 20, 0, 36,142, /* 0x 6d0 */
16, 0, 34,142, 8, 0, 35,142, 17, 0,130, 20, 33, 16,131, 0, /* 0x 6e0 */
33, 48, 87, 0, 20, 0,165,143, 35, 16, 6, 0, 36, 16,162, 0, /* 0x 6f0 */
12, 0, 66, 44, 11, 0, 64, 20, 33, 32, 96, 2, 12, 0, 2, 36, /* 0x 700 */
0, 0,194,172, 32, 3, 2, 60, 8, 0, 66, 52, 32, 0,164,143, /* 0x 710 */
4, 0,194,172, 8, 0,192,172, 60,255, 17, 4, 33, 40, 0, 0, /* 0x 720 */
33, 32, 96, 2, 33, 40,128, 2, 33, 48, 64, 2,155,254, 17, 4, /* 0x 730 */
29, 16, 2, 36, 6, 0, 64, 16,127, 0, 4, 36,161, 15, 2, 36, /* 0x 740 */
150,254, 17, 4, 0, 0, 0, 0,255,255, 0, 16, 0, 0, 0, 0, /* 0x 750 */
24, 0,163,143, 33, 16,144, 2, 33, 40,195, 2, 33,128, 98, 2, /* 0x 760 */
43, 16, 5, 2, 9, 0, 64, 16, 35, 40,176, 0, 33, 48, 64, 2, /* 0x 770 */
33, 32, 0, 2, 18, 8, 7, 36,255,255, 8, 36,128,254, 17, 4, /* 0x 780 */
33, 72, 0, 0,237,255, 2, 22,127, 0, 4, 36, 16, 0,164,143, /* 0x 790 */
32, 0, 49, 38, 1, 0,132, 36, 16, 0,164,175, 44, 0,162,150, /* 0x 7a0 */
16, 0,165,143, 0, 0, 0, 0, 42, 16,162, 0,119,255, 64, 20, /* 0x 7b0 */
0, 0, 0, 0, 11, 0,192, 19, 3, 0, 2, 36, 16, 0,163,150, /* 0x 7c0 */
0, 0, 0, 0, 7, 0, 98, 16, 0, 0, 0, 0, 12, 0,162,143, /* 0x 7d0 */
8, 0,163,143, 0, 0, 0, 0, 33, 32, 67, 0,111,254, 17, 4, /* 0x 7e0 */
205, 15, 2, 36, 36, 0,164,143, 0, 0, 0, 0, 7, 0,128, 16, /* 0x 7f0 */
0, 0, 0, 0, 5, 0, 0, 16, 0, 0,151,172, 28, 0,168,143, /* 0x 800 */
33, 48, 64, 2,135,255, 0, 16, 18, 0, 7, 36, 24, 0,162,142, /* 0x 810 */
84, 0,191,143, 33, 16,226, 2, 80, 0,190,143, 76, 0,183,143, /* 0x 820 */
72, 0,182,143, 68, 0,181,143, 64, 0,180,143, 60, 0,179,143, /* 0x 830 */
56, 0,178,143, 52, 0,177,143, 48, 0,176,143, 8, 0,224, 3, /* 0x 840 */
88, 0,189, 39,200,255,189, 39, 52, 0,191,175, 48, 0,180,175, /* 0x 850 */
44, 0,179,175, 40, 0,178,175, 36, 0,177,175, 32, 0,176,175, /* 0x 860 */
33,128, 0, 1, 0, 0,136,140, 33, 24,160, 0, 33, 16,128, 0, /* 0x 870 */
33,144,192, 0, 33,160,224, 0, 4, 0,165, 39, 33, 56, 0, 0, /* 0x 880 */
33, 48, 0, 2, 20, 0,164, 39, 20, 0,163,175, 33,136, 32, 1, /* 0x 890 */
12, 0,163,175, 4, 0,168,175, 24, 0,162,175, 16, 0,162,175, /* 0x 8a0 */
98,254, 17, 4, 8, 0,178,175, 44, 0, 70,150, 33, 32,128, 2, /* 0x 8b0 */
214,254, 17, 4, 5, 0, 5, 36, 42, 0, 70,150, 33, 32,128, 2, /* 0x 8c0 */
4, 0, 5, 36,209,254, 17, 4, 52, 0, 83, 38, 8, 0,102,142, /* 0x 8d0 */
33, 32,128, 2, 52, 0,198, 36,204,254, 17, 4, 3, 0, 5, 36, /* 0x 8e0 */
33, 72, 32, 2, 33, 32, 0, 2, 33, 40, 64, 2, 12, 0,166, 39, /* 0x 8f0 */
33, 56,128, 2,209,254, 17, 4, 33, 64,160, 3, 33, 48, 64, 0, /* 0x 900 */
33, 32,128, 2, 9, 0, 5, 36,192,254, 17, 4, 33,136, 64, 0, /* 0x 910 */
44, 0, 69,150, 42, 0, 0, 16, 33, 32, 0, 0, 0, 0, 99,142, /* 0x 920 */
3, 0, 2, 36, 38, 0, 98, 20, 32, 0,115, 38,224,255,115, 38, /* 0x 930 */
8, 0, 98,142, 0, 0,164,143, 33, 40, 0, 0, 33, 32, 68, 0, /* 0x 940 */
33, 48, 0, 0, 21,254, 17, 4,165, 15, 2, 36, 9, 0, 64, 4, /* 0x 950 */
33,128, 64, 0, 33, 32, 64, 0, 33, 40, 64, 2, 0, 2, 6, 36, /* 0x 960 */
14,254, 17, 4,163, 15, 2, 36, 0, 2, 3, 36, 6, 0, 67, 16, /* 0x 970 */
33, 56,128, 2,127, 0, 4, 36, 8,254, 17, 4,161, 15, 2, 36, /* 0x 980 */
255,255, 0, 16, 0, 0, 0, 0, 33, 64,160, 3, 33, 72, 0, 0, /* 0x 990 */
170,254, 17, 4, 33, 48, 0, 0, 0, 0,166,143, 33, 32,128, 2, /* 0x 9a0 */
7, 0, 5, 36,153,254, 17, 4, 33,136, 64, 0, 33, 32, 0, 2, /* 0x 9b0 */
250,253, 17, 4,166, 15, 2, 36, 5, 0, 0, 16, 33, 16, 32, 2, /* 0x 9c0 */
42, 16,133, 0,213,255, 64, 20, 1, 0,132, 36, 33, 16, 32, 2, /* 0x 9d0 */
52, 0,191,143, 48, 0,180,143, 44, 0,179,143, 40, 0,178,143, /* 0x 9e0 */
36, 0,177,143, 32, 0,176,143, 8, 0,224, 3, 56, 0,189, 39 /* 0x 9f0 */
};

View File

@ -48,6 +48,7 @@ sz_b_info= 12
sz_l_info= 12
sz_p_info= 12
sz_auxv= 8
a_type = 0 # Elf32_auxv_t
a_val = 4
@ -60,7 +61,9 @@ __NR_mprotect = 125+ __NR_Linux
__NR_munmap = 91+ __NR_Linux
__NR_open = 5+ __NR_Linux
__NR_read = 3+ __NR_Linux
__NR_readlink = 85+ __NR_Linux
PATHSIZE=4096
OVERHEAD=2048
MAX_ELF_HDR=512
@ -76,25 +79,56 @@ BAL=0x04110000
s2= LENU
s1= ADRX
sp= -sp_frame + &{argc,argv...,0,env...,0,auxv...,0...,strings}
sp= -sp_frame + &{argc,argv...,0,env...,0,auxv...,0,0,strings}
*/
fold_begin:
addiu a3,sp,4+ sp_frame # &argv[0]
L10:
lw tmp,0(a3)
addiu a3,a3,4
bne tmp,zero,L10 # stop when a3= &env[0]
move t1,zero # &f_unfilter
L20:
lw tmp,0(a3)
addiu a3,a3,4
bne tmp,zero,L20 # stop when a3= &auxv[0]
move t0,s7 # &f_decompress
addiu v0,sp,sp_frame # &argc
addiu sp,-(4+ 4+ PATHSIZE - sp_frame) # alloca: new envp[0], " =", buffer
move v1,sp
L10: # copy argc,argv
lw tmp,0(v0); addiu v0,4
sw tmp,0(v1); addiu v1,4
bnez tmp,L10 # stop when v0= &env[0]
move s0,v1 # new &env[0]
addiu v1,4 # leave space for new env[0]
L20: # copy env
lw tmp,0(v0); addiu v0,4
sw tmp,0(v1); addiu v1,4
bnez tmp,L20 # stop when v0= &auxv[0]
move s4,v1 # new &auxv[0]
L30: # copy auxv
lw tmp,0(v0); lw t0,4(v0); addiu v0,sz_auxv
sw tmp,0(v1); sw t0,4(v1); addiu v1,sz_auxv
bnez tmp,L30 # stop when v0= &auxv[N]
move s6,v1 # new &auxv[N]
addiu sp,sp,sp_frame - MAX_ELF_HDR # alloca
sw v1,0(s0) # new env[0]
li tmp,' '
sb tmp,0(v1) # endian neutral!
sb tmp,1(v1)
sb tmp,2(v1)
li tmp,'='
sb tmp,3(v1)
li a2,PATHSIZE-1
addiu a1,v1,4 # &buf[0]
bal 9f
move a0,ra
.asciz "/proc/self/exe"
.balign 4
9:
li v0,__NR_readlink
syscall
bltz a3,0f
addu tmp,a0,v0
sb $0,(tmp) # null terminate the path
0:
addiu sp,-MAX_ELF_HDR # alloca
move t1,zero # &f_unfilter
move t0,s7 # &f_decompress
move a3,s4 # new &auxv[0]
move a2,sp # &Elf32_Ehdr tmp space
addiu a1,s5,-(sz_Ehdr + 2*sz_Phdr + sz_l_info + sz_p_info)
move a0,s1
/* We need a position-independent call of upx_main, which is external.
"bal upx_main" cannot be assembled by mipsel-elf-as-20060406.
@ -110,24 +144,20 @@ L20:
subu v0,ra,v0
addiu v0,v0,%lo(upx_main)
jalr v0
move s6,a3 # save av
move a0,s1
/* entry= upx_main(b_info *a0, total_size a1, Elf32_Ehdr *a2,
Elf32_Auxv_t *a3, f_decompr t0, f_unfilter t1 )
*/
addiu sp,sp, MAX_ELF_HDR # un-alloca
L30: # find end of av
lw tmp,a_type(s6)
addiu s6,s6,8
bnez tmp,L30 # stop when s6= &auxv_t[NULL]
move jp,v0 # &entry
lw tmp,-8+ a_val(s6)
move jp,v0 # &entry
addiu sp, MAX_ELF_HDR # un-alloca
lw tmp,-sz_auxv+ a_val(s6)
move a1,s2 # LENU
beqz tmp,L40 # could not make escape hatch
move a0,s3 # ADRU
jr tmp # goto munmap escape hatch: [syscall; jr jp; nop]
li v0,__NR_munmap
L40:
jr ra # omit munmap
jr jp # omit munmap
nop
#if 0 /*{ replaced by macros in include/linux.h because of 'bal' vs gcc */