win64/pe: added nrv2b and nrv2d support
This commit is contained in:
+8
-2
@@ -139,11 +139,16 @@ PackW64Pep::~PackW64Pep()
|
||||
}
|
||||
|
||||
|
||||
const int *PackW64Pep::getCompressionMethods(int /*method*/, int /*level*/) const
|
||||
const int *PackW64Pep::getCompressionMethods(int method, int /*level*/) const
|
||||
{
|
||||
// FIXME bool small = ih.codesize + ih.datasize <= 256*1024;
|
||||
//return Packer::getDefaultCompressionMethods_le32(method, level, small);
|
||||
static const int m_nrv2b[] = { M_NRV2B_LE32, M_END };
|
||||
static const int m_nrv2d[] = { M_NRV2D_LE32, M_END };
|
||||
static const int m_nrv2e[] = { M_NRV2E_LE32, M_END };
|
||||
if (M_IS_NRV2B(method)) return m_nrv2b;
|
||||
if (M_IS_NRV2D(method)) return m_nrv2d;
|
||||
if (M_IS_NRV2E(method)) return m_nrv2e;
|
||||
return m_nrv2e;
|
||||
}
|
||||
|
||||
@@ -689,7 +694,8 @@ void PackW64Pep::buildLoader(const Filter *ft)
|
||||
"PEMAIN02",
|
||||
//ph.first_offset_found == 1 ? "PEMAIN03" : "",
|
||||
"NRV_HEAD",
|
||||
"NRV2E",
|
||||
ph.method == M_NRV2B_LE32 ? "NRV2B" :
|
||||
ph.method == M_NRV2D_LE32 ? "NRV2D" : "NRV2E",
|
||||
//getDecompressorSections(),
|
||||
/*multipass ? "PEMULTIP" : */ "",
|
||||
"PEMAIN10",
|
||||
|
||||
+898
-835
File diff suppressed because it is too large
Load Diff
@@ -176,14 +176,14 @@ setup:
|
||||
|
||||
#define NO_METHOD_CHECK
|
||||
|
||||
section NRV2B
|
||||
#include "arch/amd64/nrv2b_d.S"
|
||||
section NRV2D
|
||||
#include "arch/amd64/nrv2d_d.S"
|
||||
section NRV2E
|
||||
#include "arch/amd64/nrv2e_d.S"
|
||||
|
||||
|
||||
#if 0 //; FIXME
|
||||
#include "arch/amd64/nrv2b_d.S"
|
||||
#include "arch/amd64/nrv2d_d.S"
|
||||
#include "arch/amd64/nrv2e_d.S"
|
||||
#if 0
|
||||
#include "arch/amd64/lzma_d.S"
|
||||
#endif
|
||||
|
||||
|
||||
@@ -29,7 +29,11 @@
|
||||
<jreiser@users.sourceforge.net>
|
||||
*/
|
||||
|
||||
#ifndef NO_METHOD_CHECK
|
||||
cmpb $ M_NRV2B_LE32,methb; je top_n2b; jmp not_n2b
|
||||
#else
|
||||
jmp top_n2b
|
||||
#endif
|
||||
|
||||
lit_n2b:
|
||||
incq %rsi; movb %dl,(%rdi)
|
||||
|
||||
@@ -29,7 +29,11 @@
|
||||
<jreiser@users.sourceforge.net>
|
||||
*/
|
||||
|
||||
#ifndef NO_METHOD_CHECK
|
||||
cmpb $ M_NRV2D_LE32,methb; je top_n2d; jmp not_n2d
|
||||
#else
|
||||
jmp top_n2d
|
||||
#endif
|
||||
|
||||
lit_n2d:
|
||||
incq %rsi; movb %dl,(%rdi)
|
||||
|
||||
@@ -12,38 +12,40 @@ Idx Name Size VMA LMA File off Algn
|
||||
7 PEMAIN02 00000001 0000000000000000 0000000000000000 0000008a 2**0 CONTENTS, READONLY
|
||||
8 PEMAIN03 00000000 0000000000000000 0000000000000000 0000008b 2**0 CONTENTS, READONLY
|
||||
9 NRV_HEAD 00000060 0000000000000000 0000000000000000 0000008b 2**0 CONTENTS, READONLY
|
||||
10 NRV2E 000000ae 0000000000000000 0000000000000000 000000eb 2**0 CONTENTS, RELOC, READONLY
|
||||
11 PEMAIN10 00000001 0000000000000000 0000000000000000 00000199 2**0 CONTENTS, READONLY
|
||||
12 PETLSHAK2 00000004 0000000000000000 0000000000000000 0000019a 2**0 CONTENTS, READONLY
|
||||
13 PECTTPOS 00000007 0000000000000000 0000000000000000 0000019e 2**0 CONTENTS, RELOC, READONLY
|
||||
14 PECTTNUL 00000003 0000000000000000 0000000000000000 000001a5 2**0 CONTENTS, READONLY
|
||||
15 PEFILTER49 0000004e 0000000000000000 0000000000000000 000001a8 2**0 CONTENTS, RELOC, READONLY
|
||||
16 PEIMPORT 00000034 0000000000000000 0000000000000000 000001f6 2**0 CONTENTS, RELOC, READONLY
|
||||
17 PEIBYORD 00000002 0000000000000000 0000000000000000 0000022a 2**0 CONTENTS, RELOC, READONLY
|
||||
18 PEK32ORD 00000012 0000000000000000 0000000000000000 0000022c 2**0 CONTENTS, RELOC, READONLY
|
||||
19 PEIMORD1 0000000a 0000000000000000 0000000000000000 0000023e 2**0 CONTENTS, RELOC, READONLY
|
||||
20 PEIMPOR2 00000021 0000000000000000 0000000000000000 00000248 2**0 CONTENTS, RELOC, READONLY
|
||||
21 PEIERDLL 0000000b 0000000000000000 0000000000000000 00000269 2**0 CONTENTS, READONLY
|
||||
22 PEIEREXE 00000006 0000000000000000 0000000000000000 00000274 2**0 CONTENTS, RELOC, READONLY
|
||||
23 PEIMDONE 00000004 0000000000000000 0000000000000000 0000027a 2**0 CONTENTS, READONLY
|
||||
24 PERELOC1 00000007 0000000000000000 0000000000000000 0000027e 2**0 CONTENTS, RELOC, READONLY
|
||||
25 PERELOC2 00000004 0000000000000000 0000000000000000 00000285 2**0 CONTENTS, READONLY
|
||||
26 PERELOC3 00000030 0000000000000000 0000000000000000 00000289 2**0 CONTENTS, RELOC, READONLY
|
||||
27 REL64BIG 0000000a 0000000000000000 0000000000000000 000002b9 2**0 CONTENTS, RELOC, READONLY
|
||||
28 RELOC64J 00000002 0000000000000000 0000000000000000 000002c3 2**0 CONTENTS, RELOC, READONLY
|
||||
29 PERLOHI0 0000000a 0000000000000000 0000000000000000 000002c5 2**0 CONTENTS, RELOC, READONLY
|
||||
30 PERELLO0 0000000b 0000000000000000 0000000000000000 000002cf 2**0 CONTENTS, READONLY
|
||||
31 PERELHI0 0000000e 0000000000000000 0000000000000000 000002da 2**0 CONTENTS, READONLY
|
||||
32 PEDEPHAK 0000004b 0000000000000000 0000000000000000 000002e8 2**0 CONTENTS, RELOC, READONLY
|
||||
33 PETLSC 0000001b 0000000000000000 0000000000000000 00000333 2**0 CONTENTS, RELOC, READONLY
|
||||
34 PEMAIN20 00000004 0000000000000000 0000000000000000 0000034e 2**0 CONTENTS, READONLY
|
||||
35 CLEARSTACK 00000010 0000000000000000 0000000000000000 00000352 2**0 CONTENTS, READONLY
|
||||
36 PEMAIN21 00000000 0000000000000000 0000000000000000 00000362 2**0 CONTENTS, READONLY
|
||||
37 PEISDLL9 0000000f 0000000000000000 0000000000000000 00000362 2**0 CONTENTS, READONLY
|
||||
38 PERETURN 00000004 0000000000000000 0000000000000000 00000371 2**0 CONTENTS, READONLY
|
||||
39 PEDOJUMP 00000005 0000000000000000 0000000000000000 00000375 2**0 CONTENTS, RELOC, READONLY
|
||||
40 PETLSC2 00000028 0000000000000000 0000000000000000 0000037a 2**0 CONTENTS, RELOC, READONLY
|
||||
41 UPX1HEAD 00000020 0000000000000000 0000000000000000 000003a2 2**0 CONTENTS, READONLY
|
||||
10 NRV2B 00000087 0000000000000000 0000000000000000 000000eb 2**0 CONTENTS, RELOC, READONLY
|
||||
11 NRV2D 00000095 0000000000000000 0000000000000000 00000172 2**0 CONTENTS, RELOC, READONLY
|
||||
12 NRV2E 000000ae 0000000000000000 0000000000000000 00000207 2**0 CONTENTS, RELOC, READONLY
|
||||
13 PEMAIN10 00000001 0000000000000000 0000000000000000 000002b5 2**0 CONTENTS, READONLY
|
||||
14 PETLSHAK2 00000004 0000000000000000 0000000000000000 000002b6 2**0 CONTENTS, READONLY
|
||||
15 PECTTPOS 00000007 0000000000000000 0000000000000000 000002ba 2**0 CONTENTS, RELOC, READONLY
|
||||
16 PECTTNUL 00000003 0000000000000000 0000000000000000 000002c1 2**0 CONTENTS, READONLY
|
||||
17 PEFILTER49 0000004e 0000000000000000 0000000000000000 000002c4 2**0 CONTENTS, RELOC, READONLY
|
||||
18 PEIMPORT 00000034 0000000000000000 0000000000000000 00000312 2**0 CONTENTS, RELOC, READONLY
|
||||
19 PEIBYORD 00000002 0000000000000000 0000000000000000 00000346 2**0 CONTENTS, RELOC, READONLY
|
||||
20 PEK32ORD 00000012 0000000000000000 0000000000000000 00000348 2**0 CONTENTS, RELOC, READONLY
|
||||
21 PEIMORD1 0000000a 0000000000000000 0000000000000000 0000035a 2**0 CONTENTS, RELOC, READONLY
|
||||
22 PEIMPOR2 00000021 0000000000000000 0000000000000000 00000364 2**0 CONTENTS, RELOC, READONLY
|
||||
23 PEIERDLL 0000000b 0000000000000000 0000000000000000 00000385 2**0 CONTENTS, READONLY
|
||||
24 PEIEREXE 00000006 0000000000000000 0000000000000000 00000390 2**0 CONTENTS, RELOC, READONLY
|
||||
25 PEIMDONE 00000004 0000000000000000 0000000000000000 00000396 2**0 CONTENTS, READONLY
|
||||
26 PERELOC1 00000007 0000000000000000 0000000000000000 0000039a 2**0 CONTENTS, RELOC, READONLY
|
||||
27 PERELOC2 00000004 0000000000000000 0000000000000000 000003a1 2**0 CONTENTS, READONLY
|
||||
28 PERELOC3 00000030 0000000000000000 0000000000000000 000003a5 2**0 CONTENTS, RELOC, READONLY
|
||||
29 REL64BIG 0000000a 0000000000000000 0000000000000000 000003d5 2**0 CONTENTS, RELOC, READONLY
|
||||
30 RELOC64J 00000002 0000000000000000 0000000000000000 000003df 2**0 CONTENTS, RELOC, READONLY
|
||||
31 PERLOHI0 0000000a 0000000000000000 0000000000000000 000003e1 2**0 CONTENTS, RELOC, READONLY
|
||||
32 PERELLO0 0000000b 0000000000000000 0000000000000000 000003eb 2**0 CONTENTS, READONLY
|
||||
33 PERELHI0 0000000e 0000000000000000 0000000000000000 000003f6 2**0 CONTENTS, READONLY
|
||||
34 PEDEPHAK 0000004b 0000000000000000 0000000000000000 00000404 2**0 CONTENTS, RELOC, READONLY
|
||||
35 PETLSC 0000001b 0000000000000000 0000000000000000 0000044f 2**0 CONTENTS, RELOC, READONLY
|
||||
36 PEMAIN20 00000004 0000000000000000 0000000000000000 0000046a 2**0 CONTENTS, READONLY
|
||||
37 CLEARSTACK 00000010 0000000000000000 0000000000000000 0000046e 2**0 CONTENTS, READONLY
|
||||
38 PEMAIN21 00000000 0000000000000000 0000000000000000 0000047e 2**0 CONTENTS, READONLY
|
||||
39 PEISDLL9 0000000f 0000000000000000 0000000000000000 0000047e 2**0 CONTENTS, READONLY
|
||||
40 PERETURN 00000004 0000000000000000 0000000000000000 0000048d 2**0 CONTENTS, READONLY
|
||||
41 PEDOJUMP 00000005 0000000000000000 0000000000000000 00000491 2**0 CONTENTS, RELOC, READONLY
|
||||
42 PETLSC2 00000028 0000000000000000 0000000000000000 00000496 2**0 CONTENTS, RELOC, READONLY
|
||||
43 UPX1HEAD 00000020 0000000000000000 0000000000000000 000004be 2**0 CONTENTS, READONLY
|
||||
SYMBOL TABLE:
|
||||
0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD
|
||||
0000000000000000 l d PEMAIN10 0000000000000000 PEMAIN10
|
||||
@@ -65,6 +67,8 @@ SYMBOL TABLE:
|
||||
0000000000000000 l d PETLSHAK 0000000000000000 PETLSHAK
|
||||
0000000000000000 l d PEMAIN02 0000000000000000 PEMAIN02
|
||||
0000000000000000 l d PEMAIN03 0000000000000000 PEMAIN03
|
||||
0000000000000000 l d NRV2B 0000000000000000 NRV2B
|
||||
0000000000000000 l d NRV2D 0000000000000000 NRV2D
|
||||
0000000000000000 l d NRV2E 0000000000000000 NRV2E
|
||||
0000000000000000 l d PETLSHAK2 0000000000000000 PETLSHAK2
|
||||
0000000000000000 l d PECTTPOS 0000000000000000 PECTTPOS
|
||||
@@ -142,6 +146,16 @@ OFFSET TYPE VALUE
|
||||
0000000000000003 R_X86_64_32S tls_address
|
||||
000000000000000b R_X86_64_32 tls_value+0x0000000080000000
|
||||
|
||||
RELOCATION RECORDS FOR [NRV2B]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000081 R_X86_64_PC32 NRV_HEAD+0x000000000000001b
|
||||
0000000000000049 R_X86_64_PC32 PEMAIN10+0xfffffffffffffffc
|
||||
|
||||
RELOCATION RECORDS FOR [NRV2D]:
|
||||
OFFSET TYPE VALUE
|
||||
000000000000008c R_X86_64_PC32 NRV_HEAD+0x000000000000001b
|
||||
0000000000000052 R_X86_64_PC32 PEMAIN10+0xfffffffffffffffc
|
||||
|
||||
RELOCATION RECORDS FOR [NRV2E]:
|
||||
OFFSET TYPE VALUE
|
||||
00000000000000a5 R_X86_64_PC32 NRV_HEAD+0x000000000000001b
|
||||
|
||||
Reference in New Issue
Block a user