arm/pe: import handling updates (untested)
This commit is contained in:
@@ -32,17 +32,17 @@
|
||||
|
||||
|
||||
#define STUB_ARM_V4A_WINCE_PE_SIZE 15590
|
||||
#define STUB_ARM_V4A_WINCE_PE_ADLER32 0x24a54147
|
||||
#define STUB_ARM_V4A_WINCE_PE_CRC32 0x5f885b54
|
||||
#define STUB_ARM_V4A_WINCE_PE_ADLER32 0xb9b54141
|
||||
#define STUB_ARM_V4A_WINCE_PE_CRC32 0x28ab6b7c
|
||||
|
||||
unsigned char stub_arm_v4a_wince_pe[15590] = {
|
||||
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0010 */ 1, 0, 40, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0020 */ 156, 15, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
|
||||
/* 0x0030 */ 33, 0, 30, 0, 1, 0, 81,227, 7, 0, 0, 26,255, 79, 45,233,
|
||||
/* 0x0040 */ 32, 48,143,226, 7, 0,179,232, 16, 12,147,232, 2,144,160,225,
|
||||
/* 0x0040 */ 32, 48,143,226, 7, 0,179,232, 16, 14,147,232, 2,144,160,225,
|
||||
/* 0x0050 */ 18, 0, 0,235, 4, 0,160,227, 8, 0, 0,235,255, 79,189,232,
|
||||
/* 0x0060 */ 32,240,159,229, 20,240,159,229, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0060 */ 32,240,159,229, 12,240,159,229, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0070 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0080 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 45,233,
|
||||
/* 0x0090 */ 0,128,189,232, 60, 0,159,229, 0, 32,160,227, 56,192,159,229,
|
||||
@@ -66,7 +66,7 @@ unsigned char stub_arm_v4a_wince_pe[15590] = {
|
||||
/* 0x01b0 */ 1, 0,212,228, 1, 16,212,228, 1, 20,128,224, 6, 0,160,225,
|
||||
/* 0x01c0 */ 41, 0, 0,235, 4, 0,133,228, 17, 0, 0,234, 3, 32,160,227,
|
||||
/* 0x01d0 */ 2, 48,208,231, 1, 32, 82,226, 1, 20,131,224, 34, 0, 0, 90,
|
||||
/* 0x01e0 */ 1, 0,176,225, 14,240,160,225, 10,240,160,225, 11,240,160,225,
|
||||
/* 0x01e0 */ 1, 0,176,225, 14,240,160,225, 11,240,160,225, 10,240,160,225,
|
||||
/* 0x01f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 2,219,141,226, 85, 80, 88, 33,
|
||||
/* 0x0200 */ 161,216,208,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0210 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45,252, 64, 45,233,
|
||||
|
||||
@@ -32,8 +32,8 @@
|
||||
|
||||
|
||||
#define STUB_ARM_V4T_WINCE_PE_SIZE 7542
|
||||
#define STUB_ARM_V4T_WINCE_PE_ADLER32 0xc50af55d
|
||||
#define STUB_ARM_V4T_WINCE_PE_CRC32 0x99d633b4
|
||||
#define STUB_ARM_V4T_WINCE_PE_ADLER32 0xb60af55d
|
||||
#define STUB_ARM_V4T_WINCE_PE_CRC32 0x93e7ac4e
|
||||
|
||||
unsigned char stub_arm_v4t_wince_pe[7542] = {
|
||||
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
@@ -45,7 +45,7 @@ unsigned char stub_arm_v4t_wince_pe[7542] = {
|
||||
/* 0x0060 */ 15,224,160,225, 20,255, 47,225,255, 79,189,232, 32,192,159,229,
|
||||
/* 0x0070 */ 28,255, 47,225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0080 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0090 */ 0, 0, 0, 0, 0, 0, 0, 0, 7,203,145, 70,100, 70, 16,181,
|
||||
/* 0x0090 */ 0, 0, 0, 0, 0, 0, 0, 0, 7,203,145, 70, 84, 70, 16,181,
|
||||
/* 0x00a0 */ 11, 72, 0, 34, 11, 76, 15, 37,255, 38, 54, 6,247, 67,160, 66,
|
||||
/* 0x00b0 */ 18,208, 3,104, 25, 14, 41, 64, 11, 41, 5,209, 25, 28, 49, 64,
|
||||
/* 0x00c0 */ 155, 26, 59, 64, 11, 67, 3, 96, 4, 48, 1, 50,239,231, 0, 0,
|
||||
@@ -60,7 +60,7 @@ unsigned char stub_arm_v4t_wince_pe[7542] = {
|
||||
/* 0x0150 */ 8, 52, 32,120, 1, 52, 1, 40,228,212, 5,209, 33, 28, 32,120,
|
||||
/* 0x0160 */ 1, 52, 0, 40,251,209, 4,224, 32,120, 97,120, 2, 52, 9, 2,
|
||||
/* 0x0170 */ 9, 24, 48, 28, 0,240, 57,248, 1,197,234,231, 3, 33, 67, 92,
|
||||
/* 0x0180 */ 18, 2,210, 24, 1, 57,250,213, 16, 28,112, 71, 80, 71, 88, 71,
|
||||
/* 0x0180 */ 18, 2,210, 24, 1, 57,250,213, 16, 28,112, 71, 96, 71, 88, 71,
|
||||
/* 0x0190 */ 0, 0, 0, 0, 0, 0, 0, 0,189, 70, 6,188, 4, 32,150, 70,
|
||||
/* 0x01a0 */ 8, 71, 85, 80, 88, 33,161,216,208,213, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x01b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
|
||||
@@ -81,7 +81,7 @@ section ExeStart
|
||||
DINIT
|
||||
adr r3, SRC0
|
||||
ldmia r3!, {r0, r1, r2} @ r0=src0, r1=slen, r2=dst0, r3=addr dstl
|
||||
ldmia r3, {r4, r10, r11} @ r10=LoadLibraryW, r11=GetProcAddressA
|
||||
ldmia r3, {r4, r9, r10, r11} @ r11=LoadLibraryW, r10=GetProcAddressA
|
||||
mov dst0, r2
|
||||
|
||||
bl ProcessAll
|
||||
@@ -93,7 +93,7 @@ section ExeStart
|
||||
ldr pc, ENTR
|
||||
|
||||
CacheSync:
|
||||
ldr pc, IATT + 8
|
||||
ldr pc, IATT
|
||||
|
||||
SRC0: .long start_of_compressed
|
||||
SRCL: .long compressed_length
|
||||
@@ -330,10 +330,10 @@ get_le32: @ optimized for size
|
||||
mov pc, lr
|
||||
|
||||
LoadLibraryW:
|
||||
mov pc, r10
|
||||
mov pc, r11
|
||||
|
||||
GetProcAddressA:
|
||||
mov pc, r11
|
||||
mov pc, r10
|
||||
|
||||
BIMP: .long start_of_imports
|
||||
ONAM: .long start_of_dll_names
|
||||
|
||||
@@ -54,8 +54,8 @@ section ExeStart
|
||||
|
||||
adr r3, SRC0
|
||||
ldmia r3, {r5, r6, r7, r9, r10, r11, ip} @ r7=dst0
|
||||
add r5, pc, #4096 @ r3=addr src0, r10=LoadLibraryW
|
||||
.L01: @ r11=GetProcAddressA, ip=CacheSync
|
||||
add r5, pc, #4096 @ r3=addr src0, ip=LoadLibraryW
|
||||
.L01: @ r11=GetProcAddressA, r10=CacheSync
|
||||
ldr r6, [r7]
|
||||
add r7, r7, #4096
|
||||
cmp r7, r5
|
||||
@@ -82,7 +82,7 @@ ENTR: .long original_entry
|
||||
ProcessAll:
|
||||
ldmia r3!, {r0, r1, r2} @ r0=src0, r1=slen, r2=dst0, r3=addr dstl
|
||||
mov dst0, r2
|
||||
mov r4, ip @ CacheSync
|
||||
mov r4, r10 @ CacheSync
|
||||
push {r4, lr}
|
||||
|
||||
@@ uncompress/unfilter/imports/relocs are copied here by the upx linker
|
||||
@@ -265,7 +265,7 @@ get_le32: @ optimized for size
|
||||
bx lr
|
||||
|
||||
LoadLibraryW:
|
||||
bx r10
|
||||
bx ip
|
||||
|
||||
GetProcAddressA:
|
||||
bx r11
|
||||
|
||||
Reference in New Issue
Block a user