Upx_Doxygen
https://github.com/upx/upx
p_armpe.h
1
/* p_armpe.h --
2
3
This file is part of the UPX executable compressor.
4
5
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
6
Copyright (C) 1996-2016 Laszlo Molnar
7
All Rights Reserved.
8
9
UPX and the UCL library are free software; you can redistribute them
10
and/or modify them under the terms of the GNU General Public License as
11
published by the Free Software Foundation; either version 2 of
12
the License, or (at your option) any later version.
13
14
This program is distributed in the hope that it will be useful,
15
but WITHOUT ANY WARRANTY; without even the implied warranty of
16
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
GNU General Public License for more details.
18
19
You should have received a copy of the GNU General Public License
20
along with this program; see the file COPYING.
21
If not, write to the Free Software Foundation, Inc.,
22
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23
24
Markus F.X.J. Oberhumer Laszlo Molnar
25
<markus@oberhumer.com> <ezerotven+github@gmail.com>
26
*/
27
28
29
#ifndef __UPX_P_ARMPE_H
30
#define __UPX_P_ARMPE_H 1
31
32
33
/*************************************************************************
34
// arm/pe
35
**************************************************************************/
36
37
class
PackArmPe
:
public
PeFile32
38
{
39
typedef
PeFile32
super
;
40
41
public
:
42
PackArmPe
(
InputFile
*f);
43
virtual
~
PackArmPe
();
44
virtual
int
getFormat()
const
{
return
UPX_F_WINCE_ARM_PE; }
45
virtual
const
char
*getName()
const
{
return
"arm/pe"
; }
46
virtual
const
char
*getFullName(
const
options_t
*)
const
{
return
"arm-wince.pe"
; }
47
virtual
const
int
*getCompressionMethods(
int
method,
int
level)
const
;
48
virtual
const
int
*getFilters()
const
;
49
virtual
void
defineFilterSymbols(
const
Filter
*) {}
50
51
virtual
bool
handleForceOption();
52
virtual
void
callCompressWithFilters(
Filter
&,
int
filter_strategy,
53
unsigned
ih_codebase);
54
virtual
void
defineSymbols(
unsigned
ncsection,
unsigned
upxsection,
55
unsigned
sizeof_oh,
unsigned
isize_isplit,
56
Reloc
&rel,
unsigned
s1addr);
57
virtual
void
addNewRelocations(
Reloc
&,
unsigned
upxsection);
58
virtual
unsigned
getProcessImportParam(
unsigned
upxsection);
59
virtual
void
setOhDataBase(
const
pe_section_t *osection);
60
virtual
void
setOhHeaderSize(
const
pe_section_t *osection);
61
virtual
void
pack(
OutputFile
*fo);
62
63
virtual
bool
canPack();
64
65
protected
:
66
virtual
void
buildLoader(
const
Filter
*ft);
67
virtual
Linker
* newLinker()
const
;
68
69
virtual
const
char
*kernelDll()
const
{
return
"COREDLL.dll"
; }
70
virtual
void
processImports2(
unsigned
,
unsigned
);
71
virtual
void
addStubImports();
72
73
virtual
void
processTls(
Interval
*);
74
75
bool
use_thumb_stub;
76
};
77
78
79
#endif
/* already included */
80
81
/* vim:set ts=4 sw=4 et: */
PeFile32
Definition:
pefile.h:417
PeFile::Reloc
Definition:
pefile.h:303
ElfLinker
Definition:
linker.h:35
options_t
Definition:
options.h:45
InputFile
Definition:
file.h:89
PeFile::Interval
Definition:
pefile.h:275
OutputFile
Definition:
file.h:121
Filter
Definition:
filter.h:53
PackArmPe
Definition:
p_armpe.h:37
Generated by
1.8.13