mirror of
https://github.com/upx/upx.git
synced 2025-02-17 06:38:06 +00:00
arm/pe: thumb mode dll support added
committer: ml1050 <ml1050> 1144312217 +0000
This commit is contained in:
parent
4fd9c5772a
commit
553c2f886a
3
NEWS
3
NEWS
@ -7,6 +7,9 @@ User visible changes for UPX
|
||||
Changes in 1.95 beta (XX XXX 2006):
|
||||
* UNSTABLE BETA VERSION - DO NOT USE EXCEPT FOR TESTING
|
||||
* win32/pe: really worked around R6002 runtime errors
|
||||
* arm/pe: dll support
|
||||
* arm/pe: thumb mode stub support
|
||||
* arm/pe: unpacking support
|
||||
|
||||
Changes in 1.94 beta (11 Mar 2006):
|
||||
* new format: added support for arm/pe (ARM executables running on WinCE)
|
||||
|
@ -1543,7 +1543,7 @@ bool PackArmPe::canPack()
|
||||
{
|
||||
if (!readFileHeader() || (ih.cpu != 0x1c0 && ih.cpu != 0x1c2))
|
||||
return false;
|
||||
use_thumb_stub |= ih.cpu == 0x1c2;
|
||||
use_thumb_stub |= ih.cpu == 0x1c2 || (ih.entry & 1) == 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -1553,19 +1553,14 @@ int PackArmPe::buildLoader(const Filter *ft)
|
||||
UNUSED(ft);
|
||||
// prepare loader
|
||||
initLoader(nrv_loader, sizeof(nrv_loader), -1, 2);
|
||||
if (use_thumb_stub)
|
||||
{
|
||||
if (ph.method == M_NRV2E_8)
|
||||
addLoader("ARMWPE2E", NULL);
|
||||
else if (ph.method == M_NRV2B_8)
|
||||
addLoader("ARMWPE2B", NULL);
|
||||
}
|
||||
else if (!isdll)
|
||||
addLoader("ARMWPE2EV4", NULL); // FIXME this when we have v4 mode nrv2b
|
||||
else
|
||||
addLoader("ARMWPE2EV4DLL", NULL);
|
||||
|
||||
addLoader("IDENTSTR,UPX1HEAD", NULL);
|
||||
char stubname[20];
|
||||
strcpy(stubname, "ARMPE");
|
||||
strcat(stubname, use_thumb_stub ? "T" : "A");
|
||||
strcat(stubname, isdll ? "D" : "X");
|
||||
strcat(stubname, ph.method == M_NRV2E_8 ? "E" : "B");
|
||||
|
||||
addLoader(stubname, "IDENTSTR,UPX1HEAD", NULL);
|
||||
return getLoaderSize();
|
||||
}
|
||||
|
||||
@ -1915,6 +1910,7 @@ void PackArmPe::pack(OutputFile *fo)
|
||||
|
||||
ic = ncsection;
|
||||
|
||||
// wince wants relocation data at the beginning of a section
|
||||
processRelocs(&rel);
|
||||
ODADDR(PEDIR_RELOC) = soxrelocs ? ic : 0;
|
||||
ODSIZE(PEDIR_RELOC) = soxrelocs;
|
||||
|
@ -558,27 +558,35 @@ upxd: l_lx_sep.o l_lx_sep86.asm
|
||||
l_armpe.h: l_armpe.asx l_armpe_s.S l_armpe_c.c arm_nrv2e_d8.S arm_nrv2b_d8.S armv4_n2e_d8.S $(MAKEFILE_LIST)
|
||||
$(GCC_ARM_T) -c l_armpe_s.S arm_nrv2e_d8.S arm_nrv2b_d8.S
|
||||
$(GCC_ARM_T) -Os -c l_armpe_c.c -DUCL_DECOMPRESS=thumb_nrv2e_d8
|
||||
$(LD_ARM) -o l_armpe2e.out l_armpe_s.o l_armpe_c.o arm_nrv2e_d8.o
|
||||
$(OBJCOPY_ARM) --only-section .text -O binary l_armpe2e.out l_armpe2e.bin
|
||||
$(BIN2H_WINCE) <l_armpe2e.bin >l_armpe2e.ah
|
||||
$(LD_ARM) -o l_armpe_txe.out l_armpe_s.o l_armpe_c.o arm_nrv2e_d8.o
|
||||
$(OBJCOPY_ARM) --only-section .text -O binary l_armpe_txe.out l_armpe_txe.bin
|
||||
$(BIN2H_WINCE) <l_armpe_txe.bin >l_armpe_txe.ah
|
||||
$(GCC_ARM_T) -Os -c l_armpe_c.c -DUCL_DECOMPRESS=go_thumb_n2b
|
||||
$(LD_ARM) -o l_armpe2b.out l_armpe_s.o l_armpe_c.o arm_nrv2b_d8.o
|
||||
$(OBJCOPY_ARM) --only-section .text -O binary l_armpe2b.out l_armpe2b.bin
|
||||
$(BIN2H_WINCE) <l_armpe2b.bin >l_armpe2b.ah
|
||||
$(GCC_ARM) -Os -S l_armpe_c.c -DUCL_DECOMPRESS=ucl_nrv2e_decompress_8
|
||||
$(LD_ARM) -o l_armpe_txb.out l_armpe_s.o l_armpe_c.o arm_nrv2b_d8.o
|
||||
$(OBJCOPY_ARM) --only-section .text -O binary l_armpe_txb.out l_armpe_txb.bin
|
||||
$(BIN2H_WINCE) <l_armpe_txb.bin >l_armpe_txb.ah
|
||||
$(GCC_ARM_T) -DSTUB_FOR_DLL -c l_armpe_s.S
|
||||
$(GCC_ARM_T) -DSTUB_FOR_DLL -Os -c l_armpe_c.c -DUCL_DECOMPRESS=thumb_nrv2e_d8
|
||||
$(LD_ARM) -o l_armpe_tde.out l_armpe_s.o l_armpe_c.o arm_nrv2e_d8.o
|
||||
$(OBJCOPY_ARM) --only-section .text -O binary l_armpe_tde.out l_armpe_tde.bin
|
||||
$(BIN2H_WINCE) <l_armpe_tde.bin >l_armpe_tde.ah
|
||||
$(GCC_ARM_T) -DSTUB_FOR_DLL -Os -c l_armpe_c.c -DUCL_DECOMPRESS=go_thumb_n2b
|
||||
$(LD_ARM) -o l_armpe_tdb.out l_armpe_s.o l_armpe_c.o arm_nrv2b_d8.o
|
||||
$(OBJCOPY_ARM) --only-section .text -O binary l_armpe_tdb.out l_armpe_tdb.bin
|
||||
$(BIN2H_WINCE) <l_armpe_tdb.bin >l_armpe_tdb.ah
|
||||
$(GCC_ARM) -Os -c l_armpe_c.c -DUCL_DECOMPRESS=ucl_nrv2e_decompress_8
|
||||
$(GCC_ARM) -c armv4_n2e_d8.S l_armpe_s.S
|
||||
$(LD_ARM) -o l_armpe2e_v4.out l_armpe_s.o armv4_n2e_d8.o
|
||||
$(OBJCOPY_ARM) --only-section .text -O binary l_armpe2e_v4.out l_armpe2e_v4.bin
|
||||
$(BIN2H_WINCE) <l_armpe2e_v4.bin >l_armpe2e_v4.ah
|
||||
$(GCC_ARM) -DSTUB_FOR_DLL -Os -S l_armpe_c.c -DUCL_DECOMPRESS=ucl_nrv2e_decompress_8
|
||||
$(GCC_ARM) -DSTUB_FOR_DLL -c armv4_n2e_d8.S l_armpe_s.S
|
||||
$(LD_ARM) -o l_armpe2e_v4dll.out l_armpe_s.o armv4_n2e_d8.o
|
||||
$(OBJCOPY_ARM) --only-section .text -O binary l_armpe2e_v4dll.out l_armpe2e_v4dll.bin
|
||||
$(BIN2H_WINCE) <l_armpe2e_v4dll.bin >l_armpe2e_v4dll.ah
|
||||
$(LD_ARM) -o l_armpe_axe.out l_armpe_s.o l_armpe_c.o armv4_n2e_d8.o
|
||||
$(OBJCOPY_ARM) --only-section .text -O binary l_armpe_axe.out l_armpe_axe.bin
|
||||
$(BIN2H_WINCE) <l_armpe_axe.bin >l_armpe_axe.ah
|
||||
$(GCC_ARM) -DSTUB_FOR_DLL -Os -c l_armpe_c.c -DUCL_DECOMPRESS=ucl_nrv2e_decompress_8
|
||||
$(GCC_ARM) -DSTUB_FOR_DLL -c l_armpe_s.S
|
||||
$(LD_ARM) -o l_armpe_ade.out l_armpe_s.o l_armpe_c.o armv4_n2e_d8.o
|
||||
$(OBJCOPY_ARM) --only-section .text -O binary l_armpe_ade.out l_armpe_ade.bin
|
||||
$(BIN2H_WINCE) <l_armpe_ade.bin >l_armpe_ade.ah
|
||||
$(NASM) -f bin -o $T.bin $<
|
||||
$(BIN2H) $T.bin nrv_loader $@
|
||||
|
||||
|
||||
# /***********************************************************************
|
||||
# // dependencies
|
||||
# ************************************************************************/
|
||||
|
@ -39,19 +39,22 @@
|
||||
; ============= ENTRY POINT
|
||||
; =============
|
||||
|
||||
; __ARMWPE2E__
|
||||
start:
|
||||
%include "l_armpe2e.ah"
|
||||
; __ARMWPE2EV4__
|
||||
%include "l_armpe2e_v4.ah"
|
||||
; __ARMWPE2EV4DLL__
|
||||
%include "l_armpe2e_v4dll.ah"
|
||||
; __ARMWPE2B__
|
||||
%include "l_armpe2b.ah"
|
||||
; __ARMWPEHE__
|
||||
; __ARMPEAXE__
|
||||
%include "l_armpe_axe.ah"
|
||||
; __ARMPEADE__
|
||||
%include "l_armpe_ade.ah"
|
||||
; __ARMPETXE__
|
||||
%include "l_armpe_txe.ah"
|
||||
; __ARMPETDE__
|
||||
%include "l_armpe_tde.ah"
|
||||
; __ARMPETXB__
|
||||
%include "l_armpe_txb.ah"
|
||||
; __ARMPETDB__
|
||||
%include "l_armpe_tdb.ah"
|
||||
; __ARMPEHEAD__
|
||||
%include "header.ash"
|
||||
eof:
|
||||
; __ARMWPE99__
|
||||
; __ARMPEEOF__
|
||||
section .data
|
||||
dd -1
|
||||
dw eof
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* l_armpe.h -- created from l_armpe.bin, 2472 (0x9a8) bytes
|
||||
/* l_armpe.h -- created from l_armpe.bin, 3592 (0xe08) bytes
|
||||
|
||||
This file is part of the UPX executable compressor.
|
||||
|
||||
@ -27,164 +27,234 @@
|
||||
*/
|
||||
|
||||
|
||||
#define NRV_LOADER_SIZE 2472
|
||||
#define NRV_LOADER_ADLER32 0xf7af0ea2
|
||||
#define NRV_LOADER_CRC32 0x70a87499
|
||||
#define NRV_LOADER_SIZE 3592
|
||||
#define NRV_LOADER_ADLER32 0x7cf0b17d
|
||||
#define NRV_LOADER_CRC32 0x03faeff7
|
||||
|
||||
unsigned char nrv_loader[2472] = {
|
||||
15, 64, 45,233, 72, 0,143,226, 14, 0,144,232, 2, 16,129,224, /* 0x 0 */
|
||||
0, 32,147,229, 1, 58,131,226, 1, 0, 83,225,251,255,255,154, /* 0x 10 */
|
||||
4,224,143,226, 23,192,143,226, 28,255, 47,225, 15, 64,189,232, /* 0x 20 */
|
||||
60,192,159,229, 28,255, 47,225, 12, 75, 27,104, 24, 71, 12, 75, /* 0x 30 */
|
||||
251,231, 27,224, 3, 33, 67, 92, 18, 2,210, 24, 1, 57,250,213, /* 0x 40 */
|
||||
16, 28,112, 71, 83, 82, 67, 48, 83, 82, 67, 76, 68, 83, 84, 48, /* 0x 50 */
|
||||
68, 83, 84, 76, 66, 73, 77, 80, 79, 78, 65, 77, 71, 69, 84, 80, /* 0x 60 */
|
||||
76, 79, 65, 68, 69, 78, 84, 82, 66, 82, 69, 76,240,181,163,176, /* 0x 70 */
|
||||
0, 34, 2,146,130,104, 1,146, 66,105, 3, 28, 4,105, 0,146, /* 0x 80 */
|
||||
89,104, 0,104, 1,154, 2,171, 0,240, 76,248, 37, 28, 40, 28, /* 0x 90 */
|
||||
255,247,208,255, 4, 30, 61,208, 0,155, 40, 29,228, 24,255,247, /* 0x a0 */
|
||||
201,255, 1,154,134, 24, 3,168, 2, 28, 35,120, 27, 6, 0, 43, /* 0x b0 */
|
||||
4,208, 27, 14, 19,128, 1, 52, 2, 50,246,231, 0, 35, 19,128, /* 0x c0 */
|
||||
255,247,181,255, 8, 53, 7, 28, 43,120, 27, 6, 0, 43, 31,208, /* 0x d0 */
|
||||
27, 14, 1, 53, 1, 43, 2,208,255, 43, 13,208,244,231, 56, 28, /* 0x e0 */
|
||||
41, 28,255,247,161,255, 52, 28, 32, 96, 4, 54, 43,120, 27, 6, /* 0x f0 */
|
||||
1, 53, 0, 43,250,209,231,231,105,120, 43,120, 9, 2, 56, 28, /* 0x 100 */
|
||||
89, 24,255,247,145,255, 52, 28, 2, 53, 4, 54, 32, 96,219,231, /* 0x 110 */
|
||||
1, 53,188,231, 35,176,240,188, 1,188, 0, 71, 1,192,143,226, /* 0x 120 */
|
||||
28,255, 47,225,252,181, 15, 24, 1, 36,101, 66,228, 7, 5, 38, /* 0x 130 */
|
||||
54, 2, 15,224, 24,188,192, 27,210, 26, 34, 96,240,188, 2,188, /* 0x 140 */
|
||||
8, 71, 4,120,100, 65, 1, 48, 36, 6,247, 70, 3,120, 1, 48, /* 0x 150 */
|
||||
19,112, 1, 50, 36, 25,254, 70,243,208,247,210, 1, 33, 4,224, /* 0x 160 */
|
||||
1, 57, 36, 25,254, 70,236,208, 73, 65, 36, 25,254, 70,232,208, /* 0x 170 */
|
||||
73, 65, 36, 25,254, 70,228,208,242,211,203, 30, 0, 33, 8,211, /* 0x 180 */
|
||||
27, 2, 5,120, 1, 48, 29, 67,237, 67,211,208,109, 16, 19,210, /* 0x 190 */
|
||||
3,224, 36, 25,254, 70,212,208, 14,210, 1, 33, 36, 25,254, 70, /* 0x 1a0 */
|
||||
207,208, 9,210, 36, 25,254, 70,203,208, 73, 65, 36, 25,254, 70, /* 0x 1b0 */
|
||||
199,208,247,211, 4, 49, 4,224, 36, 25,254, 70,193,208, 73, 65, /* 0x 1c0 */
|
||||
2, 49,238, 66, 0,210, 1, 49, 19,120, 83, 93, 19,112, 1, 50, /* 0x 1d0 */
|
||||
1, 57,250,209,190,231, 0, 0, 15, 64, 45,233, 52, 0,143,226, /* 0x 1e0 */
|
||||
22, 0, 0,235, 15, 64,189,232, 72,240,159,229, 64, 48,159,229, /* 0x 1f0 */
|
||||
0,240,147,229, 52, 48,159,229, 0,240,147,229, 3, 32,160,227, /* 0x 200 */
|
||||
2, 48,208,231, 1, 32, 82,226, 1, 20,131,224,251,255,255, 90, /* 0x 210 */
|
||||
1, 0,160,225, 14,240,160,225, 83, 82, 67, 48, 83, 82, 67, 76, /* 0x 220 */
|
||||
68, 83, 84, 48, 68, 83, 84, 76, 66, 73, 77, 80, 79, 78, 65, 77, /* 0x 230 */
|
||||
71, 69, 84, 80, 76, 79, 65, 68, 69, 78, 84, 82, 66, 82, 69, 76, /* 0x 240 */
|
||||
240, 65, 45,233, 0,224,160,227, 8,112,144,229,132,208, 77,226, /* 0x 250 */
|
||||
0,192,160,225, 3, 0,144,232, 0,224,141,229, 7, 32,160,225, /* 0x 260 */
|
||||
13, 48,160,225, 16, 64,140,226, 16, 1,148,232, 52, 0, 0,235, /* 0x 270 */
|
||||
4, 0,160,225,224,255,255,235, 0, 80, 80,226, 46, 0, 0, 10, /* 0x 280 */
|
||||
4, 0,132,226,220,255,255,235, 8, 80,133,224, 0, 48,213,229, /* 0x 290 */
|
||||
4, 16,141,226, 0, 0, 83,227, 7, 96,128,224, 1, 32,160,225, /* 0x 2a0 */
|
||||
3, 0, 0, 10,178, 48,194,224, 1, 48,245,229, 0, 0, 83,227, /* 0x 2b0 */
|
||||
250,255,255,234, 0, 48,160,227,176, 48,194,225, 1, 0,160,225, /* 0x 2c0 */
|
||||
201,255,255,235, 8, 48,244,229, 0, 80,160,225, 0, 0, 83,227, /* 0x 2d0 */
|
||||
23, 0, 0, 10,255, 48, 3,226, 1, 0, 83,227, 1, 64,132,226, /* 0x 2e0 */
|
||||
2, 0, 0, 10,255, 0, 83,227, 8, 0, 0, 10, 14, 0, 0,234, /* 0x 2f0 */
|
||||
5, 0,160,225, 4, 16,160,225,189,255,255,235, 4, 0,134,228, /* 0x 300 */
|
||||
1, 48,212,228, 0, 0, 83,227,252,255,255, 26, 6, 0, 0,234, /* 0x 310 */
|
||||
0, 48,212,229, 1, 16,212,229, 5, 0,160,225, 1, 20,131,224, /* 0x 320 */
|
||||
179,255,255,235, 2, 64,132,226, 4, 0,134,228, 0, 48,212,229, /* 0x 330 */
|
||||
229,255,255,234, 1, 64,132,226,204,255,255,234,132,208,141,226, /* 0x 340 */
|
||||
240,129,189,232,252, 64, 45,233, 0,112,129,224, 0, 80,224,227, /* 0x 350 */
|
||||
2, 65,160,227, 10, 0, 0,234, 24, 0,189,232, 7, 0, 64,224, /* 0x 360 */
|
||||
3, 32, 66,224, 0, 32,132,229,240,128,189,232, 1, 64,208,228, /* 0x 370 */
|
||||
4, 64,164,224, 4, 76,176,225, 14,240,160,225, 1, 48,208,228, /* 0x 380 */
|
||||
1, 48,194,228, 4, 64,148,224,247,255,255, 11,250,255,255, 42, /* 0x 390 */
|
||||
1, 16,160,227, 3, 0, 0,234, 1, 16, 65,226, 4, 64,148,224, /* 0x 3a0 */
|
||||
241,255,255, 11, 1, 16,161,224, 4, 64,148,224,238,255,255, 11, /* 0x 3b0 */
|
||||
1, 16,161,224, 4, 64,148,224,235,255,255, 11,245,255,255, 58, /* 0x 3c0 */
|
||||
3, 48, 81,226, 0, 16,160,227, 6, 0, 0, 58, 1, 80,208,228, /* 0x 3d0 */
|
||||
3, 84,133,225, 5, 80,240,225,222,255,255, 10,197, 80,176,225, /* 0x 3e0 */
|
||||
15, 0, 0, 42, 2, 0, 0,234, 4, 64,148,224,222,255,255, 11, /* 0x 3f0 */
|
||||
11, 0, 0, 42, 1, 16,160,227, 4, 64,148,224,218,255,255, 11, /* 0x 400 */
|
||||
7, 0, 0, 42, 4, 64,148,224,215,255,255, 11, 1, 16,161,224, /* 0x 410 */
|
||||
4, 64,148,224,212,255,255, 11,249,255,255, 58, 4, 16,129,226, /* 0x 420 */
|
||||
3, 0, 0,234, 4, 64,148,224,207,255,255, 11, 1, 16,161,224, /* 0x 430 */
|
||||
2, 16,129,226, 5, 12,117,227, 0, 0, 0, 42, 1, 16,129,226, /* 0x 440 */
|
||||
0, 48,210,229, 5, 48,210,231, 1, 48,194,228, 1, 16, 81,226, /* 0x 450 */
|
||||
251,255,255, 26,202,255,255,234, 1, 0, 81,227, 3, 0, 0, 26, /* 0x 460 */
|
||||
15, 64, 45,233,148, 0,143,226, 46, 0, 0,235, 15, 64,189,232, /* 0x 470 */
|
||||
168,240,159,229,160, 48,159,229, 0,240,147,229,148, 48,159,229, /* 0x 480 */
|
||||
0,240,147,229, 3, 32,160,227, 2, 48,208,231, 1, 32, 82,226, /* 0x 490 */
|
||||
1, 20,131,224,251,255,255, 90, 1, 0,160,225, 14,240,160,225, /* 0x 4a0 */
|
||||
124, 0,159,229, 92, 32,159,229, 4, 16, 66,226, 1, 48,208,228, /* 0x 4b0 */
|
||||
0, 0, 83,227,248,255,255, 10,240, 0, 83,227,240,192,195, 35, /* 0x 4c0 */
|
||||
1, 48,208, 37, 12,196,131, 32, 2, 48,208, 36, 12, 52,131, 32, /* 0x 4d0 */
|
||||
3, 16,129,224, 0, 48,209,229, 12,196,131,224, 1, 48,209,229, /* 0x 4e0 */
|
||||
12,196,131,224, 2, 48,209,229, 12,196,131,224, 3, 48,209,229, /* 0x 4f0 */
|
||||
12,196,131,224, 2,192,140,224, 0,192,129,229,234,255,255,234, /* 0x 500 */
|
||||
83, 82, 67, 48, 83, 82, 67, 76, 68, 83, 84, 48, 68, 83, 84, 76, /* 0x 510 */
|
||||
66, 73, 77, 80, 79, 78, 65, 77, 71, 69, 84, 80, 76, 79, 65, 68, /* 0x 520 */
|
||||
69, 78, 84, 82, 66, 82, 69, 76,240, 65, 45,233, 0,224,160,227, /* 0x 530 */
|
||||
8,112,144,229,132,208, 77,226, 0,192,160,225, 3, 0,144,232, /* 0x 540 */
|
||||
0,224,141,229, 7, 32,160,225, 13, 48,160,225, 16, 64,140,226, /* 0x 550 */
|
||||
16, 1,148,232, 53, 0, 0,235, 4, 0,160,225,200,255,255,235, /* 0x 560 */
|
||||
0, 80, 80,226, 46, 0, 0, 10, 4, 0,132,226,196,255,255,235, /* 0x 570 */
|
||||
8, 80,133,224, 0, 48,213,229, 4, 16,141,226, 0, 0, 83,227, /* 0x 580 */
|
||||
7, 96,128,224, 1, 32,160,225, 3, 0, 0, 10,178, 48,194,224, /* 0x 590 */
|
||||
1, 48,245,229, 0, 0, 83,227,250,255,255,234, 0, 48,160,227, /* 0x 5a0 */
|
||||
176, 48,194,225, 1, 0,160,225,177,255,255,235, 8, 48,244,229, /* 0x 5b0 */
|
||||
0, 80,160,225, 0, 0, 83,227, 23, 0, 0, 10,255, 48, 3,226, /* 0x 5c0 */
|
||||
1, 0, 83,227, 1, 64,132,226, 2, 0, 0, 10,255, 0, 83,227, /* 0x 5d0 */
|
||||
8, 0, 0, 10, 14, 0, 0,234, 5, 0,160,225, 4, 16,160,225, /* 0x 5e0 */
|
||||
165,255,255,235, 4, 0,134,228, 1, 48,212,228, 0, 0, 83,227, /* 0x 5f0 */
|
||||
252,255,255, 26, 6, 0, 0,234, 0, 48,212,229, 1, 16,212,229, /* 0x 600 */
|
||||
5, 0,160,225, 1, 20,131,224,155,255,255,235, 2, 64,132,226, /* 0x 610 */
|
||||
4, 0,134,228, 0, 48,212,229,229,255,255,234, 1, 64,132,226, /* 0x 620 */
|
||||
204,255,255,234,157,255,255,235,132,208,141,226,240,129,189,232, /* 0x 630 */
|
||||
252, 64, 45,233, 0,112,129,224, 0, 80,224,227, 2, 65,160,227, /* 0x 640 */
|
||||
10, 0, 0,234, 24, 0,189,232, 7, 0, 64,224, 3, 32, 66,224, /* 0x 650 */
|
||||
0, 32,132,229,240,128,189,232, 1, 64,208,228, 4, 64,164,224, /* 0x 660 */
|
||||
4, 76,176,225, 14,240,160,225, 1, 48,208,228, 1, 48,194,228, /* 0x 670 */
|
||||
4, 64,148,224,247,255,255, 11,250,255,255, 42, 1, 16,160,227, /* 0x 680 */
|
||||
3, 0, 0,234, 1, 16, 65,226, 4, 64,148,224,241,255,255, 11, /* 0x 690 */
|
||||
1, 16,161,224, 4, 64,148,224,238,255,255, 11, 1, 16,161,224, /* 0x 6a0 */
|
||||
4, 64,148,224,235,255,255, 11,245,255,255, 58, 3, 48, 81,226, /* 0x 6b0 */
|
||||
0, 16,160,227, 6, 0, 0, 58, 1, 80,208,228, 3, 84,133,225, /* 0x 6c0 */
|
||||
5, 80,240,225,222,255,255, 10,197, 80,176,225, 15, 0, 0, 42, /* 0x 6d0 */
|
||||
2, 0, 0,234, 4, 64,148,224,222,255,255, 11, 11, 0, 0, 42, /* 0x 6e0 */
|
||||
1, 16,160,227, 4, 64,148,224,218,255,255, 11, 7, 0, 0, 42, /* 0x 6f0 */
|
||||
4, 64,148,224,215,255,255, 11, 1, 16,161,224, 4, 64,148,224, /* 0x 700 */
|
||||
212,255,255, 11,249,255,255, 58, 4, 16,129,226, 3, 0, 0,234, /* 0x 710 */
|
||||
4, 64,148,224,207,255,255, 11, 1, 16,161,224, 2, 16,129,226, /* 0x 720 */
|
||||
5, 12,117,227, 0, 0, 0, 42, 1, 16,129,226, 0, 48,210,229, /* 0x 730 */
|
||||
5, 48,210,231, 1, 48,194,228, 1, 16, 81,226,251,255,255, 26, /* 0x 740 */
|
||||
202,255,255,234, 15, 64, 45,233, 72, 0,143,226, 14, 0,144,232, /* 0x 750 */
|
||||
2, 16,129,224, 0, 32,147,229, 1, 58,131,226, 1, 0, 83,225, /* 0x 760 */
|
||||
251,255,255,154, 4,224,143,226, 23,192,143,226, 28,255, 47,225, /* 0x 770 */
|
||||
15, 64,189,232, 60,192,159,229, 28,255, 47,225, 12, 75, 27,104, /* 0x 780 */
|
||||
24, 71, 12, 75,251,231, 27,224, 3, 33, 67, 92, 18, 2,210, 24, /* 0x 790 */
|
||||
1, 57,250,213, 16, 28,112, 71, 83, 82, 67, 48, 83, 82, 67, 76, /* 0x 7a0 */
|
||||
68, 83, 84, 48, 68, 83, 84, 76, 66, 73, 77, 80, 79, 78, 65, 77, /* 0x 7b0 */
|
||||
71, 69, 84, 80, 76, 79, 65, 68, 69, 78, 84, 82, 66, 82, 69, 76, /* 0x 7c0 */
|
||||
240,181,163,176, 0, 34, 2,146,130,104, 1,146, 66,105, 3, 28, /* 0x 7d0 */
|
||||
4,105, 0,146, 89,104, 0,104, 1,154, 2,171, 0,240, 76,248, /* 0x 7e0 */
|
||||
37, 28, 40, 28,255,247,208,255, 4, 30, 61,208, 0,155, 40, 29, /* 0x 7f0 */
|
||||
228, 24,255,247,201,255, 1,154,134, 24, 3,168, 2, 28, 35,120, /* 0x 800 */
|
||||
27, 6, 0, 43, 4,208, 27, 14, 19,128, 1, 52, 2, 50,246,231, /* 0x 810 */
|
||||
0, 35, 19,128,255,247,181,255, 8, 53, 7, 28, 43,120, 27, 6, /* 0x 820 */
|
||||
0, 43, 31,208, 27, 14, 1, 53, 1, 43, 2,208,255, 43, 13,208, /* 0x 830 */
|
||||
244,231, 56, 28, 41, 28,255,247,161,255, 52, 28, 32, 96, 4, 54, /* 0x 840 */
|
||||
43,120, 27, 6, 1, 53, 0, 43,250,209,231,231,105,120, 43,120, /* 0x 850 */
|
||||
9, 2, 56, 28, 89, 24,255,247,145,255, 52, 28, 2, 53, 4, 54, /* 0x 860 */
|
||||
32, 96,219,231, 1, 53,188,231, 35,176,240,188, 1,188, 0, 71, /* 0x 870 */
|
||||
1,192,143,226, 28,255, 47,225, 9, 24,254,181, 1, 36,101, 66, /* 0x 880 */
|
||||
228, 7, 13, 39, 63, 2, 15,224, 26,188, 64, 26,210, 26, 34, 96, /* 0x 890 */
|
||||
240,188, 2,188, 8, 71, 4,120,100, 65, 1, 48, 36, 6,247, 70, /* 0x 8a0 */
|
||||
3,120, 1, 48, 19,112, 1, 50, 36, 25,254, 70,243,208,247,210, /* 0x 8b0 */
|
||||
1, 33, 36, 25,254, 70,238,208, 73, 65, 36, 25,254, 70,234,208, /* 0x 8c0 */
|
||||
247,211,203, 30, 0, 33, 5,211, 27, 2, 5,120, 1, 48, 29, 67, /* 0x 8d0 */
|
||||
237, 67,217,208, 36, 25,254, 70,221,208, 73, 65, 36, 25,254, 70, /* 0x 8e0 */
|
||||
217,208, 73, 65, 9,209, 1, 33, 36, 25,254, 70,211,208, 73, 65, /* 0x 8f0 */
|
||||
36, 25,254, 70,207,208,247,211, 2, 49, 1, 49,253, 66, 0,210, /* 0x 900 */
|
||||
1, 49, 19,120, 83, 93, 19,112, 1, 50, 1, 57,250,209,203,231, /* 0x 910 */
|
||||
85, 80, 88, 33,161,216,208,213, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 920 */
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, /* 0x 930 */
|
||||
65, 82, 77, 87, 80, 69, 50, 69, 0, 0, 0, 0, 0, 65, 82, 77, /* 0x 940 */
|
||||
87, 80, 69, 50, 69, 86, 52, 0,232, 1, 0, 0, 65, 82, 77, 87, /* 0x 950 */
|
||||
80, 69, 50, 69, 86, 52, 68, 76, 76, 0,104, 4, 0, 0, 65, 82, /* 0x 960 */
|
||||
77, 87, 80, 69, 50, 66, 0, 84, 7, 0, 0, 65, 82, 77, 87, 80, /* 0x 970 */
|
||||
69, 72, 69, 0, 32, 9, 0, 0, 85, 80, 88, 49, 72, 69, 65, 68, /* 0x 980 */
|
||||
0, 32, 9, 0, 0, 65, 82, 77, 87, 80, 69, 57, 57, 0, 64, 9, /* 0x 990 */
|
||||
0, 0,255,255,255,255, 64, 9 /* 0x 9a0 */
|
||||
unsigned char nrv_loader[3592] = {
|
||||
15, 64, 45,233, 52, 0,143,226, 22, 0, 0,235, 15, 64,189,232, /* 0x 0 */
|
||||
72,240,159,229, 64, 48,159,229, 0,240,147,229, 52, 48,159,229, /* 0x 10 */
|
||||
0,240,147,229, 3, 32,160,227, 2, 48,208,231, 1, 32, 82,226, /* 0x 20 */
|
||||
1, 20,131,224,251,255,255, 90, 1, 0,160,225, 14,240,160,225, /* 0x 30 */
|
||||
83, 82, 67, 48, 83, 82, 67, 76, 68, 83, 84, 48, 68, 83, 84, 76, /* 0x 40 */
|
||||
66, 73, 77, 80, 79, 78, 65, 77, 71, 69, 84, 80, 76, 79, 65, 68, /* 0x 50 */
|
||||
69, 78, 84, 82, 66, 82, 69, 76,240, 65, 45,233, 0,224,160,227, /* 0x 60 */
|
||||
8,112,144,229,132,208, 77,226, 0,192,160,225, 3, 0,144,232, /* 0x 70 */
|
||||
0,224,141,229, 7, 32,160,225, 13, 48,160,225, 16, 64,140,226, /* 0x 80 */
|
||||
16, 1,148,232, 52, 0, 0,235, 4, 0,160,225,224,255,255,235, /* 0x 90 */
|
||||
0, 80, 80,226, 46, 0, 0, 10, 4, 0,132,226,220,255,255,235, /* 0x a0 */
|
||||
8, 80,133,224, 0, 48,213,229, 4, 16,141,226, 0, 0, 83,227, /* 0x b0 */
|
||||
7, 96,128,224, 1, 32,160,225, 3, 0, 0, 10,178, 48,194,224, /* 0x c0 */
|
||||
1, 48,245,229, 0, 0, 83,227,250,255,255,234, 0, 48,160,227, /* 0x d0 */
|
||||
176, 48,194,225, 1, 0,160,225,201,255,255,235, 8, 48,244,229, /* 0x e0 */
|
||||
0, 80,160,225, 0, 0, 83,227, 23, 0, 0, 10,255, 48, 3,226, /* 0x f0 */
|
||||
1, 0, 83,227, 1, 64,132,226, 2, 0, 0, 10,255, 0, 83,227, /* 0x 100 */
|
||||
8, 0, 0, 10, 14, 0, 0,234, 5, 0,160,225, 4, 16,160,225, /* 0x 110 */
|
||||
189,255,255,235, 4, 0,134,228, 1, 48,212,228, 0, 0, 83,227, /* 0x 120 */
|
||||
252,255,255, 26, 6, 0, 0,234, 0, 48,212,229, 1, 16,212,229, /* 0x 130 */
|
||||
5, 0,160,225, 1, 20,131,224,179,255,255,235, 2, 64,132,226, /* 0x 140 */
|
||||
4, 0,134,228, 0, 48,212,229,229,255,255,234, 1, 64,132,226, /* 0x 150 */
|
||||
204,255,255,234,132,208,141,226,240,129,189,232,252, 64, 45,233, /* 0x 160 */
|
||||
0,112,129,224, 0, 80,224,227, 2, 65,160,227, 10, 0, 0,234, /* 0x 170 */
|
||||
24, 0,189,232, 7, 0, 64,224, 3, 32, 66,224, 0, 32,132,229, /* 0x 180 */
|
||||
240,128,189,232, 1, 64,208,228, 4, 64,164,224, 4, 76,176,225, /* 0x 190 */
|
||||
14,240,160,225, 1, 48,208,228, 1, 48,194,228, 4, 64,148,224, /* 0x 1a0 */
|
||||
247,255,255, 11,250,255,255, 42, 1, 16,160,227, 3, 0, 0,234, /* 0x 1b0 */
|
||||
1, 16, 65,226, 4, 64,148,224,241,255,255, 11, 1, 16,161,224, /* 0x 1c0 */
|
||||
4, 64,148,224,238,255,255, 11, 1, 16,161,224, 4, 64,148,224, /* 0x 1d0 */
|
||||
235,255,255, 11,245,255,255, 58, 3, 48, 81,226, 0, 16,160,227, /* 0x 1e0 */
|
||||
6, 0, 0, 58, 1, 80,208,228, 3, 84,133,225, 5, 80,240,225, /* 0x 1f0 */
|
||||
222,255,255, 10,197, 80,176,225, 15, 0, 0, 42, 2, 0, 0,234, /* 0x 200 */
|
||||
4, 64,148,224,222,255,255, 11, 11, 0, 0, 42, 1, 16,160,227, /* 0x 210 */
|
||||
4, 64,148,224,218,255,255, 11, 7, 0, 0, 42, 4, 64,148,224, /* 0x 220 */
|
||||
215,255,255, 11, 1, 16,161,224, 4, 64,148,224,212,255,255, 11, /* 0x 230 */
|
||||
249,255,255, 58, 4, 16,129,226, 3, 0, 0,234, 4, 64,148,224, /* 0x 240 */
|
||||
207,255,255, 11, 1, 16,161,224, 2, 16,129,226, 5, 12,117,227, /* 0x 250 */
|
||||
0, 0, 0, 42, 1, 16,129,226, 0, 48,210,229, 5, 48,210,231, /* 0x 260 */
|
||||
1, 48,194,228, 1, 16, 81,226,251,255,255, 26,202,255,255,234, /* 0x 270 */
|
||||
1, 0, 81,227, 3, 0, 0, 26, 15, 64, 45,233,148, 0,143,226, /* 0x 280 */
|
||||
46, 0, 0,235, 15, 64,189,232,168,240,159,229,160, 48,159,229, /* 0x 290 */
|
||||
0,240,147,229,148, 48,159,229, 0,240,147,229, 3, 32,160,227, /* 0x 2a0 */
|
||||
2, 48,208,231, 1, 32, 82,226, 1, 20,131,224,251,255,255, 90, /* 0x 2b0 */
|
||||
1, 0,160,225, 14,240,160,225,124, 0,159,229, 92, 32,159,229, /* 0x 2c0 */
|
||||
4, 16, 66,226, 1, 48,208,228, 0, 0, 83,227,248,255,255, 10, /* 0x 2d0 */
|
||||
240, 0, 83,227,240,192,195, 35, 1, 48,208, 37, 12,196,131, 32, /* 0x 2e0 */
|
||||
2, 48,208, 36, 12, 52,131, 32, 3, 16,129,224, 0, 48,209,229, /* 0x 2f0 */
|
||||
12,196,131,224, 1, 48,209,229, 12,196,131,224, 2, 48,209,229, /* 0x 300 */
|
||||
12,196,131,224, 3, 48,209,229, 12,196,131,224, 2,192,140,224, /* 0x 310 */
|
||||
0,192,129,229,234,255,255,234, 83, 82, 67, 48, 83, 82, 67, 76, /* 0x 320 */
|
||||
68, 83, 84, 48, 68, 83, 84, 76, 66, 73, 77, 80, 79, 78, 65, 77, /* 0x 330 */
|
||||
71, 69, 84, 80, 76, 79, 65, 68, 69, 78, 84, 82, 66, 82, 69, 76, /* 0x 340 */
|
||||
240, 65, 45,233, 0,224,160,227, 8,112,144,229,132,208, 77,226, /* 0x 350 */
|
||||
0,192,160,225, 3, 0,144,232, 0,224,141,229, 7, 32,160,225, /* 0x 360 */
|
||||
13, 48,160,225, 16, 64,140,226, 16, 1,148,232, 53, 0, 0,235, /* 0x 370 */
|
||||
4, 0,160,225,200,255,255,235, 0, 80, 80,226, 46, 0, 0, 10, /* 0x 380 */
|
||||
4, 0,132,226,196,255,255,235, 8, 80,133,224, 0, 48,213,229, /* 0x 390 */
|
||||
4, 16,141,226, 0, 0, 83,227, 7, 96,128,224, 1, 32,160,225, /* 0x 3a0 */
|
||||
3, 0, 0, 10,178, 48,194,224, 1, 48,245,229, 0, 0, 83,227, /* 0x 3b0 */
|
||||
250,255,255,234, 0, 48,160,227,176, 48,194,225, 1, 0,160,225, /* 0x 3c0 */
|
||||
177,255,255,235, 8, 48,244,229, 0, 80,160,225, 0, 0, 83,227, /* 0x 3d0 */
|
||||
23, 0, 0, 10,255, 48, 3,226, 1, 0, 83,227, 1, 64,132,226, /* 0x 3e0 */
|
||||
2, 0, 0, 10,255, 0, 83,227, 8, 0, 0, 10, 14, 0, 0,234, /* 0x 3f0 */
|
||||
5, 0,160,225, 4, 16,160,225,165,255,255,235, 4, 0,134,228, /* 0x 400 */
|
||||
1, 48,212,228, 0, 0, 83,227,252,255,255, 26, 6, 0, 0,234, /* 0x 410 */
|
||||
0, 48,212,229, 1, 16,212,229, 5, 0,160,225, 1, 20,131,224, /* 0x 420 */
|
||||
155,255,255,235, 2, 64,132,226, 4, 0,134,228, 0, 48,212,229, /* 0x 430 */
|
||||
229,255,255,234, 1, 64,132,226,204,255,255,234,157,255,255,235, /* 0x 440 */
|
||||
132,208,141,226,240,129,189,232,252, 64, 45,233, 0,112,129,224, /* 0x 450 */
|
||||
0, 80,224,227, 2, 65,160,227, 10, 0, 0,234, 24, 0,189,232, /* 0x 460 */
|
||||
7, 0, 64,224, 3, 32, 66,224, 0, 32,132,229,240,128,189,232, /* 0x 470 */
|
||||
1, 64,208,228, 4, 64,164,224, 4, 76,176,225, 14,240,160,225, /* 0x 480 */
|
||||
1, 48,208,228, 1, 48,194,228, 4, 64,148,224,247,255,255, 11, /* 0x 490 */
|
||||
250,255,255, 42, 1, 16,160,227, 3, 0, 0,234, 1, 16, 65,226, /* 0x 4a0 */
|
||||
4, 64,148,224,241,255,255, 11, 1, 16,161,224, 4, 64,148,224, /* 0x 4b0 */
|
||||
238,255,255, 11, 1, 16,161,224, 4, 64,148,224,235,255,255, 11, /* 0x 4c0 */
|
||||
245,255,255, 58, 3, 48, 81,226, 0, 16,160,227, 6, 0, 0, 58, /* 0x 4d0 */
|
||||
1, 80,208,228, 3, 84,133,225, 5, 80,240,225,222,255,255, 10, /* 0x 4e0 */
|
||||
197, 80,176,225, 15, 0, 0, 42, 2, 0, 0,234, 4, 64,148,224, /* 0x 4f0 */
|
||||
222,255,255, 11, 11, 0, 0, 42, 1, 16,160,227, 4, 64,148,224, /* 0x 500 */
|
||||
218,255,255, 11, 7, 0, 0, 42, 4, 64,148,224,215,255,255, 11, /* 0x 510 */
|
||||
1, 16,161,224, 4, 64,148,224,212,255,255, 11,249,255,255, 58, /* 0x 520 */
|
||||
4, 16,129,226, 3, 0, 0,234, 4, 64,148,224,207,255,255, 11, /* 0x 530 */
|
||||
1, 16,161,224, 2, 16,129,226, 5, 12,117,227, 0, 0, 0, 42, /* 0x 540 */
|
||||
1, 16,129,226, 0, 48,210,229, 5, 48,210,231, 1, 48,194,228, /* 0x 550 */
|
||||
1, 16, 81,226,251,255,255, 26,202,255,255,234, 15, 64, 45,233, /* 0x 560 */
|
||||
72, 0,143,226, 14, 0,144,232, 2, 16,129,224, 0, 32,147,229, /* 0x 570 */
|
||||
1, 58,131,226, 1, 0, 83,225,251,255,255,154, 4,224,143,226, /* 0x 580 */
|
||||
23,192,143,226, 28,255, 47,225, 15, 64,189,232, 60,192,159,229, /* 0x 590 */
|
||||
28,255, 47,225, 12, 75, 27,104, 24, 71, 12, 75,251,231, 27,224, /* 0x 5a0 */
|
||||
3, 33, 67, 92, 18, 2,210, 24, 1, 57,250,213, 16, 28,112, 71, /* 0x 5b0 */
|
||||
83, 82, 67, 48, 83, 82, 67, 76, 68, 83, 84, 48, 68, 83, 84, 76, /* 0x 5c0 */
|
||||
66, 73, 77, 80, 79, 78, 65, 77, 71, 69, 84, 80, 76, 79, 65, 68, /* 0x 5d0 */
|
||||
69, 78, 84, 82, 66, 82, 69, 76,240,181,163,176, 0, 34, 2,146, /* 0x 5e0 */
|
||||
130,104, 1,146, 66,105, 3, 28, 4,105, 0,146, 89,104, 0,104, /* 0x 5f0 */
|
||||
1,154, 2,171, 0,240, 76,248, 37, 28, 40, 28,255,247,208,255, /* 0x 600 */
|
||||
4, 30, 61,208, 0,155, 40, 29,228, 24,255,247,201,255, 1,154, /* 0x 610 */
|
||||
134, 24, 3,168, 2, 28, 35,120, 27, 6, 0, 43, 4,208, 27, 14, /* 0x 620 */
|
||||
19,128, 1, 52, 2, 50,246,231, 0, 35, 19,128,255,247,181,255, /* 0x 630 */
|
||||
8, 53, 7, 28, 43,120, 27, 6, 0, 43, 31,208, 27, 14, 1, 53, /* 0x 640 */
|
||||
1, 43, 2,208,255, 43, 13,208,244,231, 56, 28, 41, 28,255,247, /* 0x 650 */
|
||||
161,255, 52, 28, 32, 96, 4, 54, 43,120, 27, 6, 1, 53, 0, 43, /* 0x 660 */
|
||||
250,209,231,231,105,120, 43,120, 9, 2, 56, 28, 89, 24,255,247, /* 0x 670 */
|
||||
145,255, 52, 28, 2, 53, 4, 54, 32, 96,219,231, 1, 53,188,231, /* 0x 680 */
|
||||
35,176,240,188, 1,188, 0, 71, 1,192,143,226, 28,255, 47,225, /* 0x 690 */
|
||||
252,181, 15, 24, 1, 36,101, 66,228, 7, 5, 38, 54, 2, 15,224, /* 0x 6a0 */
|
||||
24,188,192, 27,210, 26, 34, 96,240,188, 2,188, 8, 71, 4,120, /* 0x 6b0 */
|
||||
100, 65, 1, 48, 36, 6,247, 70, 3,120, 1, 48, 19,112, 1, 50, /* 0x 6c0 */
|
||||
36, 25,254, 70,243,208,247,210, 1, 33, 4,224, 1, 57, 36, 25, /* 0x 6d0 */
|
||||
254, 70,236,208, 73, 65, 36, 25,254, 70,232,208, 73, 65, 36, 25, /* 0x 6e0 */
|
||||
254, 70,228,208,242,211,203, 30, 0, 33, 8,211, 27, 2, 5,120, /* 0x 6f0 */
|
||||
1, 48, 29, 67,237, 67,211,208,109, 16, 19,210, 3,224, 36, 25, /* 0x 700 */
|
||||
254, 70,212,208, 14,210, 1, 33, 36, 25,254, 70,207,208, 9,210, /* 0x 710 */
|
||||
36, 25,254, 70,203,208, 73, 65, 36, 25,254, 70,199,208,247,211, /* 0x 720 */
|
||||
4, 49, 4,224, 36, 25,254, 70,193,208, 73, 65, 2, 49,238, 66, /* 0x 730 */
|
||||
0,210, 1, 49, 19,120, 83, 93, 19,112, 1, 50, 1, 57,250,209, /* 0x 740 */
|
||||
190,231, 0, 0, 1, 0, 81,227, 11, 0, 0, 26, 15, 64, 45,233, /* 0x 750 */
|
||||
136, 0,143,226, 14, 0,144,232, 2, 16,129,224, 0, 32,147,229, /* 0x 760 */
|
||||
1, 58,131,226, 1, 0, 83,225,251,255,255,154, 4,224,143,226, /* 0x 770 */
|
||||
23,192,143,226, 28,255, 47,225, 15, 64,189,232,124,192,159,229, /* 0x 780 */
|
||||
28,255, 47,225, 28, 75, 27,104, 24, 71, 28, 75,251,231, 59,224, /* 0x 790 */
|
||||
3, 33, 67, 92, 18, 2,210, 24, 1, 57,250,213, 16, 28,112, 71, /* 0x 7a0 */
|
||||
48,180, 24, 72, 16, 74, 17, 31, 3,120, 1, 48, 0, 43, 21,208, /* 0x 7b0 */
|
||||
240, 43, 8,211, 15, 36, 28, 64, 67,120, 36, 2,228, 24, 3,120, /* 0x 7c0 */
|
||||
2, 48, 36, 2, 27, 25,201, 24, 0, 37, 75, 93, 36, 2,228, 24, /* 0x 7d0 */
|
||||
1, 53, 4, 45,249,209,164, 24, 12, 96,229,231, 48,188,112, 71, /* 0x 7e0 */
|
||||
83, 82, 67, 48, 83, 82, 67, 76, 68, 83, 84, 48, 68, 83, 84, 76, /* 0x 7f0 */
|
||||
66, 73, 77, 80, 79, 78, 65, 77, 71, 69, 84, 80, 76, 79, 65, 68, /* 0x 800 */
|
||||
69, 78, 84, 82, 66, 82, 69, 76,240,181,163,176, 0, 34, 2,146, /* 0x 810 */
|
||||
130,104, 1,146, 66,105, 3, 28, 4,105, 0,146, 89,104, 0,104, /* 0x 820 */
|
||||
1,154, 2,171, 0,240, 78,248, 37, 28, 40, 28,255,247,176,255, /* 0x 830 */
|
||||
4, 30, 61,208, 0,155, 40, 29,228, 24,255,247,169,255, 1,154, /* 0x 840 */
|
||||
134, 24, 3,168, 2, 28, 35,120, 27, 6, 0, 43, 4,208, 27, 14, /* 0x 850 */
|
||||
19,128, 1, 52, 2, 50,246,231, 0, 35, 19,128,255,247,149,255, /* 0x 860 */
|
||||
8, 53, 7, 28, 43,120, 27, 6, 0, 43, 31,208, 27, 14, 1, 53, /* 0x 870 */
|
||||
1, 43, 2,208,255, 43, 13,208,244,231, 56, 28, 41, 28,255,247, /* 0x 880 */
|
||||
129,255, 52, 28, 32, 96, 4, 54, 43,120, 27, 6, 1, 53, 0, 43, /* 0x 890 */
|
||||
250,209,231,231,105,120, 43,120, 9, 2, 56, 28, 89, 24,255,247, /* 0x 8a0 */
|
||||
113,255, 52, 28, 2, 53, 4, 54, 32, 96,219,231, 1, 53,188,231, /* 0x 8b0 */
|
||||
255,247,118,255, 35,176,240,188, 1,188, 0, 71, 1,192,143,226, /* 0x 8c0 */
|
||||
28,255, 47,225,252,181, 15, 24, 1, 36,101, 66,228, 7, 5, 38, /* 0x 8d0 */
|
||||
54, 2, 15,224, 24,188,192, 27,210, 26, 34, 96,240,188, 2,188, /* 0x 8e0 */
|
||||
8, 71, 4,120,100, 65, 1, 48, 36, 6,247, 70, 3,120, 1, 48, /* 0x 8f0 */
|
||||
19,112, 1, 50, 36, 25,254, 70,243,208,247,210, 1, 33, 4,224, /* 0x 900 */
|
||||
1, 57, 36, 25,254, 70,236,208, 73, 65, 36, 25,254, 70,232,208, /* 0x 910 */
|
||||
73, 65, 36, 25,254, 70,228,208,242,211,203, 30, 0, 33, 8,211, /* 0x 920 */
|
||||
27, 2, 5,120, 1, 48, 29, 67,237, 67,211,208,109, 16, 19,210, /* 0x 930 */
|
||||
3,224, 36, 25,254, 70,212,208, 14,210, 1, 33, 36, 25,254, 70, /* 0x 940 */
|
||||
207,208, 9,210, 36, 25,254, 70,203,208, 73, 65, 36, 25,254, 70, /* 0x 950 */
|
||||
199,208,247,211, 4, 49, 4,224, 36, 25,254, 70,193,208, 73, 65, /* 0x 960 */
|
||||
2, 49,238, 66, 0,210, 1, 49, 19,120, 83, 93, 19,112, 1, 50, /* 0x 970 */
|
||||
1, 57,250,209,190,231, 0, 0, 15, 64, 45,233, 72, 0,143,226, /* 0x 980 */
|
||||
14, 0,144,232, 2, 16,129,224, 0, 32,147,229, 1, 58,131,226, /* 0x 990 */
|
||||
1, 0, 83,225,251,255,255,154, 4,224,143,226, 23,192,143,226, /* 0x 9a0 */
|
||||
28,255, 47,225, 15, 64,189,232, 60,192,159,229, 28,255, 47,225, /* 0x 9b0 */
|
||||
12, 75, 27,104, 24, 71, 12, 75,251,231, 27,224, 3, 33, 67, 92, /* 0x 9c0 */
|
||||
18, 2,210, 24, 1, 57,250,213, 16, 28,112, 71, 83, 82, 67, 48, /* 0x 9d0 */
|
||||
83, 82, 67, 76, 68, 83, 84, 48, 68, 83, 84, 76, 66, 73, 77, 80, /* 0x 9e0 */
|
||||
79, 78, 65, 77, 71, 69, 84, 80, 76, 79, 65, 68, 69, 78, 84, 82, /* 0x 9f0 */
|
||||
66, 82, 69, 76,240,181,163,176, 0, 34, 2,146,130,104, 1,146, /* 0x a00 */
|
||||
66,105, 3, 28, 4,105, 0,146, 89,104, 0,104, 1,154, 2,171, /* 0x a10 */
|
||||
0,240, 76,248, 37, 28, 40, 28,255,247,208,255, 4, 30, 61,208, /* 0x a20 */
|
||||
0,155, 40, 29,228, 24,255,247,201,255, 1,154,134, 24, 3,168, /* 0x a30 */
|
||||
2, 28, 35,120, 27, 6, 0, 43, 4,208, 27, 14, 19,128, 1, 52, /* 0x a40 */
|
||||
2, 50,246,231, 0, 35, 19,128,255,247,181,255, 8, 53, 7, 28, /* 0x a50 */
|
||||
43,120, 27, 6, 0, 43, 31,208, 27, 14, 1, 53, 1, 43, 2,208, /* 0x a60 */
|
||||
255, 43, 13,208,244,231, 56, 28, 41, 28,255,247,161,255, 52, 28, /* 0x a70 */
|
||||
32, 96, 4, 54, 43,120, 27, 6, 1, 53, 0, 43,250,209,231,231, /* 0x a80 */
|
||||
105,120, 43,120, 9, 2, 56, 28, 89, 24,255,247,145,255, 52, 28, /* 0x a90 */
|
||||
2, 53, 4, 54, 32, 96,219,231, 1, 53,188,231, 35,176,240,188, /* 0x aa0 */
|
||||
1,188, 0, 71, 1,192,143,226, 28,255, 47,225, 9, 24,254,181, /* 0x ab0 */
|
||||
1, 36,101, 66,228, 7, 13, 39, 63, 2, 15,224, 26,188, 64, 26, /* 0x ac0 */
|
||||
210, 26, 34, 96,240,188, 2,188, 8, 71, 4,120,100, 65, 1, 48, /* 0x ad0 */
|
||||
36, 6,247, 70, 3,120, 1, 48, 19,112, 1, 50, 36, 25,254, 70, /* 0x ae0 */
|
||||
243,208,247,210, 1, 33, 36, 25,254, 70,238,208, 73, 65, 36, 25, /* 0x af0 */
|
||||
254, 70,234,208,247,211,203, 30, 0, 33, 5,211, 27, 2, 5,120, /* 0x b00 */
|
||||
1, 48, 29, 67,237, 67,217,208, 36, 25,254, 70,221,208, 73, 65, /* 0x b10 */
|
||||
36, 25,254, 70,217,208, 73, 65, 9,209, 1, 33, 36, 25,254, 70, /* 0x b20 */
|
||||
211,208, 73, 65, 36, 25,254, 70,207,208,247,211, 2, 49, 1, 49, /* 0x b30 */
|
||||
253, 66, 0,210, 1, 49, 19,120, 83, 93, 19,112, 1, 50, 1, 57, /* 0x b40 */
|
||||
250,209,203,231, 1, 0, 81,227, 11, 0, 0, 26, 15, 64, 45,233, /* 0x b50 */
|
||||
136, 0,143,226, 14, 0,144,232, 2, 16,129,224, 0, 32,147,229, /* 0x b60 */
|
||||
1, 58,131,226, 1, 0, 83,225,251,255,255,154, 4,224,143,226, /* 0x b70 */
|
||||
23,192,143,226, 28,255, 47,225, 15, 64,189,232,124,192,159,229, /* 0x b80 */
|
||||
28,255, 47,225, 28, 75, 27,104, 24, 71, 28, 75,251,231, 59,224, /* 0x b90 */
|
||||
3, 33, 67, 92, 18, 2,210, 24, 1, 57,250,213, 16, 28,112, 71, /* 0x ba0 */
|
||||
48,180, 24, 72, 16, 74, 17, 31, 3,120, 1, 48, 0, 43, 21,208, /* 0x bb0 */
|
||||
240, 43, 8,211, 15, 36, 28, 64, 67,120, 36, 2,228, 24, 3,120, /* 0x bc0 */
|
||||
2, 48, 36, 2, 27, 25,201, 24, 0, 37, 75, 93, 36, 2,228, 24, /* 0x bd0 */
|
||||
1, 53, 4, 45,249,209,164, 24, 12, 96,229,231, 48,188,112, 71, /* 0x be0 */
|
||||
83, 82, 67, 48, 83, 82, 67, 76, 68, 83, 84, 48, 68, 83, 84, 76, /* 0x bf0 */
|
||||
66, 73, 77, 80, 79, 78, 65, 77, 71, 69, 84, 80, 76, 79, 65, 68, /* 0x c00 */
|
||||
69, 78, 84, 82, 66, 82, 69, 76,240,181,163,176, 0, 34, 2,146, /* 0x c10 */
|
||||
130,104, 1,146, 66,105, 3, 28, 4,105, 0,146, 89,104, 0,104, /* 0x c20 */
|
||||
1,154, 2,171, 0,240, 78,248, 37, 28, 40, 28,255,247,176,255, /* 0x c30 */
|
||||
4, 30, 61,208, 0,155, 40, 29,228, 24,255,247,169,255, 1,154, /* 0x c40 */
|
||||
134, 24, 3,168, 2, 28, 35,120, 27, 6, 0, 43, 4,208, 27, 14, /* 0x c50 */
|
||||
19,128, 1, 52, 2, 50,246,231, 0, 35, 19,128,255,247,149,255, /* 0x c60 */
|
||||
8, 53, 7, 28, 43,120, 27, 6, 0, 43, 31,208, 27, 14, 1, 53, /* 0x c70 */
|
||||
1, 43, 2,208,255, 43, 13,208,244,231, 56, 28, 41, 28,255,247, /* 0x c80 */
|
||||
129,255, 52, 28, 32, 96, 4, 54, 43,120, 27, 6, 1, 53, 0, 43, /* 0x c90 */
|
||||
250,209,231,231,105,120, 43,120, 9, 2, 56, 28, 89, 24,255,247, /* 0x ca0 */
|
||||
113,255, 52, 28, 2, 53, 4, 54, 32, 96,219,231, 1, 53,188,231, /* 0x cb0 */
|
||||
255,247,118,255, 35,176,240,188, 1,188, 0, 71, 1,192,143,226, /* 0x cc0 */
|
||||
28,255, 47,225, 9, 24,254,181, 1, 36,101, 66,228, 7, 13, 39, /* 0x cd0 */
|
||||
63, 2, 15,224, 26,188, 64, 26,210, 26, 34, 96,240,188, 2,188, /* 0x ce0 */
|
||||
8, 71, 4,120,100, 65, 1, 48, 36, 6,247, 70, 3,120, 1, 48, /* 0x cf0 */
|
||||
19,112, 1, 50, 36, 25,254, 70,243,208,247,210, 1, 33, 36, 25, /* 0x d00 */
|
||||
254, 70,238,208, 73, 65, 36, 25,254, 70,234,208,247,211,203, 30, /* 0x d10 */
|
||||
0, 33, 5,211, 27, 2, 5,120, 1, 48, 29, 67,237, 67,217,208, /* 0x d20 */
|
||||
36, 25,254, 70,221,208, 73, 65, 36, 25,254, 70,217,208, 73, 65, /* 0x d30 */
|
||||
9,209, 1, 33, 36, 25,254, 70,211,208, 73, 65, 36, 25,254, 70, /* 0x d40 */
|
||||
207,208,247,211, 2, 49, 1, 49,253, 66, 0,210, 1, 49, 19,120, /* 0x d50 */
|
||||
83, 93, 19,112, 1, 50, 1, 57,250,209,203,231, 85, 80, 88, 33, /* 0x d60 */
|
||||
161,216,208,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x d70 */
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 65, 82, 77, 80, /* 0x d80 */
|
||||
69, 65, 88, 69, 0, 0, 0, 0, 0, 65, 82, 77, 80, 69, 65, 68, /* 0x d90 */
|
||||
69, 0,128, 2, 0, 0, 65, 82, 77, 80, 69, 84, 88, 69, 0,108, /* 0x da0 */
|
||||
5, 0, 0, 65, 82, 77, 80, 69, 84, 68, 69, 0, 84, 7, 0, 0, /* 0x db0 */
|
||||
65, 82, 77, 80, 69, 84, 88, 66, 0,136, 9, 0, 0, 65, 82, 77, /* 0x dc0 */
|
||||
80, 69, 84, 68, 66, 0, 84, 11, 0, 0, 65, 82, 77, 80, 69, 72, /* 0x dd0 */
|
||||
69, 65, 68, 0,108, 13, 0, 0, 85, 80, 88, 49, 72, 69, 65, 68, /* 0x de0 */
|
||||
0,108, 13, 0, 0, 65, 82, 77, 80, 69, 69, 79, 70, 0,140, 13, /* 0x df0 */
|
||||
0, 0,255,255,255,255,140, 13 /* 0x e00 */
|
||||
};
|
||||
|
@ -35,13 +35,21 @@
|
||||
# define STUB_IN_THUMB_MODE
|
||||
#endif
|
||||
|
||||
#ifdef STUB_FOR_DLL
|
||||
#define START _start: cmp r1, #1; bne .Lstart_orig
|
||||
#else
|
||||
#define START _start:
|
||||
#endif
|
||||
|
||||
|
||||
.text
|
||||
.align 0
|
||||
.globl upx_main
|
||||
.globl _start
|
||||
|
||||
#ifdef STUB_IN_THUMB_MODE
|
||||
_start:
|
||||
|
||||
START
|
||||
stmfd sp!, {r0 - r3, lr}
|
||||
|
||||
@ touch all pages in ARM mode - this seems to be required
|
||||
@ -63,11 +71,13 @@ _start:
|
||||
bx ip
|
||||
.Larmret:
|
||||
ldmfd sp!, {r0 - r3, lr}
|
||||
.Lstart_orig:
|
||||
ldr ip, ENTR
|
||||
bx ip
|
||||
# else
|
||||
blx upx_main @ call thumb armv5t style
|
||||
ldmfd sp!, {r0 - r3, lr}
|
||||
.Lstart_orig:
|
||||
ldr pc, ENTR @ original entry
|
||||
# endif
|
||||
|
||||
@ -112,11 +122,64 @@ get_le32: @ optimized for size
|
||||
mov r0, r2
|
||||
bx lr
|
||||
|
||||
# ifdef STUB_FOR_DLL
|
||||
.global reloc_main
|
||||
.thumb_func
|
||||
buffer .req r0
|
||||
dest .req r1
|
||||
addval .req r2
|
||||
|
||||
reloc_main:
|
||||
push {r4, r5}
|
||||
ldr buffer, BREL
|
||||
ldr addval, DST0
|
||||
sub dest, addval, #4
|
||||
|
||||
.Lreloc_loop:
|
||||
ldrb r3, [buffer]
|
||||
add buffer, #1
|
||||
cmp r3, #0
|
||||
beq .Lreloc_end
|
||||
cmp r3, #0xf0
|
||||
blo .Lreloc_add
|
||||
|
||||
mov r4, #0x0f
|
||||
and r4, r3
|
||||
ldrb r3, [buffer, #1] @ get_le16
|
||||
lsl r4, #8
|
||||
add r4, r3
|
||||
ldrb r3, [buffer]
|
||||
add buffer, #2
|
||||
lsl r4, #8
|
||||
add r3, r4
|
||||
|
||||
.Lreloc_add:
|
||||
add dest, r3
|
||||
mov r5, #0
|
||||
|
||||
.Lread_be32:
|
||||
ldrb r3, [dest, r5]
|
||||
lsl r4, #8
|
||||
add r4, r3
|
||||
add r5, #1
|
||||
cmp r5, #4
|
||||
bne .Lread_be32
|
||||
|
||||
add r4, addval
|
||||
str r4, [dest]
|
||||
b .Lreloc_loop
|
||||
|
||||
.Lreloc_end:
|
||||
pop {r4, r5}
|
||||
bx lr
|
||||
|
||||
# endif
|
||||
|
||||
# if 0
|
||||
|
||||
// debugging stuff - helpers for dumping memory to a file or deleting a file
|
||||
|
||||
// !!!!! check the lines with "system dependent" below before trying
|
||||
// !!!!! check the lines with "system dependent" below before calling
|
||||
|
||||
.global CFwrap
|
||||
.thumb_func
|
||||
@ -171,11 +234,8 @@ filename:
|
||||
|
||||
#else // stub in ARM mode
|
||||
|
||||
_start:
|
||||
# ifdef STUB_FOR_DLL
|
||||
cmp r1, #1
|
||||
bne .Lstart_orig
|
||||
# endif
|
||||
START
|
||||
|
||||
stmfd sp!, {r0 - r3, lr}
|
||||
adr r0, SRC0
|
||||
bl upx_main
|
||||
@ -246,7 +306,7 @@ reloc_main:
|
||||
|
||||
// debugging stuff - helpers for dumping memory to a file or deleting a file
|
||||
|
||||
// !!!!! check the lines with "system dependent" below before trying
|
||||
// !!!!! check the lines with "system dependent" below before calling
|
||||
|
||||
.global CFwrap
|
||||
CFwrap:
|
||||
@ -297,7 +357,3 @@ GETP: .ascii "GETP"
|
||||
LLIB: .ascii "LOAD"
|
||||
ENTR: .ascii "ENTR"
|
||||
BREL: .ascii "BREL"
|
||||
|
||||
#ifndef STUB_IN_THUMB_MODE
|
||||
# include "l_armpe_c.s"
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user