Compare commits

..

40 Commits

Author SHA1 Message Date
Markus F.X.J. Oberhumer 6766b14415 Prepare release. 2013-09-30 14:21:37 +02:00
John Reiser 9d0f9e967f Avoid stmdb with write-back register in stored list,
even when stored value is don't care.
2013-09-21 09:52:21 -07:00
John Reiser d7609088e5 Silence "warning: cannot find entry symbol _start" 2013-09-21 08:39:15 -07:00
Markus F.X.J. Oberhumer b2643b6926 Start using the new intergral type names. 2013-09-20 08:19:18 +02:00
Markus F.X.J. Oberhumer 07b65ca069 Introduce integral type names using <stdint.h> terminology like "upx_uint64_t". 2013-09-20 08:16:37 +02:00
Markus F.X.J. Oberhumer 25727f7f99 Minor portability fixes. 2013-09-20 07:48:29 +02:00
Markus F.X.J. Oberhumer 880ae89307 Bump version and tentative release date. 2013-09-20 07:19:06 +02:00
Markus F.X.J. Oberhumer 1496df1989 New ACC version. 2013-09-20 07:09:35 +02:00
Markus F.X.J. Oberhumer 7d8ae6b4b1 Make amd64-win64.pep.S compile with current upx stubtools. 2013-09-20 07:08:09 +02:00
Markus F.X.J. Oberhumer 312d4cccaf stub: start using stubtools bin-upx-20130920. 2013-09-20 06:59:27 +02:00
Markus F.X.J. Oberhumer ce5f9f95ea stub: fix i386 syntax for current gas versions, and add some explicit
alignments at the end of the file so that we do not depend on gas defaults.
2013-09-20 06:15:46 +02:00
Markus F.X.J. Oberhumer d9bf8a76d9 Protect against changes from future gas versions in amd64-linux.elf-entry.S. 2013-09-20 05:22:05 +02:00
Markus F.X.J. Oberhumer f7a35fb9fe stub: save 1 byte in amd64-darwin.{dylib,macho}-entry.S. 2013-09-20 04:20:23 +02:00
Markus F.X.J. Oberhumer 3ba691ded5 Remove trailing whitespace. 2013-09-20 03:25:59 +02:00
Markus F.X.J. Oberhumer 7a7277d56f Use correct "movzwl" opcode in src/stub/src/arch/i386/macros.S. 2013-09-20 03:18:19 +02:00
László Molnár 76be5dd1d3 linker: Section::offset should be u64 2013-09-01 21:38:44 +02:00
László Molnár 53dc63f3bc linker: a small 64-bit relocation support related fix 2013-09-01 11:15:30 +02:00
László Molnár 80da0bc9d5 pepfile: infoWarning about unsupported relocation types fixed 2013-08-28 22:33:39 +02:00
László Molnár bce7af4e11 fixed 8 bit range checking in ElfLinkerAMD64::relocate1 2013-08-28 22:31:40 +02:00
László Molnár 9da09b51ed win64/pe: tls callback assembly improvements + misc cleanups 2013-08-28 21:53:23 +02:00
László Molnár 86392f197f win64/pe: lzma support added 2013-08-28 00:24:54 +02:00
László Molnár 1c13046297 win64/pe: added nrv2b and nrv2d support 2013-08-27 22:06:52 +02:00
László Molnár fbc756b531 win64/pe: filter support added 2013-08-27 21:22:21 +02:00
László Molnár 6c64b06453 win64/pe: uncompression seems to work; tls handling improvement 2013-08-26 22:07:55 +02:00
László Molnár 241834029a 64 relocation handling added; basic DLL support works 2013-08-25 23:54:13 +02:00
László Molnár 5b8a9c0b47 basic win64 PE support added 2013-08-22 22:01:09 +02:00
László Molnár 037c29d24a added full support for 64-bit relocations 2013-08-22 21:43:11 +02:00
László Molnár 893f26ac9a fix wcle fixup unpacking segfault (sf.net bug 220) 2013-08-19 13:39:44 +02:00
John Reiser d43f8e3100 Alignment bug in test or decompress of shared library;
sourceforge.net/p/upx/bugs/218/
2013-07-06 13:50:15 -07:00
John Reiser 2b42acf7b8 ARM heuristic dcache flush by sweeping 1/2 MB 2013-06-10 14:20:59 -07:00
John Reiser f65b80ed42 ARM remember readlink("/proc/self/exe",) as environment variable " =" (3 spaces) 2013-06-09 20:33:59 -07:00
John Reiser e84abbdc82 ARM __clear_cache() has bugs
Linux hostname 3.0.8-482645-user #1 SMP PREEMPT Mon Apr 30 19:43:45 KST 2012 armv7l GNU/Linux
  Processor	: ARMv7 Processor rev 3 (v7l)

  processor	: 0
  BogoMIPS	: 597.12

  processor	: 1
  BogoMIPS	: 597.12

  CPU implementer	: 0x41
  CPU architecture: 7
  CPU variant	: 0x1
  CPU part	: 0xc09
  CPU revision	: 3

  Hardware	: Espresso10
  Revision	: 000a
2013-06-09 13:03:06 -07:00
John Reiser 66269eabe9 ARM Try a hole so that kernel does not extend brk(0) 2013-06-08 08:39:08 -07:00
John Reiser 36c0928483 ARM __clear_cache() on escape hatch; http://sourceforge.net/p/upx/bugs/214/ 2013-06-07 07:08:03 -07:00
John Reiser 9237e15adc Fix ARM compress shared library. 2013-05-10 16:20:52 -07:00
Markus F.X.J. Oberhumer 0d3a2072b2 Add some more sanity checks in pefile.cpp. 2013-04-04 14:30:52 +02:00
Markus F.X.J. Oberhumer aa2ee5dfc2 New ACC version. 2013-03-20 16:48:27 +00:00
John Reiser b515fa39ec Apple codesign follies: need more flags 2013-03-07 19:47:44 -08:00
Markus F.X.J. Oberhumer 76e3f4eb92 Post-release version bump. 2013-02-20 13:50:12 +01:00
Markus F.X.J. Oberhumer 4959e5c6c2 Add tag for RELEASE_309. 2013-02-18 16:09:00 +00:00
86 changed files with 10218 additions and 3810 deletions
+1
View File
@@ -10,6 +10,7 @@ syntax: glob
.depend
*.qtcreator.{config,creator,creator.user,files,includes}
*.sublime-{project,workspace}
Makevars.local
*.a
+1
View File
@@ -18,6 +18,7 @@ b82ef51896199484afe5b0553af7d1e59b7ce428 BRANCHPOINT_FOR_upx2.hg
c2e0cd4d621b047f254f2def42132a03683ff52c RELEASE_192
c9a983b7da9d4a2311f74366478348412cac2986 RELEASE_305
d276aa09033c24d0981bc3f4fee5628aecc988ad RELEASE_290
d3989a12c70b0921ff0f7e5e485b398eb12a73b3 RELEASE_309
eb1ce56dce7dd1835964362470610925963b9043 RELEASE_110
ed96891ef795bceec6b7ff3ca1ca7764431bfb39 RELEASE_191
ef9c7f2c9658d73a9b5ab2ed291483d2bbcd8bc7 RELEASE_300
+7
View File
@@ -2,6 +2,13 @@
User visible changes for UPX
==================================================================
Changes in 3.91 (30 Sep 2013):
* Added experimental support for Windows 64-bit PE files, based on
work by Stefan Widmann. Please use for testing only!
* bug fixes
==================================================================
Changes in 3.09 (18 Feb 2013):
* New option --preserve-build-id for GNU ELF.
* Allow for code signing and LC_UUID on Mac OS X executables.
+43 -43
View File
@@ -88,7 +88,7 @@ inline void set_be32(void *p, unsigned v)
#endif
}
inline acc_uint64l_t get_be64(const void *p)
inline upx_uint64_t get_be64(const void *p)
{
#if defined(ACC_UA_GET_BE64)
return ACC_UA_GET_BE64(p);
@@ -97,7 +97,7 @@ inline acc_uint64l_t get_be64(const void *p)
#endif
}
inline void set_be64(void *p, acc_uint64l_t v)
inline void set_be64(void *p, upx_uint64_t v)
{
#if defined(ACC_UA_SET_BE64)
ACC_UA_SET_BE64(p, v);
@@ -160,7 +160,7 @@ inline void set_le32(void *p, unsigned v)
#endif
}
inline acc_uint64l_t get_le64(const void *p)
inline upx_uint64_t get_le64(const void *p)
{
#if defined(ACC_UA_GET_LE64)
return ACC_UA_GET_LE64(p);
@@ -169,7 +169,7 @@ inline acc_uint64l_t get_le64(const void *p)
#endif
}
inline void set_le64(void *p, acc_uint64l_t v)
inline void set_le64(void *p, upx_uint64_t v)
{
#if defined(ACC_UA_SET_LE64)
ACC_UA_SET_LE64(p, v);
@@ -192,13 +192,13 @@ inline int sign_extend(unsigned v, unsigned bits)
return (int) v;
}
inline acc_int64l_t sign_extend(acc_uint64l_t v, unsigned bits)
inline upx_int64_t sign_extend(upx_uint64_t v, unsigned bits)
{
const acc_uint64l_t sign_bit = ACC_UINT64_C(1) << (bits - 1);
const upx_uint64_t sign_bit = UPX_UINT64_C(1) << (bits - 1);
v &= sign_bit | (sign_bit - 1);
//v = (v ^ sign_bit) - sign_bit;
v |= 0 - (v & sign_bit);
return (acc_int64l_t) v;
return (upx_int64_t) v;
}
inline int get_be16_signed(const void *p)
@@ -219,9 +219,9 @@ inline int get_be32_signed(const void *p)
return sign_extend(v, 32);
}
inline acc_int64l_t get_be64_signed(const void *p)
inline upx_int64_t get_be64_signed(const void *p)
{
acc_uint64l_t v = get_be64(p);
upx_uint64_t v = get_be64(p);
return sign_extend(v, 64);
}
@@ -243,9 +243,9 @@ inline int get_le32_signed(const void *p)
return sign_extend(v, 32);
}
inline acc_int64l_t get_le64_signed(const void *p)
inline upx_int64_t get_le64_signed(const void *p)
{
acc_uint64l_t v = get_le64(p);
upx_uint64_t v = get_le64(p);
return sign_extend(v, 64);
}
@@ -269,25 +269,25 @@ inline unsigned acc_swab32(unsigned v)
}
inline unsigned acc_swab16p(const acc_uint16e_t *p)
inline unsigned acc_swab16p(const upx_uint16_t *p)
{
return acc_swab16(*p);
}
inline unsigned acc_swap32p(const acc_uint32e_t *p)
inline unsigned acc_swap32p(const upx_uint32_t *p)
{
return acc_swab32(*p);
}
inline void acc_swab16s(acc_uint16e_t *p)
inline void acc_swab16s(upx_uint16_t *p)
{
*p = (acc_uint16e_t) acc_swab16(*p);
*p = (upx_uint16_t) acc_swab16(*p);
}
inline void acc_swab32s(acc_uint32e_t *p)
inline void acc_swab32s(upx_uint32_t *p)
{
*p = (acc_uint32e_t) acc_swab32(*p);
*p = (upx_uint32_t) acc_swab32(*p);
}
@@ -359,20 +359,20 @@ __packed_struct(BE64)
unsigned char d[8];
//inline BE64() { }
//BE64(acc_uint64l_t v) { set_be64(d, v); }
//BE64(upx_uint64_t v) { set_be64(d, v); }
BE64& operator = (acc_uint64l_t v) { set_be64(d, v); return *this; }
BE64& operator += (acc_uint64l_t v) { set_be64(d, get_be64(d) + v); return *this; }
BE64& operator -= (acc_uint64l_t v) { set_be64(d, get_be64(d) - v); return *this; }
BE64& operator *= (acc_uint64l_t v) { set_be64(d, get_be64(d) * v); return *this; }
BE64& operator /= (acc_uint64l_t v) { set_be64(d, get_be64(d) / v); return *this; }
BE64& operator &= (acc_uint64l_t v) { set_be64(d, get_be64(d) & v); return *this; }
BE64& operator |= (acc_uint64l_t v) { set_be64(d, get_be64(d) | v); return *this; }
BE64& operator ^= (acc_uint64l_t v) { set_be64(d, get_be64(d) ^ v); return *this; }
BE64& operator = (upx_uint64_t v) { set_be64(d, v); return *this; }
BE64& operator += (upx_uint64_t v) { set_be64(d, get_be64(d) + v); return *this; }
BE64& operator -= (upx_uint64_t v) { set_be64(d, get_be64(d) - v); return *this; }
BE64& operator *= (upx_uint64_t v) { set_be64(d, get_be64(d) * v); return *this; }
BE64& operator /= (upx_uint64_t v) { set_be64(d, get_be64(d) / v); return *this; }
BE64& operator &= (upx_uint64_t v) { set_be64(d, get_be64(d) & v); return *this; }
BE64& operator |= (upx_uint64_t v) { set_be64(d, get_be64(d) | v); return *this; }
BE64& operator ^= (upx_uint64_t v) { set_be64(d, get_be64(d) ^ v); return *this; }
BE64& operator <<= (unsigned v) { set_be64(d, get_be64(d) << v); return *this; }
BE64& operator >>= (unsigned v) { set_be64(d, get_be64(d) >> v); return *this; }
operator acc_uint64l_t () const { return get_be64(d); }
operator upx_uint64_t () const { return get_be64(d); }
__packed_struct_end()
@@ -422,20 +422,20 @@ __packed_struct(LE64)
unsigned char d[8];
//inline LE64() { }
//LE64(acc_uint64l_t v) { set_le64(d, v); }
//LE64(upx_uint64_t v) { set_le64(d, v); }
LE64& operator = (acc_uint64l_t v) { set_le64(d, v); return *this; }
LE64& operator += (acc_uint64l_t v) { set_le64(d, get_le64(d) + v); return *this; }
LE64& operator -= (acc_uint64l_t v) { set_le64(d, get_le64(d) - v); return *this; }
LE64& operator *= (acc_uint64l_t v) { set_le64(d, get_le64(d) * v); return *this; }
LE64& operator /= (acc_uint64l_t v) { set_le64(d, get_le64(d) / v); return *this; }
LE64& operator &= (acc_uint64l_t v) { set_le64(d, get_le64(d) & v); return *this; }
LE64& operator |= (acc_uint64l_t v) { set_le64(d, get_le64(d) | v); return *this; }
LE64& operator ^= (acc_uint64l_t v) { set_le64(d, get_le64(d) ^ v); return *this; }
LE64& operator = (upx_uint64_t v) { set_le64(d, v); return *this; }
LE64& operator += (upx_uint64_t v) { set_le64(d, get_le64(d) + v); return *this; }
LE64& operator -= (upx_uint64_t v) { set_le64(d, get_le64(d) - v); return *this; }
LE64& operator *= (upx_uint64_t v) { set_le64(d, get_le64(d) * v); return *this; }
LE64& operator /= (upx_uint64_t v) { set_le64(d, get_le64(d) / v); return *this; }
LE64& operator &= (upx_uint64_t v) { set_le64(d, get_le64(d) & v); return *this; }
LE64& operator |= (upx_uint64_t v) { set_le64(d, get_le64(d) | v); return *this; }
LE64& operator ^= (upx_uint64_t v) { set_le64(d, get_le64(d) ^ v); return *this; }
LE64& operator <<= (unsigned v) { set_le64(d, get_le64(d) << v); return *this; }
LE64& operator >>= (unsigned v) { set_le64(d, get_le64(d) >> v); return *this; }
operator acc_uint64l_t () const { return get_le64(d); }
operator upx_uint64_t () const { return get_le64(d); }
__packed_struct_end()
@@ -545,8 +545,8 @@ int __acc_cdecl_qsort le64_compare_signed(const void *, const void *);
// just for testing...
#if !(ACC_CFG_NO_UNALIGNED)
#if 0 && (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_CC_GNUC >= 0x030200)
typedef acc_uint16e_t LE16_unaligned __attribute__((__aligned__(1)));
typedef acc_uint32e_t LE32_unaligned __attribute__((__aligned__(1)));
typedef upx_uint16_t LE16_unaligned __attribute__((__aligned__(1)));
typedef upx_uint32_t LE32_unaligned __attribute__((__aligned__(1)));
# ifndef LE16
# define LE16 LE16_unaligned
# endif
@@ -555,8 +555,8 @@ int __acc_cdecl_qsort le64_compare_signed(const void *, const void *);
# endif
#endif
#if 0 && (ACC_ARCH_I386) && (ACC_CC_INTELC)
typedef __declspec(align(1)) acc_uint16e_t LE16_unaligned;
typedef __declspec(align(1)) acc_uint32e_t LE32_unaligned;
typedef __declspec(align(1)) upx_uint16_t LE16_unaligned;
typedef __declspec(align(1)) upx_uint32_t LE32_unaligned;
# ifndef LE16
# define LE16 LE16_unaligned
# endif
@@ -565,8 +565,8 @@ int __acc_cdecl_qsort le64_compare_signed(const void *, const void *);
# endif
#endif
#if 0 && (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_CC_MSC) && (_MSC_VER >= 1200)
typedef __declspec(align(1)) acc_uint16e_t LE16_unaligned;
typedef __declspec(align(1)) acc_uint32e_t LE32_unaligned;
typedef __declspec(align(1)) upx_uint16_t LE16_unaligned;
typedef __declspec(align(1)) upx_uint32_t LE32_unaligned;
# ifndef LE16
# define LE16 LE16_unaligned
# endif
+12 -12
View File
@@ -61,17 +61,17 @@ struct AbstractPolicy
V unsigned get16(const void *p) C = 0;
V unsigned get24(const void *p) C = 0;
V unsigned get32(const void *p) C = 0;
V acc_uint64l_t get64(const void *p) C = 0;
V upx_uint64_t get64(const void *p) C = 0;
V void set16(void *p, unsigned v) C = 0;
V void set24(void *p, unsigned v) C = 0;
V void set32(void *p, unsigned v) C = 0;
V void set64(void *p, acc_uint64l_t v) C = 0;
V void set64(void *p, upx_uint64_t v) C = 0;
V unsigned get16_signed(const void *p) C = 0;
V unsigned get24_signed(const void *p) C = 0;
V unsigned get32_signed(const void *p) C = 0;
V acc_uint64l_t get64_signed(const void *p) C = 0;
V upx_uint64_t get64_signed(const void *p) C = 0;
S u16_compare(const void *a, const void *b) C = 0;
S u24_compare(const void *a, const void *b) C = 0;
@@ -113,7 +113,7 @@ struct BEPolicy
{ return get_be24(p); }
V unsigned get32(const void *p) C
{ return get_be32(p); }
V acc_uint64l_t get64(const void *p) C
V upx_uint64_t get64(const void *p) C
{ return get_be64(p); }
V void set16(void *p, unsigned v) C
@@ -122,7 +122,7 @@ struct BEPolicy
{ set_be24(p, v); }
V void set32(void *p, unsigned v) C
{ set_be32(p, v); }
V void set64(void *p, acc_uint64l_t v) C
V void set64(void *p, upx_uint64_t v) C
{ set_be64(p, v); }
V unsigned get16_signed(const void *p) C
@@ -131,7 +131,7 @@ struct BEPolicy
{ return get_be24_signed(p); }
V unsigned get32_signed(const void *p) C
{ return get_be32_signed(p); }
V acc_uint64l_t get64_signed(const void *p) C
V upx_uint64_t get64_signed(const void *p) C
{ return get_be64_signed(p); }
S u16_compare(const void *a, const void *b) C
@@ -190,7 +190,7 @@ struct LEPolicy
{ return get_le24(p); }
V unsigned get32(const void *p) C
{ return get_le32(p); }
V acc_uint64l_t get64(const void *p) C
V upx_uint64_t get64(const void *p) C
{ return get_le64(p); }
V void set16(void *p, unsigned v) C
@@ -199,7 +199,7 @@ struct LEPolicy
{ set_le24(p, v); }
V void set32(void *p, unsigned v) C
{ set_le32(p, v); }
V void set64(void *p, acc_uint64l_t v) C
V void set64(void *p, upx_uint64_t v) C
{ set_le64(p, v); }
V unsigned get16_signed(const void *p) C
@@ -208,7 +208,7 @@ struct LEPolicy
{ return get_le24_signed(p); }
V unsigned get32_signed(const void *p) C
{ return get_le32_signed(p); }
V acc_uint64l_t get64_signed(const void *p) C
V upx_uint64_t get64_signed(const void *p) C
{ return get_le64_signed(p); }
S u16_compare(const void *a, const void *b) C
@@ -259,9 +259,9 @@ struct HostAlignedPolicy
enum { isBE = HostPolicy::isBE, isLE = HostPolicy::isLE };
#endif
typedef acc_uint16e_t U16;
typedef acc_uint32e_t U32;
typedef acc_uint64l_t U64;
typedef upx_uint16_t U16;
typedef upx_uint32_t U32;
typedef upx_uint64_t U64;
static void compileTimeAssertions() {
COMPILE_TIME_ASSERT(sizeof(U16) == 2)
+2 -1
View File
@@ -230,6 +230,7 @@ error:
**************************************************************************/
#if (WITH_LZMA >= 0x461)
#define _7ZIP_ST 1
#define kLiteralNextStates kLiteralNextStates_enc
#include "C/LzmaEnc.h"
#include "C/LzmaEnc.c"
@@ -415,7 +416,7 @@ STDMETHODIMP ProgressInfo::SetRatioInfo(const UInt64 *inSize, const UInt64 *outS
} // namespace
#if (ACC_CC_INTELC) && defined(__linux__)
#if (ACC_CC_INTELC_GNUC)
# pragma warning(disable: 424) // #424: extra ";" ignored
#endif
+20 -1
View File
@@ -149,6 +149,23 @@
# endif
#endif
/* intergral types */
typedef acc_int8_t upx_int8_t;
typedef acc_uint8_t upx_uint8_t;
typedef acc_int16_t upx_int16_t;
typedef acc_uint16_t upx_uint16_t;
typedef acc_int32_t upx_int32_t;
typedef acc_uint32_t upx_uint32_t;
typedef acc_int64_t upx_int64_t;
typedef acc_uint64_t upx_uint64_t;
typedef acc_uintptr_t upx_uintptr_t;
#define UPX_INT16_C ACC_INT16_C
#define UPX_UINT16_C ACC_UINT16_C
#define UPX_INT32_C ACC_INT32_C
#define UPX_UINT32_C ACC_UINT32_C
#define UPX_INT64_C ACC_INT64_C
#define UPX_UINT64_C ACC_UINT64_C
/*************************************************************************
//
@@ -321,7 +338,7 @@
#if (ACC_CC_INTELC && (__INTEL_COMPILER < 800))
#elif (0 && (ACC_ARCH_AMD64 || ACC_ARCH_I386))
#elif (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE)
#elif (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_INTELC_GNUC || ACC_CC_PATHSCALE)
# define __packed_struct(s) struct s {
# define __packed_struct_end() } __attribute__((__packed__,__aligned__(1)));
#elif (ACC_CC_WATCOMC)
@@ -487,6 +504,8 @@ private:
#define UPX_F_MACH_AMD64 34
#define UPX_F_DYLIB_AMD64 35
#define UPX_F_WIN64_PEP 36
#define UPX_F_PLAIN_TEXT 127
#define UPX_F_ATARI_TOS 129
+4 -4
View File
@@ -33,7 +33,7 @@
//
**************************************************************************/
long Throwable::counter = 0;
unsigned long Throwable::counter = 0;
Throwable::Throwable(const char *m, int e, bool w) NOTHROW
: super(), msg(NULL), err(e), is_warning(w)
@@ -41,7 +41,7 @@ Throwable::Throwable(const char *m, int e, bool w) NOTHROW
if (m)
msg = strdup(m);
#if 0
fprintf(stderr, "construct exception: %s %ld\n", msg, counter);
fprintf(stderr, "construct exception: %s %lu\n", msg, counter);
counter++;
#endif
}
@@ -53,7 +53,7 @@ Throwable::Throwable(const Throwable &other) NOTHROW
if (other.msg)
msg = strdup(other.msg);
#if 0
fprintf(stderr, "copy exception: %s %ld\n", msg, counter);
fprintf(stderr, "copy exception: %s %lu\n", msg, counter);
counter++;
#endif
}
@@ -63,7 +63,7 @@ Throwable::~Throwable() NOTHROW
{
#if 0
counter--;
fprintf(stderr, "destruct exception: %s %ld\n", msg, counter);
fprintf(stderr, "destruct exception: %s %lu\n", msg, counter);
#endif
if (msg)
free(msg);
+1 -1
View File
@@ -62,7 +62,7 @@ private:
DISABLE_NEW_DELETE
private:
static long counter; // for debugging
static unsigned long counter; // for debugging
};
+45 -37
View File
@@ -84,7 +84,7 @@ ElfLinker::Section::~Section()
// Symbol
**************************************************************************/
ElfLinker::Symbol::Symbol(const char *n, Section *s, unsigned o) :
ElfLinker::Symbol::Symbol(const char *n, Section *s, upx_uint64_t o) :
name(NULL), section(s), offset(o)
{
name = strdup(n);
@@ -103,7 +103,7 @@ ElfLinker::Symbol::~Symbol()
**************************************************************************/
ElfLinker::Relocation::Relocation(const Section *s, unsigned o, const char *t,
const Symbol *v, unsigned a) :
const Symbol *v, upx_uint64_t a) :
section(s), offset(o), type(t), value(v), add(a)
{
assert(section != NULL);
@@ -294,29 +294,28 @@ void ElfLinker::preprocessRelocations(char *start, char *end)
char *t = strstr(start, type);
t[strlen(type)] = 0;
unsigned add = 0;
if (char *p = strstr(symbol, "+0x"))
upx_uint64_t add = 0;
char *p = strstr(symbol, "+0x");
if (p == NULL)
p = strstr(symbol, "-0x");
if (p)
{
char sign = *p;
*p = 0; // terminate the symbol name
p += 3;
if (strlen(p) == 16) {
// skip 8 leading chars if sign of char 9 matches
if (memcmp(p, "000000000", 9))
p += 8;
else if (memcmp(p, "fffffffff", 9))
p += 8;
}
assert(strlen(p) == 8);
assert(strlen(p) == 8 || strlen(p) == 16);
char *endptr = NULL;
unsigned long ul = strtoul(p, &endptr, 16);
add = (unsigned) ul;
assert(add == ul);
upx_uint64_t ull = strtoull(p, &endptr, 16);
add = (upx_uint64_t) ull;
assert(add == ull);
assert(endptr && *endptr == '\0');
if (sign == '-')
add = -add;
}
addRelocation(section->name, offset, t, symbol, add);
//printf("relocation %s %s %x %d preprocessed\n", section->name, symbol, offset, add);
//printf("relocation %s %s %x %llu preprocessed\n", section->name, symbol, offset, (unsigned long long) add);
}
start = nextl + 1;
@@ -357,7 +356,7 @@ ElfLinker::Section *ElfLinker::addSection(const char *sname, const void *sdata,
}
ElfLinker::Symbol *ElfLinker::addSymbol(const char *name, const char *section,
unsigned offset)
upx_uint64_t offset)
{
//printf("addSymbol: %s %s 0x%x\n", name, section, offset);
if (update_capacity(nsymbols, &nsymbols_capacity))
@@ -372,7 +371,7 @@ ElfLinker::Symbol *ElfLinker::addSymbol(const char *name, const char *section,
ElfLinker::Relocation *ElfLinker::addRelocation(const char *section, unsigned off,
const char *type, const char *symbol,
unsigned add)
upx_uint64_t add)
{
if (update_capacity(nrelocations, &nrelocations_capacity))
relocations = static_cast<Relocation **>(realloc(relocations, (nrelocations_capacity) * sizeof(Relocation *)));
@@ -498,7 +497,7 @@ void ElfLinker::relocate()
for (unsigned ic = 0; ic < nrelocations; ic++)
{
const Relocation *rel = relocations[ic];
unsigned value = 0;
upx_uint64_t value = 0;
if (rel->section->output == NULL)
continue;
@@ -519,13 +518,13 @@ void ElfLinker::relocate()
rel->value->offset + rel->add;
}
upx_byte *location = rel->section->output + rel->offset;
//printf("%-28s %-28s %-10s 0x%08x 0x%08x\n", rel->section->name, rel->value->name, rel->type, value, value - rel->section->offset - rel->offset);
//printf(" %d %d %d %d %d : %d\n", value, rel->value->section->offset, rel->value->offset, rel->offset, rel->add, *location);
//printf("%-28s %-28s %-10s 0x%16llx 0x%16llx\n", rel->section->name, rel->value->name, rel->type, (long long) value, (long long) value - rel->section->offset - rel->offset);
//printf(" %llx %d %llx %d %llx : %d\n", (long long) value, rel->value->section->offset, rel->value->offset, rel->offset, (long long) rel->add, *location);
relocate1(rel, location, value, rel->type);
}
}
void ElfLinker::defineSymbol(const char *name, unsigned value)
void ElfLinker::defineSymbol(const char *name, upx_uint64_t value)
{
Symbol *symbol = findSymbol(name);
if (strcmp(symbol->section->name, "*ABS*") == 0)
@@ -550,8 +549,11 @@ void ElfLinker::dumpSymbol(const Symbol *symbol, unsigned flags, FILE *fp) const
{
if ((flags & 1) && symbol->section->output == NULL)
return;
fprintf(fp, "%-28s 0x%08x | %-28s 0x%08x\n",
symbol->name, symbol->offset, symbol->section->name, symbol->section->offset);
char d0[16+1], d1[16+1];
upx_snprintf(d0, sizeof(d0), "%016llx", (upx_uint64_t) symbol->offset);
upx_snprintf(d1, sizeof(d1), "%016llx", (upx_uint64_t) symbol->section->offset);
fprintf(fp, "%-28s 0x%-16s | %-28s 0x%-16s\n",
symbol->name, d0, symbol->section->name, d1);
}
void ElfLinker::dumpSymbols(unsigned flags, FILE *fp) const
{
@@ -562,7 +564,9 @@ void ElfLinker::dumpSymbols(unsigned flags, FILE *fp) const
// default: dump symbols in used section order
for (const Section *section = head; section; section = section->next)
{
fprintf(fp, "%-42s%-28s 0x%08x\n", "", section->name, section->offset);
char d1[16+1];
upx_snprintf(d1, sizeof(d1), "%016llx", (upx_uint64_t) section->offset);
fprintf(fp, "%-42s%-28s 0x%-16s\n", "", section->name, d1);
for (unsigned ic = 0; ic < nsymbols; ic++)
{
const Symbol *symbol = symbols[ic];
@@ -579,7 +583,7 @@ void ElfLinker::dumpSymbols(unsigned flags, FILE *fp) const
}
}
unsigned ElfLinker::getSymbolOffset(const char *name) const
upx_uint64_t ElfLinker::getSymbolOffset(const char *name) const
{
const Symbol *symbol = findSymbol(name);
if (symbol->section->output == NULL)
@@ -594,7 +598,7 @@ void ElfLinker::alignWithByte(unsigned len, unsigned char b)
}
void ElfLinker::relocate1(const Relocation *rel, upx_byte *,
unsigned, const char *)
upx_uint64_t, const char *)
{
internal_error("unknown relocation type '%s\n", rel->type);
}
@@ -620,16 +624,18 @@ static void check8(const Relocation *rel, const upx_byte *location, int v, int d
void ElfLinkerAMD64::relocate1(const Relocation *rel, upx_byte *location,
unsigned value, const char *type)
upx_uint64_t value, const char *type)
{
if (strncmp(type, "R_X86_64_", 9))
return super::relocate1(rel, location, value, type);
type += 9;
bool range_check = false;
if (strncmp(type, "PC", 2) == 0)
{
value -= rel->section->offset + rel->offset;
type += 2;
range_check = true;
}
if (strcmp(type, "8") == 0)
@@ -639,22 +645,24 @@ void ElfLinkerAMD64::relocate1(const Relocation *rel, upx_byte *location,
#else
int displ = (signed char) *location + (int) value;
#endif
if (displ < -128 || displ > 127)
if (range_check && (displ < -128 || displ > 127))
internal_error("target out of range (%d) in reloc %s:%x\n",
displ, rel->section->name, rel->offset);
*location += value;
}
else if (strcmp(type, "16") == 0)
set_le16(location, get_le16(location) + value);
else if (strcmp(type, "32") == 0)
else if (strncmp(type, "32", 2) == 0) // for "32" and "32S"
set_le32(location, get_le32(location) + value);
else if (strcmp(type, "64") == 0)
set_le64(location, get_le64(location) + value);
else
super::relocate1(rel, location, value, type);
}
void ElfLinkerArmBE::relocate1(const Relocation *rel, upx_byte *location,
unsigned value, const char *type)
upx_uint64_t value, const char *type)
{
if (strcmp(type, "R_ARM_PC24") == 0)
{
@@ -689,7 +697,7 @@ void ElfLinkerArmBE::relocate1(const Relocation *rel, upx_byte *location,
void ElfLinkerArmLE::relocate1(const Relocation *rel, upx_byte *location,
unsigned value, const char *type)
upx_uint64_t value, const char *type)
{
if (strcmp(type, "R_ARM_PC24") == 0)
{
@@ -733,7 +741,7 @@ void ElfLinkerM68k::alignCode(unsigned len)
}
void ElfLinkerM68k::relocate1(const Relocation *rel, upx_byte *location,
unsigned value, const char *type)
upx_uint64_t value, const char *type)
{
if (strncmp(type, "R_68K_", 6))
return super::relocate1(rel, location, value, type);
@@ -759,7 +767,7 @@ void ElfLinkerM68k::relocate1(const Relocation *rel, upx_byte *location,
void ElfLinkerMipsBE::relocate1(const Relocation *rel, upx_byte *location,
unsigned value, const char *type)
upx_uint64_t value, const char *type)
{
#define MIPS_HI(a) (((a) >> 16) + (((a) & 0x8000) >> 15))
#define MIPS_LO(a) ((a) & 0xffff)
@@ -790,7 +798,7 @@ void ElfLinkerMipsBE::relocate1(const Relocation *rel, upx_byte *location,
void ElfLinkerMipsLE::relocate1(const Relocation *rel, upx_byte *location,
unsigned value, const char *type)
upx_uint64_t value, const char *type)
{
#define MIPS_HI(a) (((a) >> 16) + (((a) & 0x8000) >> 15))
#define MIPS_LO(a) ((a) & 0xffff)
@@ -821,7 +829,7 @@ void ElfLinkerMipsLE::relocate1(const Relocation *rel, upx_byte *location,
void ElfLinkerPpc32::relocate1(const Relocation *rel, upx_byte *location,
unsigned value, const char *type)
upx_uint64_t value, const char *type)
{
if (strncmp(type, "R_PPC_", 6))
return super::relocate1(rel, location, value, type);
@@ -862,7 +870,7 @@ void ElfLinkerPpc32::relocate1(const Relocation *rel, upx_byte *location,
void ElfLinkerX86::relocate1(const Relocation *rel, upx_byte *location,
unsigned value, const char *type)
upx_uint64_t value, const char *type)
{
if (strncmp(type, "R_386_", 6))
return super::relocate1(rel, location, value, type);
+24 -24
View File
@@ -72,9 +72,9 @@ protected:
Section *findSection(const char *name, bool fatal=true) const;
Symbol *findSymbol(const char *name, bool fatal=true) const;
Symbol *addSymbol(const char *name, const char *section, unsigned offset);
Symbol *addSymbol(const char *name, const char *section, upx_uint64_t offset);
Relocation *addRelocation(const char *section, unsigned off, const char *type,
const char *symbol, unsigned add);
const char *symbol, upx_uint64_t add);
public:
ElfLinker();
@@ -93,8 +93,8 @@ public:
virtual int getSection(const char *sname, int *slen=NULL) const;
virtual int getSectionSize(const char *sname) const;
virtual upx_byte *getLoader(int *llen=NULL) const;
virtual void defineSymbol(const char *name, unsigned value);
virtual unsigned getSymbolOffset(const char *) const;
virtual void defineSymbol(const char *name, upx_uint64_t value);
virtual upx_uint64_t getSymbolOffset(const char *) const;
virtual void dumpSymbol(const Symbol *, unsigned flags, FILE *fp) const;
virtual void dumpSymbols(unsigned flags=0, FILE *fp=NULL) const;
@@ -106,15 +106,15 @@ public:
protected:
virtual void relocate();
virtual void relocate1(const Relocation *, upx_byte *location,
unsigned value, const char *type);
upx_uint64_t value, const char *type);
// target endianness abstraction
unsigned get_te16(const void *p) const { return bele->get16(p); }
unsigned get_te32(const void *p) const { return bele->get32(p); }
acc_uint64l_t get_te64(const void *p) const { return bele->get64(p); }
void set_te16(void *p, unsigned v) const { bele->set16(p, v); }
void set_te32(void *p, unsigned v) const { bele->set32(p, v); }
void set_te64(void *p, acc_uint64l_t v) const { bele->set64(p, v); }
unsigned get_te16(const void *p) const { return bele->get16(p); }
unsigned get_te32(const void *p) const { return bele->get32(p); }
upx_uint64_t get_te64(const void *p) const { return bele->get64(p); }
void set_te16(void *p, unsigned v) const { bele->set16(p, v); }
void set_te32(void *p, unsigned v) const { bele->set32(p, v); }
void set_te64(void *p, upx_uint64_t v) const { bele->set64(p, v); }
};
@@ -124,7 +124,7 @@ struct ElfLinker::Section : private noncopyable
void *input;
upx_byte *output;
unsigned size;
unsigned offset;
upx_uint64_t offset;
unsigned p2align; // log2
Section *next;
@@ -137,9 +137,9 @@ struct ElfLinker::Symbol : private noncopyable
{
char *name;
Section *section;
unsigned offset;
upx_uint64_t offset;
Symbol(const char *n, Section *s, unsigned o);
Symbol(const char *n, Section *s, upx_uint64_t o);
~Symbol();
};
@@ -150,10 +150,10 @@ struct ElfLinker::Relocation : private noncopyable
unsigned offset;
const char *type;
const Symbol *value;
unsigned add; // used in .rela relocations
upx_uint64_t add; // used in .rela relocations
Relocation(const Section *s, unsigned o, const char *t,
const Symbol *v, unsigned a);
const Symbol *v, upx_uint64_t a);
};
@@ -167,7 +167,7 @@ class ElfLinkerAMD64 : public ElfLinker
protected:
virtual void alignCode(unsigned len) { alignWithByte(len, 0x90); }
virtual void relocate1(const Relocation *, upx_byte *location,
unsigned value, const char *type);
upx_uint64_t value, const char *type);
};
@@ -178,7 +178,7 @@ public:
ElfLinkerArmBE() { bele = &N_BELE_RTP::be_policy; }
protected:
virtual void relocate1(const Relocation *, upx_byte *location,
unsigned value, const char *type);
upx_uint64_t value, const char *type);
};
@@ -187,7 +187,7 @@ class ElfLinkerArmLE : public ElfLinker
typedef ElfLinker super;
protected:
virtual void relocate1(const Relocation *, upx_byte *location,
unsigned value, const char *type);
upx_uint64_t value, const char *type);
};
@@ -199,7 +199,7 @@ public:
protected:
virtual void alignCode(unsigned len);
virtual void relocate1(const Relocation *, upx_byte *location,
unsigned value, const char *type);
upx_uint64_t value, const char *type);
};
@@ -210,7 +210,7 @@ public:
ElfLinkerMipsBE() { bele = &N_BELE_RTP::be_policy; }
protected:
virtual void relocate1(const Relocation *, upx_byte *location,
unsigned value, const char *type);
upx_uint64_t value, const char *type);
};
@@ -219,7 +219,7 @@ class ElfLinkerMipsLE : public ElfLinker
typedef ElfLinker super;
protected:
virtual void relocate1(const Relocation *, upx_byte *location,
unsigned value, const char *type);
upx_uint64_t value, const char *type);
};
@@ -230,7 +230,7 @@ public:
ElfLinkerPpc32() { bele = &N_BELE_RTP::be_policy; }
protected:
virtual void relocate1(const Relocation *, upx_byte *location,
unsigned value, const char *type);
upx_uint64_t value, const char *type);
};
@@ -240,7 +240,7 @@ class ElfLinkerX86 : public ElfLinker
protected:
virtual void alignCode(unsigned len) { alignWithByte(len, 0x90); }
virtual void relocate1(const Relocation *, upx_byte *location,
unsigned value, const char *type);
upx_uint64_t value, const char *type);
};
+2 -2
View File
@@ -1408,7 +1408,7 @@ void upx_sanity_check(void)
assert(get_le32(d) == 0xfcfdfeff);
assert(bele->get32(d) == 0xfcfdfeff);
assert(get_le32_signed(d) == -50462977);
assert(get_le64_signed(d) == ACC_INT64_C(-506097522914230529));
assert(get_le64_signed(d) == UPX_INT64_C(-506097522914230529));
assert(find_be16(d, 2, 0xfffe) == 0);
assert(find_le16(d, 2, 0xfeff) == 0);
assert(find_be32(d, 4, 0xfffefdfc) == 0);
@@ -1417,7 +1417,7 @@ void upx_sanity_check(void)
assert(get_be16_signed(d) == 32638);
assert(get_be24_signed(d) == 8355453);
assert(get_be32_signed(d) == 2138996092);
assert(get_be64_signed(d) == ACC_INT64_C(9186918263483431288));
assert(get_be64_signed(d) == UPX_INT64_C(9186918263483431288));
}
#endif
}
+1 -1
View File
@@ -154,7 +154,7 @@ void MemBuffer::fill(unsigned off, unsigned len, int value)
//
**************************************************************************/
#define PTR(p) ((unsigned) ((acc_uintptr_t)(p) & 0xffffffff))
#define PTR(p) ((unsigned) ((upx_uintptr_t)(p) & 0xffffffff))
#define MAGIC1(p) (PTR(p) ^ 0xfefdbeeb)
#define MAGIC2(p) (PTR(p) ^ 0xfefdbeeb ^ 0x80024001)
+1601 -1459
View File
File diff suppressed because it is too large Load Diff
+64 -57
View File
@@ -63,8 +63,8 @@ umin(unsigned a, unsigned b)
return (a < b) ? a : b;
}
static acc_uint64l_t
umin64(acc_uint64l_t a, acc_uint64l_t b)
static upx_uint64_t
umin64(upx_uint64_t a, upx_uint64_t b)
{
return (a < b) ? a : b;
}
@@ -85,6 +85,15 @@ fpad4(OutputFile *fo)
return d + len;
}
static unsigned
funpad4(InputFile *fi)
{
unsigned d = 3u & (0 - fi->tell());
if (d)
fi->seek(d, SEEK_CUR);
return d;
}
int
PackLinuxElf32::checkEhdr(Elf32_Ehdr const *ehdr) const
{
@@ -164,7 +173,7 @@ PackLinuxElf64::checkEhdr(Elf64_Ehdr const *ehdr) const
if (type == Elf64_Ehdr::ET_EXEC) {
// check for Linux kernels
acc_uint64l_t const entry = get_te64(&ehdr->e_entry);
upx_uint64_t const entry = get_te64(&ehdr->e_entry);
if (entry == 0xC0100000) // uncompressed vmlinux
return 1000;
if (entry == 0x00001000) // compressed vmlinux
@@ -184,7 +193,7 @@ PackLinuxElf64::checkEhdr(Elf64_Ehdr const *ehdr) const
PackLinuxElf::PackLinuxElf(InputFile *f)
: super(f), e_phnum(0), file_image(NULL), dynstr(NULL),
sz_phdrs(0), sz_elf_hdrs(0), sz_pack2(0), sz_pack2a(0), sz_pack2b(0),
sz_phdrs(0), sz_elf_hdrs(0), sz_pack2(0), sz_pack2a(0),
lg2_page(12), page_size(1u<<lg2_page), xct_off(0), xct_va(0),
e_machine(0), ei_class(0), ei_data(0), ei_osabi(0), osabi_note(NULL),
o_elf_shnum(0)
@@ -198,7 +207,6 @@ PackLinuxElf::~PackLinuxElf()
void PackLinuxElf::pack3(OutputFile *fo, Filter &ft)
{
sz_pack2b = fpad4(fo); // after headers, all PT_LOAD, gaps
unsigned disp;
unsigned const zero = 0;
unsigned len = sz_pack2a; // after headers and all PT_LOAD
@@ -230,10 +238,10 @@ void PackLinuxElf::pack3(OutputFile *fo, Filter &ft)
sz_pack2 = len; // 0 mod 8
super::pack3(fo, ft); // append the decompressor
set_te16(&linfo.l_lsize, up4(
set_te16(&linfo.l_lsize, up4( // MATCH03: up4
get_te16(&linfo.l_lsize) + len - sz_pack2a));
len = fpad4(fo);
len = fpad4(fo); // MATCH03
}
void PackLinuxElf32::pack3(OutputFile *fo, Filter &ft)
@@ -356,13 +364,13 @@ void PackLinuxElf64::pack3(OutputFile *fo, Filter &ft)
Elf64_Phdr *phdr = phdri;
unsigned off = fo->st_size();
unsigned off_init = 0; // where in file
acc_uint64l_t va_init = sz_pack2; // virtual address
acc_uint64l_t rel = 0;
acc_uint64l_t old_dtinit = 0;
upx_uint64_t va_init = sz_pack2; // virtual address
upx_uint64_t rel = 0;
upx_uint64_t old_dtinit = 0;
for (int j = e_phnum; --j>=0; ++phdr) {
acc_uint64l_t const len = get_te64(&phdr->p_filesz);
acc_uint64l_t const ioff = get_te64(&phdr->p_offset);
acc_uint64l_t align= get_te64(&phdr->p_align);
upx_uint64_t const len = get_te64(&phdr->p_filesz);
upx_uint64_t const ioff = get_te64(&phdr->p_offset);
upx_uint64_t align= get_te64(&phdr->p_align);
unsigned const type = get_te32(&phdr->p_type);
if (phdr->PT_INTERP==type) {
// Rotate to highest position, so it can be lopped
@@ -420,7 +428,7 @@ void PackLinuxElf64::pack3(OutputFile *fo, Filter &ft)
}
if (off_init) { // change DT_INIT.d_val
fo->seek(off_init, SEEK_SET);
acc_uint64l_t word; set_te64(&word, va_init);
upx_uint64_t word; set_te64(&word, va_init);
fo->rewrite(&word, sizeof(word));
fo->seek(0, SEEK_END);
}
@@ -852,22 +860,22 @@ PackLinuxElf64amd::defineSymbols(Filter const *)
// know the final total compressed size yet, so use the uncompressed
// size (total over all PT_LOAD64) as an upper bound.
unsigned len = 0;
acc_uint64l_t lo_va_user = ~0ull; // infinity
upx_uint64_t lo_va_user = ~0ull; // infinity
for (int j= e_phnum; --j>=0; ) {
if (PT_LOAD64 == get_te32(&phdri[j].p_type)) {
len += (unsigned)get_te64(&phdri[j].p_filesz);
acc_uint64l_t const va = get_te64(&phdri[j].p_vaddr);
upx_uint64_t const va = get_te64(&phdri[j].p_vaddr);
if (va < lo_va_user) {
lo_va_user = va;
}
}
}
lsize = /*getLoaderSize()*/ 64 * 1024; // XXX: upper bound; avoid circularity
acc_uint64l_t lo_va_stub = get_te64(&elfout.phdr[0].p_vaddr);
acc_uint64l_t adrc;
acc_uint64l_t adrm;
acc_uint64l_t adru;
acc_uint64l_t adrx;
upx_uint64_t lo_va_stub = get_te64(&elfout.phdr[0].p_vaddr);
upx_uint64_t adrc;
upx_uint64_t adrm;
upx_uint64_t adru;
upx_uint64_t adrx;
unsigned cntc;
unsigned lenm;
unsigned lenu;
@@ -1471,8 +1479,8 @@ PackLinuxElf64amd::canPack()
throwCantPack("invalid Ehdr e_ehsize; try '--force-execve'");
return false;
}
acc_uint64l_t const e_shoff = get_te64(&ehdr->e_shoff);
acc_uint64l_t const e_phoff = get_te64(&ehdr->e_phoff);
upx_uint64_t const e_shoff = get_te64(&ehdr->e_shoff);
upx_uint64_t const e_phoff = get_te64(&ehdr->e_phoff);
if (e_phoff != sizeof(*ehdr)) {// Phdrs not contiguous with Ehdr
throwCantPack("non-contiguous Ehdr/Phdr; try '--force-execve'");
return false;
@@ -1580,8 +1588,8 @@ PackLinuxElf64amd::canPack()
}
}
// Rely on 0==elf_unsigned_dynamic(tag) if no such tag.
acc_uint64l_t const va_gash = elf_unsigned_dynamic(Elf64_Dyn::DT_GNU_HASH);
acc_uint64l_t const va_hash = elf_unsigned_dynamic(Elf64_Dyn::DT_HASH);
upx_uint64_t const va_gash = elf_unsigned_dynamic(Elf64_Dyn::DT_GNU_HASH);
upx_uint64_t const va_hash = elf_unsigned_dynamic(Elf64_Dyn::DT_HASH);
if (xct_va < va_gash || (0==va_gash && xct_va < va_hash)
|| xct_va < elf_unsigned_dynamic(Elf64_Dyn::DT_STRTAB)
|| xct_va < elf_unsigned_dynamic(Elf64_Dyn::DT_SYMTAB)
@@ -1597,7 +1605,7 @@ PackLinuxElf64amd::canPack()
goto abandon;
}
for ((shdr= shdri), (j= n_elf_shnum); --j>=0; ++shdr) {
acc_uint64l_t const sh_addr = get_te64(&shdr->sh_addr);
upx_uint64_t const sh_addr = get_te64(&shdr->sh_addr);
if ( sh_addr==va_gash
|| (sh_addr==va_hash && 0==va_gash) ) {
shdr= &shdri[get_te32(&shdr->sh_link)]; // the associated SHT_SYMTAB
@@ -2378,7 +2386,7 @@ int PackLinuxElf32::pack2(OutputFile *fo, Filter &ft)
hdr_u_len = 0;
++nx;
}
sz_pack2a = fpad4(fo);
sz_pack2a = fpad4(fo); // MATCH01
// Accounting only; ::pack3 will do the compression and output
for (k = 0; k < e_phnum; ++k) {
@@ -2487,7 +2495,7 @@ int PackLinuxElf64::pack2(OutputFile *fo, Filter &ft)
hdr_u_len = 0;
++nx;
}
sz_pack2a = fpad4(fo);
sz_pack2a = fpad4(fo); // MATCH01
// Accounting only; ::pack3 will do the compression and output
for (k = 0; k < e_phnum; ++k) { //
@@ -2567,8 +2575,6 @@ int PackLinuxElf32::ARM_is_QNX(void)
void PackLinuxElf32::ARM_defineSymbols(Filter const * /*ft*/)
{
unsigned const hlen = sz_elf_hdrs + sizeof(l_info) + sizeof(p_info);
lsize = /*getLoaderSize()*/ 4 * 1024; // upper bound; avoid circularity
unsigned lo_va_user = ~0u; // infinity
for (int j= e_phnum; --j>=0; ) {
@@ -2582,9 +2588,8 @@ void PackLinuxElf32::ARM_defineSymbols(Filter const * /*ft*/)
unsigned lo_va_stub = get_te32(&elfout.phdr[0].p_vaddr);
unsigned adrc;
unsigned adrm;
unsigned adrx;
bool const is_big = true;
bool const is_big = true; // kernel disallows mapping below 0x8000.
if (is_big) {
set_te32( &elfout.ehdr.e_entry, linker->getSymbolOffset("_start") +
get_te32(&elfout.ehdr.e_entry) + lo_va_user - lo_va_stub);
@@ -2593,16 +2598,15 @@ void PackLinuxElf32::ARM_defineSymbols(Filter const * /*ft*/)
lo_va_stub = lo_va_user;
adrc = lo_va_stub;
adrm = getbrk(phdri, e_phnum);
adrx = hlen + (page_mask & (~page_mask + adrm)); // round up to page boundary
}
adrm = page_mask & (~page_mask + adrm); // round up to page boundary
adrc = page_mask & (~page_mask + adrc); // round up to page boundary
adrm = page_mask & (~page_mask + adrm); // round up to page boundary
adrm += page_size; // Try: hole so that kernel does not extend the brk(0)
linker->defineSymbol("ADRM", adrm); // addr for map
linker->defineSymbol("CPR0", 4+ linker->getSymbolOffset("cpr0"));
linker->defineSymbol("LENF", 4+ linker->getSymbolOffset("end_decompress"));
linker->defineSymbol("ADRM", adrm); // addr for map
#define MAP_PRIVATE 2 /* UNIX standard */
#define MAP_FIXED 0x10 /* UNIX standard */
#define MAP_ANONYMOUS 0x20 /* UNIX standard */
@@ -2611,8 +2615,6 @@ void PackLinuxElf32::ARM_defineSymbols(Filter const * /*ft*/)
if (ARM_is_QNX())
mflg = MAP_PRIVANON;
linker->defineSymbol("MFLG", mflg);
ACC_UNUSED(adrx);
}
void PackLinuxElf32armLe::defineSymbols(Filter const *ft)
@@ -2869,7 +2871,7 @@ void PackLinuxElf64::pack4(OutputFile *fo, Filter &ft)
// rewrite Elf header
if (Elf64_Ehdr::ET_DYN==get_te16(&ehdri.e_type)) {
acc_uint64l_t const base= get_te64(&elfout.phdr[0].p_vaddr);
upx_uint64_t const base= get_te64(&elfout.phdr[0].p_vaddr);
set_te16(&elfout.ehdr.e_type, Elf64_Ehdr::ET_DYN);
set_te16(&elfout.ehdr.e_phnum, 1);
set_te64( &elfout.ehdr.e_entry,
@@ -2887,7 +2889,7 @@ void PackLinuxElf64::pack4(OutputFile *fo, Filter &ft)
}
else {
if (Elf64_Phdr::PT_NOTE==get_te64(&elfout.phdr[2].p_type)) {
acc_uint64l_t const reloc = get_te64(&elfout.phdr[0].p_vaddr);
upx_uint64_t const reloc = get_te64(&elfout.phdr[0].p_vaddr);
set_te64( &elfout.phdr[2].p_vaddr,
reloc + get_te64(&elfout.phdr[2].p_vaddr));
set_te64( &elfout.phdr[2].p_paddr,
@@ -2916,7 +2918,7 @@ void PackLinuxElf64::unpack(OutputFile *fo)
{
fi->seek(0, SEEK_SET);
fi->readx(u.buf, MAX_ELF_HDR);
acc_uint64l_t const e_entry = get_te64(&ehdr->e_entry);
upx_uint64_t const e_entry = get_te64(&ehdr->e_entry);
if (e_entry < 0x401180
&& ehdr->e_machine==Elf64_Ehdr::EM_386) { /* old style, 8-byte b_info */
szb_info = 2*sizeof(unsigned);
@@ -2959,8 +2961,8 @@ void PackLinuxElf64::unpack(OutputFile *fo)
fi->seek(- (off_t) (szb_info + ph.c_len), SEEK_CUR);
for (unsigned j=0; j < u_phnum; ++phdr, ++j) {
if (PT_LOAD64==get_te32(&phdr->p_type)) {
acc_uint64l_t const filesz = get_te64(&phdr->p_filesz);
acc_uint64l_t const offset = get_te64(&phdr->p_offset);
upx_uint64_t const filesz = get_te64(&phdr->p_filesz);
upx_uint64_t const offset = get_te64(&phdr->p_offset);
if (fo)
fo->seek(offset, SEEK_SET);
if (Elf64_Phdr::PF_X & get_te32(&phdr->p_flags)) {
@@ -2974,11 +2976,14 @@ void PackLinuxElf64::unpack(OutputFile *fo)
}
}
}
if (( (unsigned)(get_te64(&ehdri.e_entry) - load_va) + up4(lsize) +
ph.getPackHeaderSize() + sizeof(overlay_offset)) < up4(fi->st_size())) {
bool const is_shlib = 0; // XXX ??
if (is_shlib
|| ((unsigned)(get_te64(&ehdri.e_entry) - load_va) + up4(lsize) +
ph.getPackHeaderSize() + sizeof(overlay_offset))
< up4(fi->st_size())) {
// Loader is not at end; skip past it.
// total_in does not include n*szb_info, so we use SEEK_CUR.
fi->seek(up4(total_in) - total_in + lsize, SEEK_CUR);
funpad4(fi); // MATCH01
fi->seek(lsize, SEEK_CUR);
}
// The gaps between PT_LOAD and after last PT_LOAD
@@ -3216,7 +3221,7 @@ PackLinuxElf32::elf_find_dynamic(unsigned int const key) const
return 0;
}
acc_uint64l_t
upx_uint64_t
PackLinuxElf32::elf_unsigned_dynamic(unsigned int const key) const
{
Elf32_Dyn const *dynp= dynseg;
@@ -3227,13 +3232,13 @@ PackLinuxElf32::elf_unsigned_dynamic(unsigned int const key) const
return 0;
}
acc_uint64l_t
PackLinuxElf64::elf_get_offset_from_address(acc_uint64l_t const addr) const
upx_uint64_t
PackLinuxElf64::elf_get_offset_from_address(upx_uint64_t const addr) const
{
Elf64_Phdr const *phdr = phdri;
int j = e_phnum;
for (; --j>=0; ++phdr) if (PT_LOAD64 == get_te32(&phdr->p_type)) {
acc_uint64l_t const t = addr - get_te64(&phdr->p_vaddr);
upx_uint64_t const t = addr - get_te64(&phdr->p_vaddr);
if (t < get_te64(&phdr->p_filesz)) {
return t + get_te64(&phdr->p_offset);
}
@@ -3258,7 +3263,7 @@ PackLinuxElf64::elf_find_dynamic(unsigned int const key) const
Elf64_Dyn const *dynp= dynseg;
if (dynp)
for (; Elf64_Dyn::DT_NULL!=dynp->d_tag; ++dynp) if (get_te64(&dynp->d_tag)==key) {
acc_uint64l_t const t= elf_get_offset_from_address(get_te64(&dynp->d_val));
upx_uint64_t const t= elf_get_offset_from_address(get_te64(&dynp->d_val));
if (t) {
return (size_t)t + file_image;
}
@@ -3267,7 +3272,7 @@ PackLinuxElf64::elf_find_dynamic(unsigned int const key) const
return 0;
}
acc_uint64l_t
upx_uint64_t
PackLinuxElf64::elf_unsigned_dynamic(unsigned int const key) const
{
Elf64_Dyn const *dynp= dynseg;
@@ -3480,11 +3485,13 @@ void PackLinuxElf32::unpack(OutputFile *fo)
}
}
}
if (( (unsigned)(get_te32(&ehdri.e_entry) - load_va) + up4(lsize) +
ph.getPackHeaderSize() + sizeof(overlay_offset)) < up4(fi->st_size())) {
if (is_shlib
|| ((unsigned)(get_te32(&ehdri.e_entry) - load_va) + up4(lsize) +
ph.getPackHeaderSize() + sizeof(overlay_offset))
< up4(fi->st_size())) {
// Loader is not at end; skip past it.
// total_in does not include n*szb_info, so we use SEEK_CUR.
fi->seek(up4(total_in) - total_in + lsize, SEEK_CUR);
funpad4(fi); // MATCH01
fi->seek(lsize, SEEK_CUR);
}
// The gaps between PT_LOAD and after last PT_LOAD
+7 -8
View File
@@ -64,7 +64,7 @@ protected:
virtual void unpack(OutputFile *fo);
//virtual void const *elf_find_dynamic(unsigned) const = 0;
virtual acc_uint64l_t elf_unsigned_dynamic(unsigned) const = 0;
virtual upx_uint64_t elf_unsigned_dynamic(unsigned) const = 0;
protected:
unsigned e_phnum; /* Program header table entry count */
@@ -75,13 +75,12 @@ protected:
unsigned sz_elf_hdrs; // all Elf headers
unsigned sz_pack2; // after pack2(), before loader
unsigned sz_pack2a; // after pack2() of all PT_LOAD
unsigned sz_pack2b; // after pack2() of all PT_LOAD and gaps
unsigned lg2_page; // log2(PAGE_SIZE)
unsigned page_size; // 1u<<lg2_page
unsigned xct_off; // shared library: file offset of SHT_EXECINSTR
unsigned hatch_off; // file offset of escape hatch
acc_uint64l_t load_va; // PT_LOAD[0].p_vaddr
acc_uint64l_t xct_va; // minimum SHT_EXECINSTR virtual address
upx_uint64_t load_va; // PT_LOAD[0].p_vaddr
upx_uint64_t xct_va; // minimum SHT_EXECINSTR virtual address
unsigned short e_machine;
unsigned char ei_class;
@@ -143,7 +142,7 @@ protected:
Elf32_Shdr const *elf_find_section_type(unsigned) const;
void const *elf_find_dynamic(unsigned) const;
Elf32_Dyn const *elf_has_dynamic(unsigned) const;
acc_uint64l_t elf_unsigned_dynamic(unsigned) const;
upx_uint64_t elf_unsigned_dynamic(unsigned) const;
protected:
Elf32_Ehdr ehdri; // from input file
@@ -251,12 +250,12 @@ protected:
virtual unsigned find_LOAD_gap(Elf64_Phdr const *const phdri, unsigned const k,
unsigned const e_phnum);
virtual acc_uint64l_t elf_get_offset_from_address(acc_uint64l_t) const;
virtual upx_uint64_t elf_get_offset_from_address(upx_uint64_t) const;
Elf64_Shdr const *elf_find_section_name(char const *) const;
Elf64_Shdr const *elf_find_section_type(unsigned) const;
void const *elf_find_dynamic(unsigned) const;
Elf64_Dyn const *elf_has_dynamic(unsigned) const;
acc_uint64l_t elf_unsigned_dynamic(unsigned) const;
upx_uint64_t elf_unsigned_dynamic(unsigned) const;
protected:
Elf64_Ehdr ehdri; // from input file
@@ -264,7 +263,7 @@ protected:
unsigned char *note_body; // concatenated contents of PT_NOTEs, if any
unsigned note_size; // total size of PT_NOTEs
Elf64_Shdr const *shdri; // from input file
acc_uint64l_t page_mask; // AND clears the offset-within-page
upx_uint64_t page_mask; // AND clears the offset-within-page
Elf64_Dyn const *dynseg; // from PT_DYNAMIC
unsigned int const *hashtab; // from DT_HASH
+1 -1
View File
@@ -375,7 +375,7 @@ PackLinuxI386::buildLinuxLoader(
addLoader("FOLDEXEC", NULL);
if (M_IS_LZMA(ph.method)) {
const lzma_compress_result_t *res = &ph.compress_result.result_lzma;
acc_uint32e_t properties = // lc, lp, pb, dummy
upx_uint32_t properties = // lc, lp, pb, dummy
(res->lit_context_bits << 0) |
(res->lit_pos_bits << 8) |
(res->pos_bits << 16);
+3 -3
View File
@@ -470,8 +470,8 @@ PackMachBase<T>::compare_segment_command(void const *const aa, void const *const
#undef PAGE_MASK64
#undef PAGE_SIZE64
#define PAGE_MASK64 (~(acc_uint64l_t)0<<12)
#define PAGE_SIZE64 ((acc_uint64l_t)0-PAGE_MASK64)
#define PAGE_MASK64 (~(upx_uint64_t)0<<12)
#define PAGE_SIZE64 ((upx_uint64_t)0-PAGE_MASK64)
// At 2013-02-03 part of the source for codesign was
// http://opensource.apple.com/source/cctools/cctools-836/libstuff/ofile.c
@@ -1167,7 +1167,7 @@ void PackMachBase<T>::pack1(OutputFile *const fo, Filter &/*ft*/) // generate e
+ sizeof(segXHDR) + sizeof(secXHDR)
+ sizeof(segTEXT) + sizeof(secTEXT) + sizeof(segLINK) +
my_thread_command_size /* + sizeof(uuid_cmd) + sizeof(linkitem) */ ;
mhdro.flags = Mach_header::MH_NOUNDEFS;
mhdro.flags = Mach_header::MH_NOUNDEFS | Mach_header::MH_DYLDLINK;
}
fo->write(&mhdro, sizeof(mhdro));
+1 -1
View File
@@ -608,7 +608,7 @@ protected:
Mach_segment_command *rawmseg; // as input, with sections
Mach_segment_command *msegcmd; // LC_SEGMENT first, without sections
unsigned o_routines_cmd; // file offset to LC_ROUINTES
acc_uint64l_t prev_init_address;
upx_uint64_t prev_init_address;
Mach_header mhdri;
Mach_header mhdro;
+2 -1
View File
@@ -56,7 +56,8 @@
MH_BUNDLE = 8 /* dynamically bound bundle file */
};
enum { // flags
MH_NOUNDEFS = 1
MH_NOUNDEFS = 1,
MH_DYLDLINK = 4 /* code signing demands this */
};
#endif /*}*/
+1 -1
View File
@@ -591,7 +591,7 @@ void PackBvmlinuzI386::pack(OutputFile *fo)
if (M_IS_LZMA(ph.method)) {
const lzma_compress_result_t *res = &ph.compress_result.result_lzma;
acc_uint32e_t properties = // lc, lp, pb, dummy
upx_uint32_t properties = // lc, lp, pb, dummy
(res->lit_context_bits << 0) |
(res->lit_pos_bits << 8) |
(res->pos_bits << 16);
+1553
View File
File diff suppressed because it is too large Load Diff
+87
View File
@@ -0,0 +1,87 @@
/* p_w64pep.h --
This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
and/or modify them under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of
the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Markus F.X.J. Oberhumer Laszlo Molnar
<markus@oberhumer.com> <ml1050@users.sourceforge.net>
*/
#ifndef __UPX_P_W64PEP_H
#define __UPX_P_W64PEP_H 1
/*************************************************************************
// w64/pep
**************************************************************************/
class PackW64Pep : public PepFile
{
typedef PepFile super;
public:
PackW64Pep(InputFile *f);
virtual ~PackW64Pep();
virtual int getFormat() const { return UPX_F_WIN64_PEP; }
virtual const char *getName() const { return "win64/pe"; }
virtual const char *getFullName(const options_t *) const { return "amd64-win64.pe"; }
virtual const int *getCompressionMethods(int method, int level) const;
virtual const int *getFilters() const;
virtual void pack(OutputFile *fo);
virtual bool canPack();
virtual int canUnpack();
protected:
virtual int readFileHeader();
virtual void buildLoader(const Filter *ft);
virtual Linker* newLinker() const;
virtual unsigned processImports();
virtual void processImports(unsigned, unsigned);
virtual void rebuildImports(upx_byte *&);
virtual void processTls(Interval *); //NEW: TLS callback handling - Stefan Widmann
void processTls(Reloc *, const Interval *, unsigned); //NEW: TLS callback handling - Stefan Widmann
void processLoadConf(Reloc *, const Interval *, unsigned);
void processLoadConf(Interval *);
upx_byte *oloadconf;
unsigned soloadconf;
unsigned tlscb_ptr; //NEW: TLS callback handling - Stefan Widmann
unsigned tls_handler_offset;
bool isrtm;
bool use_dep_hack;
bool use_clear_dirty_stack;
bool use_tls_callbacks; //NEW: TLS callback handling - Stefan Widmann
};
#endif /* already included */
/*
vi:ts=4:et
*/
+1 -1
View File
@@ -646,7 +646,7 @@ void PackWcle::decodeFixups()
// 32 bit offset fixups
while (get_le32(wrkmem+4*jc) < ic*mps)
{
if (ic > 1 && ((get_le32(wrkmem+4*(jc-2))+3) & (mps-1)) < 3) // cross page fixup?
if (jc > 1 && ((get_le32(wrkmem+4*(jc-2))+3) & (mps-1)) < 3) // cross page fixup?
{
r = get_le32(oimage+get_le32(wrkmem+4*(jc-2)));
fp[0] = 7;
+46 -7
View File
@@ -904,9 +904,9 @@ int Packer::patch_le32(void *b, int blen, const void *old, unsigned new_)
// relocation util
**************************************************************************/
upx_byte *Packer::optimizeReloc32(upx_byte *in, unsigned relocnum,
upx_byte *out, upx_byte *image,
int bswap, int *big)
upx_byte *Packer::optimizeReloc(upx_byte *in, unsigned relocnum,
upx_byte *out, upx_byte *image,
int bswap, int *big, int bits)
{
if (opt->exact)
throwCantPackExact();
@@ -946,15 +946,36 @@ upx_byte *Packer::optimizeReloc32(upx_byte *in, unsigned relocnum,
}
pc += oc;
if (bswap)
acc_ua_swab32s(image + pc);
{
if (bits == 32)
acc_ua_swab32s(image + pc);
else if (bits == 64)
set_be64(image + pc, get_le64(image + pc));
else
throwInternalError("optimizeReloc problem");
}
}
*fix++ = 0;
return fix;
}
upx_byte *Packer::optimizeReloc32(upx_byte *in, unsigned relocnum,
upx_byte *out, upx_byte *image,
int bswap, int *big)
{
return optimizeReloc(in, relocnum, out, image, bswap, big, 32);
}
unsigned Packer::unoptimizeReloc32(upx_byte **in, upx_byte *image,
MemBuffer *out, int bswap)
upx_byte *Packer::optimizeReloc64(upx_byte *in, unsigned relocnum,
upx_byte *out, upx_byte *image,
int bswap, int *big)
{
return optimizeReloc(in, relocnum, out, image, bswap, big, 64);
}
unsigned Packer::unoptimizeReloc(upx_byte **in, upx_byte *image,
MemBuffer *out, int bswap, int bits)
{
upx_byte *p;
unsigned relocn = 0;
@@ -987,13 +1008,31 @@ unsigned Packer::unoptimizeReloc32(upx_byte **in, upx_byte *image,
}
*relocs++ = jc;
if (bswap && image)
acc_ua_swab32s(image + jc);
{
if (bits == 32)
acc_ua_swab32s(image + jc);
else if (bits == 64)
set_be64(image + jc, get_le64(image + jc));
else
throwInternalError("unoptimizeReloc problem");
}
}
//fprintf(stderr,"relocnum=%x\n",relocn);
*in = p+1;
return (unsigned) (relocs - outp);
}
unsigned Packer::unoptimizeReloc32(upx_byte **in, upx_byte *image,
MemBuffer *out, int bswap)
{
return unoptimizeReloc(in, image, out, bswap, 32);
}
unsigned Packer::unoptimizeReloc64(upx_byte **in, upx_byte *image,
MemBuffer *out, int bswap)
{
return unoptimizeReloc(in, image, out, bswap, 64);
}
/*************************************************************************
// loader util (interface to linker)
+10 -6
View File
@@ -284,16 +284,20 @@ protected:
void checkPatch(void *b, int blen, int boff, int size);
// relocation util
static upx_byte *optimizeReloc(upx_byte *in,unsigned relocnum,upx_byte *out,upx_byte *image,int bs,int *big, int bits);
static unsigned unoptimizeReloc(upx_byte **in,upx_byte *image,MemBuffer *out,int bs, int bits);
static upx_byte *optimizeReloc32(upx_byte *in,unsigned relocnum,upx_byte *out,upx_byte *image,int bs,int *big);
static unsigned unoptimizeReloc32(upx_byte **in,upx_byte *image,MemBuffer *out,int bs);
static upx_byte *optimizeReloc64(upx_byte *in,unsigned relocnum,upx_byte *out,upx_byte *image,int bs,int *big);
static unsigned unoptimizeReloc64(upx_byte **in,upx_byte *image,MemBuffer *out,int bs);
// target endianness abstraction
unsigned get_te16(const void *p) const { return bele->get16(p); }
unsigned get_te32(const void *p) const { return bele->get32(p); }
acc_uint64l_t get_te64(const void *p) const { return bele->get64(p); }
void set_te16(void *p, unsigned v) const { bele->set16(p, v); }
void set_te32(void *p, unsigned v) const { bele->set32(p, v); }
void set_te64(void *p, acc_uint64l_t v) const { bele->set64(p, v); }
unsigned get_te16(const void *p) const { return bele->get16(p); }
unsigned get_te32(const void *p) const { return bele->get32(p); }
upx_uint64_t get_te64(const void *p) const { return bele->get64(p); }
void set_te16(void *p, unsigned v) const { bele->set16(p, v); }
void set_te32(void *p, unsigned v) const { bele->set32(p, v); }
void set_te64(void *p, upx_uint64_t v) const { bele->set64(p, v); }
protected:
const N_BELE_RTP::AbstractPolicy *bele; // target endianness
+1 -1
View File
@@ -266,7 +266,7 @@ void Packer::defineDecompressorSymbols()
if (M_IS_LZMA(ph.method))
{
const lzma_compress_result_t *res = &ph.compress_result.result_lzma;
acc_uint32e_t properties = // lc, lp, pb, dummy
upx_uint32_t properties = // lc, lp, pb, dummy
(res->lit_context_bits << 0) |
(res->lit_pos_bits << 8) |
(res->pos_bits << 16);
+5
View File
@@ -32,6 +32,7 @@
#include "packer.h"
#include "lefile.h"
#include "pefile.h"
#include "pepfile.h"
#include "p_elf.h"
#include "p_com.h"
@@ -50,6 +51,7 @@
#include "p_vxd.h"
#include "p_w16ne.h"
#include "p_w32pe.h"
#include "p_w64pep.h"
#include "p_vmlinz.h"
#include "p_vmlinx.h"
#include "p_ps1.h"
@@ -179,6 +181,9 @@ Packer* PackMaster::visitAllPackers(visit_func_t func, InputFile *f, const optio
return p;
delete p; p = NULL;
#endif
if ((p = func(new PackW64Pep(f), user)) != NULL)
return p;
delete p; p = NULL;
if ((p = func(new PackW32Pe(f), user)) != NULL)
return p;
delete p; p = NULL;
+11 -1
View File
@@ -67,6 +67,11 @@
#define OPTR_C(type, var, v) type* const var = (v)
#endif
static void xcheck(const void *p)
{
if (!p)
throwCantUnpack("unexpected NULL pointer; take care!");
}
static void xcheck(const void *p, size_t plen, const void *b, size_t blen)
{
const char *pp = (const char *) p;
@@ -1179,6 +1184,7 @@ PeFile::Resource::upx_rnode *PeFile::Resource::convert(const void *rnode,
for (const res_dir_entry *rde = node->entries + ic - 1; --ic >= 0; rde--)
{
upx_rnode *child = convert(start + (rde->child & 0x7fffffff),branch,level + 1);
xcheck(child);
branch->children[ic] = child;
child->id = rde->tnl;
if (child->id & 0x80000000)
@@ -1214,6 +1220,7 @@ void PeFile::Resource::build(const upx_rnode *node, unsigned &bpos,
res_dir_entry *be = b->entries;
for (unsigned ic = 0; ic < branch->nc; ic++, be++)
{
xcheck(branch->children[ic]);
be->tnl = branch->children[ic]->id;
be->child = bpos + ((level < 2) ? 0x80000000 : 0);
@@ -1245,6 +1252,7 @@ upx_byte *PeFile::Resource::build()
void PeFile::Resource::destroy(upx_rnode *node,unsigned level)
{
xcheck(node);
delete [] node->name; node->name = NULL;
if (level != 3)
{
@@ -1673,9 +1681,10 @@ void PeFile::rebuildResources(upx_byte *& extrainfo)
}
}
upx_byte *p = res.build();
OCHECK(obuf + ODADDR(PEDIR_RESOURCE) - rvamin, 16);
// write back when the original is zeroed
if (get_le32(obuf + ODADDR(PEDIR_RESOURCE) - rvamin + 12) == 0)
omemcpy(obuf + ODADDR(PEDIR_RESOURCE) - rvamin,p,res.dirsize());
omemcpy(obuf + ODADDR(PEDIR_RESOURCE) - rvamin, p, res.dirsize());
delete [] p;
}
@@ -1724,6 +1733,7 @@ void PeFile::unpack(OutputFile *fo)
Filter ft(ph.level);
ft.init(ph.filter,oh.codebase - rvamin);
ft.cto = (unsigned char) ph.filter_cto;
OCHECK(obuf + oh.codebase - rvamin, oh.codesize);
ft.unfilter(obuf + oh.codebase - rvamin, oh.codesize);
}
+1738
View File
File diff suppressed because it is too large Load Diff
+386
View File
@@ -0,0 +1,386 @@
/* pepfile.h --
This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
and/or modify them under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of
the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Markus F.X.J. Oberhumer Laszlo Molnar
<markus@oberhumer.com> <ml1050@users.sourceforge.net>
-------------------------------------------------------------------
PE+ format extension changes (C) 2010 Stefan Widmann
changes in:
- pe_header_t
*/
#ifndef __UPX_PEPFILE_H
#define __UPX_PEPFILE_H 1
/*************************************************************************
// general/pe handling
**************************************************************************/
class PepFile : public Packer
{
typedef Packer super;
protected:
class Interval;
class Reloc;
class Resource;
class Export;
PepFile(InputFile *f);
virtual ~PepFile();
virtual int getVersion() const { return 13; }
virtual void unpack(OutputFile *fo);
// unpacker capabilities
virtual bool canUnpackVersion(int version) const
{ return (version >= 12 && version <= 13); }
protected:
virtual int readFileHeader();
virtual bool testUnpackVersion(int version) const;
unsigned pe_offset;
virtual unsigned processImports() = 0;
virtual void processImports(unsigned, unsigned) = 0;
virtual void rebuildImports(upx_byte *&) = 0;
upx_byte *oimport;
unsigned soimport;
upx_byte *oimpdlls;
unsigned soimpdlls;
void processRelocs();
void processRelocs(Reloc *);
void rebuildRelocs(upx_byte *&);
upx_byte *orelocs;
unsigned sorelocs;
upx_byte *oxrelocs;
unsigned soxrelocs;
void processExports(Export *);
void processExports(Export *,unsigned);
void rebuildExports();
upx_byte *oexport;
unsigned soexport;
void processResources(Resource *);
void processResources(Resource *, unsigned);
void rebuildResources(upx_byte *&);
upx_byte *oresources;
unsigned soresources;
// virtual void processTls(Interval *);
// void processTls(Reloc *, const Interval *, unsigned);
void rebuildTls();
upx_byte *otls;
unsigned sotls;
unsigned tlsindex;
unsigned stripDebug(unsigned);
unsigned icondir_offset;
int icondir_count;
bool importbyordinal;
bool kernel32ordinal;
unsigned rvamin;
unsigned cimports; // rva of preprocessed imports
unsigned crelocs; // rva of preprocessed fixups
int big_relocs;
__packed_struct(pe_header_t)
// 0x0
char _[4]; // pemagic
LE16 cpu;
LE16 objects; // number of sections
char __[12]; // timestamp + reserved
LE16 opthdrsize;
LE16 flags; // characteristics
// optional header
LE16 coffmagic; // NEW: Stefan Widmann
char ___[2]; // linkerversion
LE32 codesize;
// 0x20
LE32 datasize;
LE32 bsssize;
LE32 entry; // still a 32 bit RVA
LE32 codebase;
// 0x30
//LE32 database; // field does not exist in PE+!
// nt specific fields
LE64 imagebase; // LE32 -> LE64 - Stefan Widmann standard is 0x0000000140000000
LE32 objectalign;
LE32 filealign; // should set to 0x200 ?
// 0x40
char ____[16]; // versions
// 0x50
LE32 imagesize;
LE32 headersize;
LE32 chksum; // should set to 0
LE16 subsystem;
LE16 dllflags;
// 0x60
char _____[36]; // stack + heap sizes + loader flag
// 0x84
LE32 ddirsentries; // usually 16
__packed_struct(ddirs_t)
LE32 vaddr; // dir RVAs and sizes are still 32 bit
LE32 size;
__packed_struct_end()
ddirs_t ddirs[16];
__packed_struct_end()
__packed_struct(pe_section_t) // no change in section description structures
char name[8];
LE32 vsize;
LE32 vaddr;
LE32 size;
LE32 rawdataptr;
char _[12];
LE32 flags;
__packed_struct_end()
pe_header_t ih, oh;
pe_section_t *isection;
static unsigned virta2objnum (unsigned, pe_section_t *, unsigned);
unsigned tryremove (unsigned, unsigned);
enum {
PEDIR_EXPORT = 0,
PEDIR_IMPORT = 1,
PEDIR_RESOURCE = 2,
PEDIR_EXCEPTION = 3, // Exception table
PEDIR_SEC = 4, // Certificate table (file pointer)
PEDIR_RELOC = 5,
PEDIR_DEBUG = 6,
PEDIR_COPYRIGHT = 7, // Architecture-specific data
PEDIR_GLOBALPTR = 8, // Global pointer
PEDIR_TLS = 9,
PEDIR_LOADCONF = 10, // Load Config Table
PEDIR_BOUNDIM = 11,
PEDIR_IAT = 12,
PEDIR_DELAYIMP = 13, // Delay Import Descriptor
PEDIR_COMRT = 14 // Com+ Runtime Header
};
enum {
PEFL_CODE = 0x20,
PEFL_DATA = 0x40,
PEFL_BSS = 0x80,
PEFL_INFO = 0x200,
PEFL_EXTRELS = 0x01000000, // extended relocations
PEFL_DISCARD = 0x02000000,
PEFL_NOCACHE = 0x04000000,
PEFL_NOPAGE = 0x08000000,
PEFL_SHARED = 0x10000000,
PEFL_EXEC = 0x20000000,
PEFL_READ = 0x40000000,
PEFL_WRITE = 0x80000000
};
enum {
RELOCS_STRIPPED = 0x0001,
EXECUTABLE = 0x0002,
LNUM_STRIPPED = 0x0004,
LSYMS_STRIPPED = 0x0008,
AGGRESSIVE_TRIM = 0x0010,
TWO_GIGS_AWARE = 0x0020,
FLITTLE_ENDIAN = 0x0080,
BITS_32_MACHINE = 0x0100,
DEBUG_STRIPPED = 0x0200,
REMOVABLE_SWAP = 0x0400,
SYSTEM_PROGRAM = 0x1000,
DLL_FLAG = 0x2000,
FBIG_ENDIAN = 0x8000
};
//NEW: DLL characteristics definition for ASLR, ... - Stefan Widmann
enum {
IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE = 0x0040,
IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY = 0x0080,
IMAGE_DLL_CHARACTERISTICS_NX_COMPAT = 0x0100,
IMAGE_DLLCHARACTERISTICS_NO_ISOLATION = 0x0200,
IMAGE_DLLCHARACTERISTICS_NO_SEH = 0x0400,
IMAGE_DLLCHARACTERISTICS_NO_BIND = 0x0800,
IMAGE_DLLCHARACTERISTICS_WDM_DRIVER = 0x2000,
IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = 0x8000
};
// predefined resource types
enum {
RT_CURSOR = 1, RT_BITMAP, RT_ICON, RT_MENU, RT_DIALOG, RT_STRING,
RT_FONTDIR, RT_FONT, RT_ACCELERATOR, RT_RCDATA, RT_MESSAGETABLE,
RT_GROUP_CURSOR, RT_GROUP_ICON = 14, RT_VERSION = 16, RT_DLGINCLUDE,
RT_PLUGPLAY = 19, RT_VXD, RT_ANICURSOR, RT_ANIICON, RT_HTML,
RT_MANIFEST, RT_LAST
};
class Interval : private noncopyable
{
unsigned capacity;
void *base;
public:
struct interval
{
unsigned start, len;
} *ivarr;
unsigned ivnum;
Interval(void *b);
~Interval();
void add(unsigned start,unsigned len);
void add(const void *start,unsigned len);
void add(const void *start,const void *end);
void add(const Interval *iv);
void flatten();
void clear();
void dump() const;
private:
static int __acc_cdecl_qsort compare(const void *p1,const void *p2);
};
class Reloc : private noncopyable
{
upx_byte *start;
unsigned size;
void newRelocPos(void *p);
struct reloc;
reloc *rel;
LE16 *rel1;
unsigned counts[16];
public:
Reloc(upx_byte *,unsigned);
Reloc(unsigned rnum);
//
bool next(unsigned &pos,unsigned &type);
const unsigned *getcounts() const { return counts; }
//
void add(unsigned pos,unsigned type);
void finish(upx_byte *&p,unsigned &size);
};
class Resource : private noncopyable
{
struct res_dir_entry;
struct res_dir;
struct res_data;
struct upx_rnode;
struct upx_rbranch;
struct upx_rleaf;
const upx_byte *start;
upx_byte *newstart;
upx_rnode *root;
upx_rleaf *head;
upx_rleaf *current;
unsigned dsize;
unsigned ssize;
void check(const res_dir*,unsigned);
upx_rnode *convert(const void *,upx_rnode *,unsigned);
void build(const upx_rnode *,unsigned &,unsigned &,unsigned);
void clear(upx_byte *,unsigned,Interval *);
void dump(const upx_rnode *,unsigned) const;
void destroy(upx_rnode *urd,unsigned level);
public:
Resource();
Resource(const upx_byte *p);
~Resource();
void init(const upx_byte *);
unsigned dirsize() const;
bool next();
unsigned itype() const;
const upx_byte *ntype() const;
unsigned size() const;
unsigned offs() const;
unsigned &newoffs();
upx_byte *build();
bool clear();
void dump() const;
unsigned iname() const;
const upx_byte *nname() const;
/*
unsigned ilang() const {return current->id;}
const upx_byte *nlang() const {return current->name;}
*/
};
class Export : private noncopyable
{
__packed_struct(export_dir_t)
char _[12]; // flags, timedate, version
LE32 name;
char __[4]; // ordinal base
LE32 functions;
LE32 names;
LE32 addrtable;
LE32 nameptrtable;
LE32 ordinaltable;
__packed_struct_end()
export_dir_t edir;
char *ename;
char *functionptrs;
char *ordinals;
char **names;
char *base;
unsigned size;
Interval iv;
public:
Export(char *_base);
~Export();
void convert(unsigned eoffs,unsigned esize);
void build(char *base,unsigned newoffs);
unsigned getsize() const { return size; }
};
};
#endif /* already included */
/*
vi:ts=4:et
*/
+6 -6
View File
@@ -72,9 +72,9 @@
#undef LLONG
#undef ULLONG
#if 1 && defined(acc_int64l_t)
# define LLONG acc_int64l_t
# define ULLONG acc_uint64l_t
#if 1
# define LLONG upx_int64_t
# define ULLONG upx_uint64_t
#else
# define LLONG long int
# define ULLONG unsigned long int
@@ -713,7 +713,7 @@ static size_t dopr(char *buffer, size_t maxlen, const char *format, va_list args
break;
case 'p':
strvalue = (const char *) va_arg (args, const void *);
fmtint (buffer, &currlen, maxlen, (LLONG) (acc_uintptr_t) strvalue, 16, min, max, flags);
fmtint (buffer, &currlen, maxlen, (LLONG) (upx_uintptr_t) strvalue, 16, min, max, flags);
break;
case 'n':
if (cflags == DP_C_SHORT) {
@@ -798,7 +798,7 @@ static int xdopr(char *buffer, size_t maxlen, const char *format, va_list args)
}
int __acc_cdecl upx_vsnprintf(char *str, size_t count, const char *format, va_list ap)
int upx_vsnprintf(char *str, size_t count, const char *format, va_list ap)
{
return xdopr(str, count, format, ap);
}
@@ -816,7 +816,7 @@ int __acc_cdecl_va upx_snprintf(char *str, size_t count, const char *format,...)
}
int __acc_cdecl upx_vasprintf(char **ptr, const char *format, va_list ap)
int upx_vasprintf(char **ptr, const char *format, va_list ap)
{
int ret;
+2 -2
View File
@@ -38,9 +38,9 @@ extern "C" {
//
**************************************************************************/
int __acc_cdecl upx_vsnprintf(char *str, size_t count, const char *format, va_list ap);
int upx_vsnprintf(char *str, size_t count, const char *format, va_list ap);
int __acc_cdecl_va upx_snprintf(char *str, size_t count, const char *format,...);
int __acc_cdecl upx_vasprintf(char **ptr, const char *format, va_list ap);
int upx_vasprintf(char **ptr, const char *format, va_list ap);
int __acc_cdecl_va upx_asprintf(char **ptr, const char *format, ...);
#if 1
+125 -117
View File
@@ -56,6 +56,7 @@ STUBS += amd64-linux.elf-fold.h
STUBS += amd64-linux.kernel.vmlinux-head.h
STUBS += amd64-linux.kernel.vmlinux.h
STUBS += amd64-linux.shlib-init.h
STUBS += amd64-win64.pep.h
STUBS += arm-darwin.macho-entry.h
STUBS += arm-darwin.macho-fold.h
STUBS += arm-linux.elf-entry.h
@@ -137,7 +138,7 @@ endif
all.targets ?= .upx-stubtools-stamp tmp/.tmp-stamp .all-stamp
all: $$(all.targets)
.upx-stubtools-stamp: $(MAKEFILE_LIST)
upx-stubtools-check-version 20060823
upx-stubtools-check-version 20130920
@echo "timestamp" > $@
%/.tmp-stamp:
@mkdir -p $(dir $@)
@@ -246,9 +247,14 @@ define tc.default.f-embed_objinfo
$(call tc,xstrip) --with-dump=$1.dump --create-bindump=$1.bindump $1
cat $1.dump >> $1
endef
tc.default.f-objstrip-disasm.bin = @true
tc.default.f-objstrip-disasm.o = $(call tc,objdump) -dr $(tc_objdump_disasm_options) $1 | $(RTRIM) > $1.disasm
tc.default.f-objstrip-disasm.obj = $(call tc,objdump) -dr $(tc_objdump_disasm_options) $1 | $(RTRIM) > $1.disasm
define tc.default.f-objstrip
chmod a-x $1
$(call tc,objcopy) -R .comment -R .note -R .note.GNU-stack -R .reginfo $1
$(call tc,f-objstrip-disasm$(suffix $1),$1)
endef
# some common arch settings
@@ -298,7 +304,6 @@ tmp/amd64-darwin.macho-fold.o : $(srcdir)/src/$$T.S
tmp/amd64-darwin.macho-main.o : $(srcdir)/src/$$T.c
$(call tc,gcc) -c -Os -fPIC $< -o $@
$(call tc,f-objstrip,$@)
$(call tc,objdump) -dr $(tc_objdump_disasm_options) $@ | $(RTRIM) > $@.disasm
# /***********************************************************************
@@ -332,7 +337,6 @@ tmp/amd64-linux.elf-fold.o : $(srcdir)/src/$$T.S
tmp/amd64-linux.elf-main.o : $(srcdir)/src/$$T.c
$(call tc,gcc) -c -Os $< -o $@
$(call tc,f-objstrip,$@)
$(call tc,objdump) -dr $(tc_objdump_disasm_options) $@ | $(RTRIM) > $@.disasm
# /***********************************************************************
@@ -370,65 +374,22 @@ amd64-linux.shlib-init.h : $(srcdir)/src/$$T.S
# /***********************************************************************
# // armel-eabi-linux.elf
# // amd64-win64.pep
# ************************************************************************/
armel-eabi-linux.elf%.h : tc_list = armel-eabi-linux.elf default
armel-eabi-linux.elf%.h : tc_bfdname = elf32-littlearm
amd64-win64.pep.h : tc_list = amd64-win64.pep amd64-linux.elf default
amd64-win64.pep.h : tc_bfdname = elf64-x86-64
amd64-win64.pep.h : tc_objdump_disasm_options = -M intel-mnemonic
tc.armel-eabi-linux.elf.gcc = arm-linux-gcc-4.1.0 -march=armv5 -nostdinc -MMD -MT $@
tc.armel-eabi-linux.elf.gcc += -fno-exceptions -fno-asynchronous-unwind-tables
tc.armel-eabi-linux.elf.gcc += -Wall -W -Wcast-align -Wcast-qual -Wstrict-prototypes -Wwrite-strings -Werror
tc.amd64-win64.pep.gcc = amd64-linux-gcc-4.1.1 -m64 -nostdinc -MMD -MT $@
tc.amd64-win64.pep.gcc += -fno-exceptions -fno-asynchronous-unwind-tables
tc.amd64-win64.pep.gcc += -Wall -W -Wcast-align -Wcast-qual -Wstrict-prototypes -Wwrite-strings -Werror
tc.amd64-win64.pep.objdump = multiarch-objdump-2.23.90
armel-eabi-linux.elf-entry.h : $(srcdir)/src/$$T.S
$(call tc,gcc) -march=armv5 -c $< -o tmp/$T.bin
$(call tc,f-embed_objinfo,tmp/$T.bin)
$(call tc,bin2h) tmp/$T.bin $@
armel-eabi-linux.elf-fold.h : tmp/$$T.o tmp/armel-linux.elf-main.o $(srcdir)/src/arm-linux.elf-fold.lds
$(call tc,ld) --strip-all -T $(srcdir)/src/arm-linux.elf-fold.lds -Map tmp/$T.map $(filter %.o,$^) -o tmp/$T.bin
$(call tc,f-objstrip,tmp/$T.bin)
$(call tc,sstrip) tmp/$T.bin
$(call tc,bin2h) tmp/$T.bin $@
tmp/armel-eabi-linux.elf-fold.o : $(srcdir)/src/$$T.S
$(call tc,gcc) -c $< -o $@
$(call tc,f-objstrip,$@)
tmp/armel-linux.elf-main.o : $(srcdir)/src/$$T.c $(srcdir)/src/i386-linux.elf-main.c
$(call tc,gcc) -c -Os $< -o $@
$(call tc,f-objstrip,$@)
$(call tc,objdump) -dr $(tc_objdump_disasm_options) $@ | $(RTRIM) > $@.disasm
# /***********************************************************************
# // armel-eabi-linux.shlib
# ************************************************************************/
armel-eabi-linux.shlib%.h : tc_list = armel-eabi-linux.elf default
armel-eabi-linux.shlib%.h : tc_bfdname = elf32-littlearm
armel-eabi-linux.shlib%.h : $(srcdir)/src/$$T.S
amd64-win64.pep.h : $(srcdir)/src/$$T.S
$(call tc,gcc) -c -x assembler-with-cpp $< -o tmp/$T.bin
$(call tc,f-embed_objinfo,tmp/$T.bin)
$(call tc,bin2h-c) tmp/$T.bin $@
# /***********************************************************************
# // thumb-eabi-linux.shlib
# ************************************************************************/
thumb-eabi-linux.shlib%.h : tc_list = thumb-eabi-linux.elf armel-eabi-linux.elf default
thumb-eabi-linux.shlib%.h : tc_bfdname = elf32-littlearm
tc.armel-eabi-linux.elf.gcc = arm-linux-gcc-4.1.0 -march=armv5t -nostdinc -MMD -MT $@
tc.armel-eabi-linux.elf.gcc += -fno-exceptions -fno-asynchronous-unwind-tables
tc.armel-eabi-linux.elf.gcc += -Wall -W -Wcast-align -Wcast-qual -Wstrict-prototypes -Wwrite-strings -Werror
thumb-eabi-linux.shlib%.h : $(srcdir)/src/$$T.S
$(call tc,gcc) -c -x assembler-with-cpp $< -o tmp/$T.bin
$(call tc,f-embed_objinfo,tmp/$T.bin)
$(call tc,bin2h-c) tmp/$T.bin $@
$(call tc,bin2h) tmp/$T.bin $@
# /***********************************************************************
@@ -458,7 +419,6 @@ tmp/arm-darwin.macho-fold.o : $(srcdir)/src/$$T.S
tmp/arm-darwin.macho-main.o : $(srcdir)/src/$$T.c
$(call tc,gcc) -c -Os $< -o $@
$(call tc,f-objstrip,$@)
$(call tc,objdump) -dr $(tc_objdump_disasm_options) $@ | $(RTRIM) > $@.disasm
# /***********************************************************************
@@ -490,7 +450,6 @@ tmp/arm-linux.elf-fold.o : $(srcdir)/src/$$T.S
tmp/arm-linux.elf-main.o : $(srcdir)/src/$$T.c $(srcdir)/src/i386-linux.elf-main.c
$(call tc,gcc) -c -Os $< -o $@
$(call tc,f-objstrip,$@)
$(call tc,objdump) -dr $(tc_objdump_disasm_options) $@ | $(RTRIM) > $@.disasm
# /***********************************************************************
@@ -530,24 +489,26 @@ arm-linux.shlib%.h : $(srcdir)/src/$$T.S
# /***********************************************************************
# // armeb-linux.kernel.vmlinux
# // armeb-linux.kernel.vmlinux-head
# // arm.v4a-wince.pe
# // arm.v4t-wince.pe
# ************************************************************************/
armeb-linux.kernel.vmlinu%.h : tc_list = armeb-linux.kernel default
armeb-linux.kernel.vmlinu%.h : tc_bfdname = elf32-bigarm
# info: we use the tc settings from arm-linux.elf
arm.v4a-wince.pe.h : tc_list = arm-linux.elf default
arm.v4t-wince.pe.h : tc_list = arm-linux.elf default
arm.v4a-wince.pe.h : tc_bfdname = elf32-littlearm
arm.v4t-wince.pe.h : tc_bfdname = elf32-littlearm
arm.v4t-wince.pe.h : tc_objdump_disasm_options = -M force-thumb
tc.armeb-linux.kernel.gcc = $(tc.arm-linux.elf.gcc) -mbig-endian -march=armv5
armeb-linux.kernel.vmlinu%.h : $(srcdir)/src/$$T.S
$(call tc,gcc) -c -x assembler-with-cpp $< -o tmp/$T.bin
arm.v4a-wince.pe.h : $(srcdir)/src/$$T.S
$(call tc,gcc) -march=armv4 -c $< -o tmp/$T.bin
$(call tc,f-embed_objinfo,tmp/$T.bin)
$(call tc,bin2h-c) tmp/$T.bin $@
armeb-linux.kernel.vmlinux-head.h : $(srcdir)/src/$$T.S
$(call tc,gcc) -c -x assembler-with-cpp $< -o tmp/$T.o
$(call tc,objcopy) --output-target binary --only-section .text tmp/$T.o tmp/$T.bin
$(call tc,bin2h) tmp/$T.bin $@
arm.v4t-wince.pe.h : $(srcdir)/src/$$T.S
$(call tc,gcc) -march=armv4t -c $< -o tmp/$T.bin
$(call tc,f-embed_objinfo,tmp/$T.bin)
$(call tc,bin2h-c) tmp/$T.bin $@
# /***********************************************************************
@@ -577,32 +538,96 @@ tmp/armeb-linux.elf-fold.o : $(srcdir)/src/$$T.S
tmp/armeb-linux.elf-main.o : $(srcdir)/src/$$T.c $(srcdir)/src/i386-linux.elf-main.c
$(call tc,gcc) -c -Os $< -o $@
$(call tc,f-objstrip,$@)
$(call tc,objdump) -dr $(tc_objdump_disasm_options) $@ | $(RTRIM) > $@.disasm
# /***********************************************************************
# // arm.v4a-wince.pe
# // arm.v4t-wince.pe
# // armeb-linux.kernel.vmlinux
# // armeb-linux.kernel.vmlinux-head
# ************************************************************************/
# info: we use the tc settings from arm-linux.elf
arm.v4a-wince.pe.h : tc_list = arm-linux.elf default
arm.v4t-wince.pe.h : tc_list = arm-linux.elf default
arm.v4a-wince.pe.h : tc_bfdname = elf32-littlearm
arm.v4t-wince.pe.h : tc_bfdname = elf32-littlearm
arm.v4t-wince.pe.h : tc_objdump_disasm_options = -M force-thumb
armeb-linux.kernel.vmlinu%.h : tc_list = armeb-linux.kernel default
armeb-linux.kernel.vmlinu%.h : tc_bfdname = elf32-bigarm
arm.v4a-wince.pe.h : $(srcdir)/src/$$T.S
$(call tc,gcc) -march=armv4 -c $< -o tmp/$T.bin
tc.armeb-linux.kernel.gcc = $(tc.arm-linux.elf.gcc) -mbig-endian -march=armv5
armeb-linux.kernel.vmlinu%.h : $(srcdir)/src/$$T.S
$(call tc,gcc) -c -x assembler-with-cpp $< -o tmp/$T.bin
$(call tc,f-embed_objinfo,tmp/$T.bin)
$(call tc,bin2h-c) tmp/$T.bin $@
arm.v4t-wince.pe.h : $(srcdir)/src/$$T.S
$(call tc,gcc) -march=armv4t -c $< -o tmp/$T.bin
armeb-linux.kernel.vmlinux-head.h : $(srcdir)/src/$$T.S
$(call tc,gcc) -c -x assembler-with-cpp $< -o tmp/$T.o
$(call tc,objcopy) --output-target binary --only-section .text tmp/$T.o tmp/$T.bin
$(call tc,bin2h) tmp/$T.bin $@
# /***********************************************************************
# // armel-eabi-linux.elf
# ************************************************************************/
armel-eabi-linux.elf%.h : tc_list = armel-eabi-linux.elf default
armel-eabi-linux.elf%.h : tc_bfdname = elf32-littlearm
tc.armel-eabi-linux.elf.gcc = arm-linux-gcc-4.1.0 -march=armv5 -nostdinc -MMD -MT $@
tc.armel-eabi-linux.elf.gcc += -fno-exceptions -fno-asynchronous-unwind-tables
tc.armel-eabi-linux.elf.gcc += -Wall -W -Wcast-align -Wcast-qual -Wstrict-prototypes -Wwrite-strings -Werror
armel-eabi-linux.elf-entry.h : $(srcdir)/src/$$T.S
$(call tc,gcc) -march=armv5 -c $< -o tmp/$T.bin
$(call tc,f-embed_objinfo,tmp/$T.bin)
$(call tc,bin2h) tmp/$T.bin $@
armel-eabi-linux.elf-fold.h : tmp/$$T.o tmp/armel-linux.elf-main.o $(srcdir)/src/arm-linux.elf-fold.lds
$(call tc,ld) --strip-all -T $(srcdir)/src/arm-linux.elf-fold.lds -Map tmp/$T.map $(filter %.o,$^) -o tmp/$T.bin
$(call tc,f-objstrip,tmp/$T.bin)
$(call tc,sstrip) tmp/$T.bin
$(call tc,bin2h) tmp/$T.bin $@
tmp/armel-eabi-linux.elf-fold.o : $(srcdir)/src/$$T.S
$(call tc,gcc) -c $< -o $@
$(call tc,f-objstrip,$@)
tmp/armel-linux.elf-main.o : $(srcdir)/src/$$T.c $(srcdir)/src/i386-linux.elf-main.c
$(call tc,gcc) -c -Os $< -o $@
$(call tc,f-objstrip,$@)
# /***********************************************************************
# // armel-eabi-linux.shlib
# ************************************************************************/
armel-eabi-linux.shlib%.h : tc_list = armel-eabi-linux.elf default
armel-eabi-linux.shlib%.h : tc_bfdname = elf32-littlearm
armel-eabi-linux.shlib%.h : $(srcdir)/src/$$T.S
$(call tc,gcc) -c -x assembler-with-cpp $< -o tmp/$T.bin
$(call tc,f-embed_objinfo,tmp/$T.bin)
$(call tc,bin2h-c) tmp/$T.bin $@
# /***********************************************************************
# // armel-linux.kernel.vmlinuz
# // armel-linux.kernel.vmlinuz-head
# ************************************************************************/
#
armel-linux.kernel.vmlinu%.h : tc_list = armel-linux.kernel default
armel-linux.kernel.vmlinu%.h : tc_bfdname = elf32-littlearm
tc.armel-linux.kernel.gcc = arm-linux-gcc-4.1.0 -march=armv5 -nostdinc -MMD -MT $@
tc.armel-linux.kernel.gcc += -fno-exceptions -fno-asynchronous-unwind-tables
tc.armel-linux.kernel.gcc += -Wall -W -Wcast-align -Wcast-qual -Wstrict-prototypes -Wwrite-strings -Werror
armel-linux.kernel.vmlinu%.h : $(srcdir)/src/$$T.S
$(call tc,gcc) -c -x assembler-with-cpp $< -o tmp/$T.bin
$(call tc,f-embed_objinfo,tmp/$T.bin)
$(call tc,bin2h-c) tmp/$T.bin $@
armel-linux.kernel.vmlinuz-head.h : $(srcdir)/src/$$T.S
$(call tc,gcc) -c -x assembler-with-cpp $< -o tmp/$T.o
$(call tc,objcopy) --output-target binary --only-section .text tmp/$T.o tmp/$T.bin
$(call tc,bin2h) tmp/$T.bin $@
# /***********************************************************************
# // i086-dos16.com
# ************************************************************************/
@@ -678,7 +703,6 @@ tmp/i386-bsd.syscall.o : $(srcdir)/src/$$T.S
tmp/i386-bsd.elf-main.o : $(srcdir)/src/$$T.c
$(call tc,gcc) -c $< -o $@
$(call tc,f-objstrip,$@)
$(call tc,objdump) -dr $(tc_objdump_disasm_options) $@ | $(RTRIM) > $@.disasm
# info: we use the tc settings from i386-linux.elf
@@ -719,7 +743,6 @@ tmp/i386-openbsd.elf-fold.o : $(srcdir)/src/$$T.S
tmp/i386-openbsd.elf-main.o : $(srcdir)/src/$$T.c
$(call tc,gcc) -c $< -o $@
$(call tc,f-objstrip,$@)
$(call tc,objdump) -dr $(tc_objdump_disasm_options) $@ | $(RTRIM) > $@.disasm
# /***********************************************************************
@@ -748,7 +771,6 @@ tmp/i386-bsd.elf.execve-fold.o : $(srcdir)/src/$$T.S
tmp/i386-bsd.elf.execve-main.o : $(srcdir)/src/$$T.c
$(call tc,gcc) -c $< -o $@
$(call tc,f-objstrip,$@)
$(call tc,objdump) -dr $(tc_objdump_disasm_options) $@ | $(RTRIM) > $@.disasm
tmp/i386-bsd.elf.execve-upx_itoa.o : $(srcdir)/src/$$T.S
$(call tc,gcc) -c -x assembler-with-cpp $< -o $@
@@ -795,7 +817,6 @@ tmp/i386-darwin.macho-fold.o : $(srcdir)/src/$$T.S
tmp/i386-darwin.macho-main.o : $(srcdir)/src/$$T.c
$(call tc,gcc) -c -Os $< -o $@
$(call tc,f-objstrip,$@)
$(call tc,objdump) -dr $(tc_objdump_disasm_options) $@ | $(RTRIM) > $@.disasm
# /***********************************************************************
@@ -878,7 +899,6 @@ tmp/i386-linux.elf-fold.o : $(srcdir)/src/$$T.S
tmp/i386-linux.elf-main.o : $(srcdir)/src/$$T.c
$(call tc,gcc) -c $< -o $@
$(call tc,f-objstrip,$@)
$(call tc,objdump) -dr $(tc_objdump_disasm_options) $@ | $(RTRIM) > $@.disasm
# /***********************************************************************
@@ -906,7 +926,6 @@ tmp/i386-linux.elf.execve-fold.o : $(srcdir)/src/$$T.S
tmp/i386-linux.elf.execve-main.o : $(srcdir)/src/$$T.c
$(call tc,gcc) -c $< -o $@
$(call tc,f-objstrip,$@)
$(call tc,objdump) -dr $(tc_objdump_disasm_options) $@ | $(RTRIM) > $@.disasm
tmp/i386-linux.elf.execve-upx_itoa.o : $(srcdir)/src/$$T.S
$(call tc,gcc) -c -x assembler-with-cpp $< -o $@
@@ -938,7 +957,6 @@ tmp/i386-linux.elf.interp-fold.o : $(srcdir)/src/$$T.S
tmp/i386-linux.elf.interp-main.o : $(srcdir)/src/$$T.c
$(call tc,gcc) -c $< -o $@
$(call tc,f-objstrip,$@)
$(call tc,objdump) -dr $(tc_objdump_disasm_options) $@ | $(RTRIM) > $@.disasm
# /***********************************************************************
@@ -966,7 +984,6 @@ tmp/i386-linux.elf.shell-fold.o : $(srcdir)/src/$$T.S
tmp/i386-linux.elf.shell-main.o : $(srcdir)/src/$$T.c
$(call tc,gcc) -c $< -o $@
$(call tc,f-objstrip,$@)
$(call tc,objdump) -dr $(tc_objdump_disasm_options) $@ | $(RTRIM) > $@.disasm
# /***********************************************************************
@@ -1001,28 +1018,6 @@ i386-linux.shlib-init.h : $(srcdir)/src/$$T.S
$(call tc,f-embed_objinfo,tmp/$T.bin)
$(call tc,bin2h) tmp/$T.bin $@
# /***********************************************************************
# // armel-linux.kernel.vmlinuz
# // armel-linux.kernel.vmlinuz-head
# ************************************************************************/
#
armel-linux.kernel.vmlinu%.h : tc_list = armel-linux.kernel default
armel-linux.kernel.vmlinu%.h : tc_bfdname = elf32-littlearm
tc.armel-linux.kernel.gcc = arm-linux-gcc-4.1.0 -march=armv5 -nostdinc -MMD -MT $@
tc.armel-linux.kernel.gcc += -fno-exceptions -fno-asynchronous-unwind-tables
tc.armel-linux.kernel.gcc += -Wall -W -Wcast-align -Wcast-qual -Wstrict-prototypes -Wwrite-strings -Werror
armel-linux.kernel.vmlinu%.h : $(srcdir)/src/$$T.S
$(call tc,gcc) -c -x assembler-with-cpp $< -o tmp/$T.bin
$(call tc,f-embed_objinfo,tmp/$T.bin)
$(call tc,bin2h-c) tmp/$T.bin $@
armel-linux.kernel.vmlinuz-head.h : $(srcdir)/src/$$T.S
$(call tc,gcc) -c -x assembler-with-cpp $< -o tmp/$T.o
$(call tc,objcopy) --output-target binary --only-section .text tmp/$T.o tmp/$T.bin
$(call tc,bin2h) tmp/$T.bin $@
# /***********************************************************************
# // i386-win32.pe
@@ -1096,7 +1091,6 @@ tmp/mips.r3000-linux.elf-main.o : $(srcdir)/src/$$T.c $(srcdir)/src/i386-linux.e
-e 's/ jal[ ][ ]*\([^\$$]\)/ bal \1/' < tmp/$T.i > tmp/$T.s
$(call tc,gcc) -c -Wa,-O,-mno-pdr tmp/$T.s -o $@
$(call tc,f-objstrip,$@)
$(call tc,objdump) -dr $(tc_objdump_disasm_options) $@ | $(RTRIM) > $@.disasm
# /***********************************************************************
@@ -1135,7 +1129,6 @@ tmp/mipsel.r3000-linux.elf-main.o : $(srcdir)/src/$$T.c $(srcdir)/src/i386-linux
-e 's/ jal[ ][ ]*\([^\$$]\)/ bal \1/' < tmp/$T.i > tmp/$T.s
$(call tc,gcc) -c -Wa,-O,-mno-pdr tmp/$T.s -o $@
$(call tc,f-objstrip,$@)
$(call tc,objdump) -dr $(tc_objdump_disasm_options) $@ | $(RTRIM) > $@.disasm
# /***********************************************************************
@@ -1190,7 +1183,6 @@ tmp/powerpc-darwin.macho-fold.o : $(srcdir)/src/$$T.S
tmp/powerpc-darwin.macho-main.o : $(srcdir)/src/$$T.c
$(call tc,gcc) -c -Os $< -o $@
$(call tc,f-objstrip,$@)
$(call tc,objdump) -dr $(tc_objdump_disasm_options) $@ | $(RTRIM) > $@.disasm
# /***********************************************************************
@@ -1236,7 +1228,6 @@ tmp/powerpc-linux.elf-fold.o : $(srcdir)/src/$$T.S
tmp/powerpc-linux.elf-main.o : $(srcdir)/src/$$T.c
$(call tc,gcc) -c -Os $< -o $@
$(call tc,f-objstrip,$@)
$(call tc,objdump) -dr $(tc_objdump_disasm_options) $@ | $(RTRIM) > $@.disasm
# /***********************************************************************
@@ -1260,6 +1251,23 @@ powerpc-linux.kernel.vmlinux-head.h : $(srcdir)/src/$$T.S
$(call tc,bin2h) tmp/$T.bin $@
# /***********************************************************************
# // thumb-eabi-linux.shlib
# ************************************************************************/
thumb-eabi-linux.shlib%.h : tc_list = thumb-eabi-linux.elf armel-eabi-linux.elf default
thumb-eabi-linux.shlib%.h : tc_bfdname = elf32-littlearm
tc.armel-eabi-linux.elf.gcc = arm-linux-gcc-4.1.0 -march=armv5t -nostdinc -MMD -MT $@
tc.armel-eabi-linux.elf.gcc += -fno-exceptions -fno-asynchronous-unwind-tables
tc.armel-eabi-linux.elf.gcc += -Wall -W -Wcast-align -Wcast-qual -Wstrict-prototypes -Wwrite-strings -Werror
thumb-eabi-linux.shlib%.h : $(srcdir)/src/$$T.S
$(call tc,gcc) -c -x assembler-with-cpp $< -o tmp/$T.bin
$(call tc,f-embed_objinfo,tmp/$T.bin)
$(call tc,bin2h-c) tmp/$T.bin $@
# /***********************************************************************
# // dependencies
# ************************************************************************/
+230 -230
View File
@@ -1,5 +1,5 @@
/* amd64-darwin.dylib-entry.h
created from amd64-darwin.dylib-entry.bin, 9659 (0x25bb) bytes
created from amd64-darwin.dylib-entry.bin, 9658 (0x25ba) bytes
This file is part of the UPX executable compressor.
@@ -31,11 +31,11 @@
*/
#define STUB_AMD64_DARWIN_DYLIB_ENTRY_SIZE 9659
#define STUB_AMD64_DARWIN_DYLIB_ENTRY_ADLER32 0x435be63a
#define STUB_AMD64_DARWIN_DYLIB_ENTRY_CRC32 0xd09fc9f6
#define STUB_AMD64_DARWIN_DYLIB_ENTRY_SIZE 9658
#define STUB_AMD64_DARWIN_DYLIB_ENTRY_ADLER32 0x0444e5f8
#define STUB_AMD64_DARWIN_DYLIB_ENTRY_CRC32 0x6fd437ee
unsigned char stub_amd64_darwin_dylib_entry[9659] = {
unsigned char stub_amd64_darwin_dylib_entry[9658] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 1, 0, 62, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,248, 24, 0, 0, 0, 0, 0, 0,
@@ -410,234 +410,234 @@ unsigned char stub_amd64_darwin_dylib_entry[9659] = {
/* 0x1730 */ 65,185, 0, 0, 0, 0, 65,184, 0, 0, 0, 0, 65,186, 2, 16,
/* 0x1740 */ 0, 0,186, 3, 0, 0, 0,137,198, 41,255,184,197, 0, 0, 2,
/* 0x1750 */ 15, 5,114,195, 80, 72,137,238, 72,137,197, 72,137,199,185, 0,
/* 0x1760 */ 0, 0, 0,129,233, 0, 0, 0, 0,252,243,164, 72,141,135, 41,
/* 0x1760 */ 0, 0, 0,129,233, 0, 0, 0, 0,252,243,164, 72,141,135, 42,
/* 0x1770 */ 255,255,255,255,224, 87, 72,137,218,139, 67,240, 43, 19, 72, 1,
/* 0x1780 */ 208, 72,137, 68, 36, 20,139,115,248, 72, 1,214,139, 75,252,243,
/* 0x1790 */ 164, 94, 72,137,215,173, 72, 1,199,173, 72, 1,198,173, 86, 87,
/* 0x17a0 */ 173,133,192,116, 60, 80, 72,137,225, 72,137,250, 72, 1,248, 80,
/* 0x17a0 */ 173,133,192,116, 59, 80, 72,137,225, 72,137,250, 72, 1,248, 80,
/* 0x17b0 */ 173,137,198, 72,137,193,173, 65,137,192, 72,137,247, 72, 1,241,
/* 0x17c0 */ 81,255,213, 94, 95, 89, 90, 88, 15,182, 72, 9,133,201,116,206,
/* 0x17d0 */ 15,182, 80, 10,139,112, 0, 72,137,215,232, 29, 0, 0, 0,235,
/* 0x17e0 */ 189, 88, 89,190, 0, 16, 0, 0, 95, 91, 93,184, 73, 0, 0, 2,
/* 0x17f0 */ 72,141, 87,252,199, 2, 15, 5,195,144,255,226,131,249, 73,117,
/* 0x1800 */ 74, 72,137,241, 72,137,254,235, 44,138, 7, 72,131,199, 1, 60,
/* 0x1810 */ 128,114, 10, 60,143,119, 6,128,127,254, 15,116, 6, 44,232, 60,
/* 0x1820 */ 1,119, 35, 56, 23,117, 31,139, 7, 37, 0,255,255,255, 15,200,
/* 0x1830 */ 41,248, 1,240,171, 72,131,233, 4,138, 7, 72,131,199, 1, 72,
/* 0x1840 */ 255,201,117,217,235, 5, 72,255,201,117,190,195,102,105,108,101,
/* 0x1850 */ 32,102,111,114,109, 97,116, 32,101,108,102, 54, 52, 45,120, 56,
/* 0x1860 */ 54, 45, 54, 52, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10,
/* 0x1870 */ 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1880 */ 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32,
/* 0x1890 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77,
/* 0x18a0 */ 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x18b0 */ 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32,
/* 0x18c0 */ 70,108, 97,103,115, 10, 32, 32, 48, 32, 77, 65, 67, 72, 77, 65,
/* 0x18d0 */ 73, 78, 88, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 53,
/* 0x18e0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x18f0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1900 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 48, 32, 32,
/* 0x1910 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
/* 0x1920 */ 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
/* 0x1930 */ 32, 32, 49, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32,
/* 0x1940 */ 32, 32, 48, 48, 48, 48, 48, 48, 54, 54, 32, 32, 48, 48, 48, 48,
/* 0x1950 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x1960 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x1970 */ 48, 48, 48, 48, 48, 48, 53, 53, 32, 32, 50, 42, 42, 48, 32, 32,
/* 0x1980 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78,
/* 0x1990 */ 76, 89, 10, 32, 32, 50, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32,
/* 0x19a0 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 98, 55, 32, 32, 48,
/* 0x19b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x19c0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x19d0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 98, 98, 32, 32, 50, 42, 42,
/* 0x19e0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76,
/* 0x19f0 */ 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51,
/* 0x1a00 */ 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48,
/* 0x1a10 */ 48, 48, 48, 48, 48, 57,101, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x1a20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x1a30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x1a40 */ 48, 48, 49, 55, 50, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
/* 0x1a50 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69,
/* 0x1a60 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 78, 82, 86, 50, 66,
/* 0x1a70 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 57,
/* 0x1a80 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1a90 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1aa0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 49, 48, 32,
/* 0x1ab0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44,
/* 0x1ac0 */ 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89,
/* 0x1ad0 */ 10, 32, 32, 53, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32,
/* 0x1ae0 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 54, 52, 32, 32, 48, 48, 48,
/* 0x1af0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x1b00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1b10 */ 32, 48, 48, 48, 48, 48, 50, 97, 48, 32, 32, 50, 42, 42, 48, 32,
/* 0x1b20 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67,
/* 0x1b30 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 76,
/* 0x1b40 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, 48,
/* 0x1b50 */ 48, 48, 57,102, 55, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1b60 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x1b70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x1b80 */ 51, 48, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69,
/* 0x1b90 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32,
/* 0x1ba0 */ 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32,
/* 0x1bb0 */ 48, 48, 48, 48, 48, 57,102, 55, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x1bc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x1bd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x1be0 */ 48, 48, 48, 99,102, 98, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
/* 0x1bf0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89,
/* 0x1c00 */ 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32,
/* 0x1c10 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 52, 32, 32, 48, 48, 48,
/* 0x1c20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x1c30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1c40 */ 32, 48, 48, 48, 48, 49, 54,102, 50, 32, 32, 50, 42, 42, 48, 32,
/* 0x1c50 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79,
/* 0x1c60 */ 78, 76, 89, 10, 32, 32, 57, 32, 78, 82, 86, 95, 84, 65, 73, 76,
/* 0x1c70 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x1c80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1c90 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1ca0 */ 48, 48, 32, 32, 48, 48, 48, 48, 49, 55, 48, 54, 32, 32, 50, 42,
/* 0x1cb0 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69,
/* 0x1cc0 */ 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 77, 65, 67, 72, 77,
/* 0x1cd0 */ 65, 73, 78, 89, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49,
/* 0x1ce0 */ 49, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1cf0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1d00 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 55, 48, 54, 32,
/* 0x1d10 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44,
/* 0x1d20 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, 32, 77, 65,
/* 0x1d30 */ 67, 72, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 48, 48, 48, 48,
/* 0x1d40 */ 48, 49, 51, 53, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1d50 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1d60 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 55,
/* 0x1d70 */ 49, 55, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x1d80 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79,
/* 0x1d90 */ 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69,
/* 0x1da0 */ 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1db0 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 77, 65, 67, 72, 77,
/* 0x1dc0 */ 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1dd0 */ 48, 48, 48, 48, 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, 10,
/* 0x1de0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1df0 */ 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65,
/* 0x1e00 */ 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1e10 */ 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48,
/* 0x1e20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32,
/* 0x1e30 */ 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9,
/* 0x1e40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1e50 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48,
/* 0x1e60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32,
/* 0x1e70 */ 32, 32,100, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 9, 48,
/* 0x1e80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1e90 */ 77, 65, 67, 72, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48,
/* 0x1ea0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,
/* 0x1eb0 */ 100, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 9, 48, 48, 48,
/* 0x1ec0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 77, 65,
/* 0x1ed0 */ 67, 72, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1ee0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32,
/* 0x1ef0 */ 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1f00 */ 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48,
/* 0x1f10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
/* 0x1f20 */ 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48,
/* 0x1f30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82,
/* 0x1f40 */ 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1f50 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86,
/* 0x1f60 */ 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1f70 */ 48, 48, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48,
/* 0x1f80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,
/* 0x1f90 */ 100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48,
/* 0x1fa0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76,
/* 0x1fb0 */ 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48,
/* 0x1fc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,
/* 0x1fd0 */ 100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48,
/* 0x1fe0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76,
/* 0x1ff0 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48,
/* 0x2000 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,
/* 0x2010 */ 100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48,
/* 0x2020 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76,
/* 0x2030 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48,
/* 0x2040 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,
/* 0x2050 */ 100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48,
/* 0x2060 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86,
/* 0x2070 */ 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2080 */ 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 77,
/* 0x2090 */ 65, 67, 72, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x20a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116,
/* 0x20b0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49,
/* 0x20c0 */ 49, 32,103, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65,
/* 0x20d0 */ 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x20e0 */ 48, 48, 48, 48, 32,101,110,100, 95,100,101, 99,111,109,112,114,
/* 0x20f0 */ 101,115,115, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32,
/* 0x2100 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 77, 65, 67,
/* 0x2110 */ 72, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
/* 0x2120 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32,
/* 0x2130 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
/* 0x2140 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2150 */ 48, 57, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50,
/* 0x2160 */ 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 43, 48,
/* 0x2170 */ 120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,
/* 0x2180 */ 102, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69,
/* 0x2190 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69,
/* 0x21a0 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32,
/* 0x21b0 */ 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x21c0 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48,
/* 0x21d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 97,101, 32, 82, 95, 88,
/* 0x21e0 */ 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 78,
/* 0x21f0 */ 82, 86, 95, 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, 48, 48,
/* 0x2200 */ 48, 48, 48, 48, 48, 48, 48, 48, 50, 49, 10, 48, 48, 48, 48, 48,
/* 0x2210 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 98, 32, 82, 95, 88, 56,
/* 0x2220 */ 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 77, 65,
/* 0x2230 */ 67, 72, 77, 65, 73, 78, 89, 43, 48,120,102,102,102,102,102,102,
/* 0x2240 */ 102,102,102,102,102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79,
/* 0x2250 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70,
/* 0x2260 */ 79, 82, 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83,
/* 0x2270 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80,
/* 0x2280 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86,
/* 0x2290 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x22a0 */ 48, 48, 48, 57, 53, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80,
/* 0x22b0 */ 67, 51, 50, 32, 32, 32, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68,
/* 0x22c0 */ 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x22d0 */ 48, 50, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x22e0 */ 48, 48, 53, 98, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67,
/* 0x22f0 */ 51, 50, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89,
/* 0x2300 */ 43, 48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,
/* 0x2310 */ 102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32,
/* 0x2320 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86,
/* 0x2330 */ 50, 66, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32,
/* 0x2340 */ 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32,
/* 0x2350 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48,
/* 0x2360 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 56, 97, 32, 82,
/* 0x2370 */ 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32,
/* 0x2380 */ 32, 78, 82, 86, 95, 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48,
/* 0x2390 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 49, 10, 48, 48, 48,
/* 0x23a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 50, 32, 82, 95,
/* 0x23b0 */ 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,
/* 0x23c0 */ 77, 65, 67, 72, 77, 65, 73, 78, 89, 43, 48,120,102,102,102,102,
/* 0x23d0 */ 102,102,102,102,102,102,102,102,102,102,102, 99, 10, 10, 82, 69,
/* 0x23e0 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83,
/* 0x23f0 */ 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48,
/* 0x2400 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32,
/* 0x2410 */ 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2420 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48,
/* 0x2430 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 54, 32, 82, 95, 88,
/* 0x2440 */ 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 76,
/* 0x2450 */ 90, 77, 65, 95, 68, 69, 67, 51, 48, 43, 48,120, 48, 48, 48, 48,
/* 0x2460 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 48, 10, 10, 82, 69,
/* 0x2470 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83,
/* 0x2480 */ 32, 70, 79, 82, 32, 91, 77, 65, 67, 72, 77, 65, 73, 78, 90, 93,
/* 0x2490 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x24a0 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x24b0 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48,
/* 0x24c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,102, 32, 82, 95, 88, 56,
/* 0x24d0 */ 54, 95, 54, 52, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 77, 65,
/* 0x24e0 */ 67, 72, 77, 65, 73, 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 48,
/* 0x24f0 */ 48, 48, 48, 48, 48, 48, 48, 49, 51, 53, 10, 48, 48, 48, 48, 48,
/* 0x2500 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 52, 32, 82, 95, 88, 56,
/* 0x2510 */ 54, 95, 54, 52, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 77, 65,
/* 0x2520 */ 67, 72, 77, 65, 73, 78, 88, 43, 48,120, 48, 48, 48, 48, 48, 48,
/* 0x2530 */ 48, 48, 48, 48, 48, 48, 48, 48, 48,100, 10, 48, 48, 48, 48, 48,
/* 0x2540 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 56, 32, 82, 95, 88, 56,
/* 0x2550 */ 54, 95, 54, 52, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 77, 65,
/* 0x2560 */ 67, 72, 77, 65, 73, 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 48,
/* 0x2570 */ 48, 48, 48, 48, 48, 48, 48, 49, 51, 53, 10, 48, 48, 48, 48, 48,
/* 0x2580 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 52,101, 32, 82, 95, 88, 56,
/* 0x2590 */ 54, 95, 54, 52, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 77, 65,
/* 0x25a0 */ 67, 72, 77, 65, 73, 78, 88, 43, 48,120, 48, 48, 48, 48, 48, 48,
/* 0x25b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48,100, 10
/* 0x17d0 */ 15,182, 80, 10,139, 48, 72,137,215,232, 29, 0, 0, 0,235,190,
/* 0x17e0 */ 88, 89,190, 0, 16, 0, 0, 95, 91, 93,184, 73, 0, 0, 2, 72,
/* 0x17f0 */ 141, 87,252,199, 2, 15, 5,195,144,255,226,131,249, 73,117, 74,
/* 0x1800 */ 72,137,241, 72,137,254,235, 44,138, 7, 72,131,199, 1, 60,128,
/* 0x1810 */ 114, 10, 60,143,119, 6,128,127,254, 15,116, 6, 44,232, 60, 1,
/* 0x1820 */ 119, 35, 56, 23,117, 31,139, 7, 37, 0,255,255,255, 15,200, 41,
/* 0x1830 */ 248, 1,240,171, 72,131,233, 4,138, 7, 72,131,199, 1, 72,255,
/* 0x1840 */ 201,117,217,235, 5, 72,255,201,117,190,195,102,105,108,101, 32,
/* 0x1850 */ 102,111,114,109, 97,116, 32,101,108,102, 54, 52, 45,120, 56, 54,
/* 0x1860 */ 45, 54, 52, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,
/* 0x1870 */ 100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1880 */ 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32,
/* 0x1890 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65,
/* 0x18a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,
/* 0x18b0 */ 105,108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,
/* 0x18c0 */ 108, 97,103,115, 10, 32, 32, 48, 32, 77, 65, 67, 72, 77, 65, 73,
/* 0x18d0 */ 78, 88, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 53, 32,
/* 0x18e0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x18f0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1900 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 48, 32, 32, 50,
/* 0x1910 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82,
/* 0x1920 */ 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32,
/* 0x1930 */ 32, 49, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32,
/* 0x1940 */ 32, 48, 48, 48, 48, 48, 48, 54, 54, 32, 32, 48, 48, 48, 48, 48,
/* 0x1950 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x1960 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x1970 */ 48, 48, 48, 48, 48, 53, 53, 32, 32, 50, 42, 42, 48, 32, 32, 67,
/* 0x1980 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76,
/* 0x1990 */ 89, 10, 32, 32, 50, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32,
/* 0x19a0 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 98, 55, 32, 32, 48, 48,
/* 0x19b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x19c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x19d0 */ 32, 32, 48, 48, 48, 48, 48, 48, 98, 98, 32, 32, 50, 42, 42, 48,
/* 0x19e0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79,
/* 0x19f0 */ 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32,
/* 0x1a00 */ 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48,
/* 0x1a10 */ 48, 48, 48, 48, 57,101, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1a20 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x1a30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x1a40 */ 48, 49, 55, 50, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
/* 0x1a50 */ 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65,
/* 0x1a60 */ 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 78, 82, 86, 50, 66, 32,
/* 0x1a70 */ 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 57, 48,
/* 0x1a80 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1a90 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1aa0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 49, 48, 32, 32,
/* 0x1ab0 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
/* 0x1ac0 */ 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
/* 0x1ad0 */ 32, 32, 53, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32,
/* 0x1ae0 */ 32, 32, 48, 48, 48, 48, 48, 48, 54, 52, 32, 32, 48, 48, 48, 48,
/* 0x1af0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x1b00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x1b10 */ 48, 48, 48, 48, 48, 50, 97, 48, 32, 32, 50, 42, 42, 48, 32, 32,
/* 0x1b20 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44,
/* 0x1b30 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90,
/* 0x1b40 */ 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, 48, 48,
/* 0x1b50 */ 48, 57,102, 55, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1b60 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1b70 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51,
/* 0x1b80 */ 48, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x1b90 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 55,
/* 0x1ba0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48,
/* 0x1bb0 */ 48, 48, 48, 48, 57,102, 55, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x1bc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x1bd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x1be0 */ 48, 48, 99,102, 98, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
/* 0x1bf0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
/* 0x1c00 */ 32, 32, 56, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 32,
/* 0x1c10 */ 32, 32, 48, 48, 48, 48, 48, 48, 49, 52, 32, 32, 48, 48, 48, 48,
/* 0x1c20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x1c30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x1c40 */ 48, 48, 48, 48, 49, 54,102, 50, 32, 32, 50, 42, 42, 48, 32, 32,
/* 0x1c50 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78,
/* 0x1c60 */ 76, 89, 10, 32, 32, 57, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32,
/* 0x1c70 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x1c80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1c90 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1ca0 */ 48, 32, 32, 48, 48, 48, 48, 49, 55, 48, 54, 32, 32, 50, 42, 42,
/* 0x1cb0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65,
/* 0x1cc0 */ 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 77, 65, 67, 72, 77, 65,
/* 0x1cd0 */ 73, 78, 89, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 49,
/* 0x1ce0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1cf0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1d00 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 55, 48, 54, 32, 32,
/* 0x1d10 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
/* 0x1d20 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, 32, 77, 65, 67,
/* 0x1d30 */ 72, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48,
/* 0x1d40 */ 49, 51, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1d50 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1d60 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 55, 49,
/* 0x1d70 */ 55, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
/* 0x1d80 */ 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78,
/* 0x1d90 */ 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58,
/* 0x1da0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1db0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 77, 65, 67, 72, 77, 65,
/* 0x1dc0 */ 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1dd0 */ 48, 48, 48, 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, 10, 48,
/* 0x1de0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1df0 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68,
/* 0x1e00 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1e10 */ 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48,
/* 0x1e20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x1e30 */ 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48,
/* 0x1e40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1e50 */ 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48,
/* 0x1e60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x1e70 */ 32,100, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 9, 48, 48,
/* 0x1e80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 77,
/* 0x1e90 */ 65, 67, 72, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x1ea0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x1eb0 */ 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 9, 48, 48, 48, 48,
/* 0x1ec0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 77, 65, 67,
/* 0x1ed0 */ 72, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1ee0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x1ef0 */ 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1f00 */ 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48,
/* 0x1f10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x1f20 */ 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48,
/* 0x1f30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86,
/* 0x1f40 */ 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1f50 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50,
/* 0x1f60 */ 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1f70 */ 48, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x1f80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x1f90 */ 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48,
/* 0x1fa0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90,
/* 0x1fb0 */ 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x1fc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x1fd0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48,
/* 0x1fe0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90,
/* 0x1ff0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x2000 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x2010 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48,
/* 0x2020 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90,
/* 0x2030 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x2040 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x2050 */ 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48,
/* 0x2060 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95,
/* 0x2070 */ 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2080 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 77, 65,
/* 0x2090 */ 67, 72, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x20a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116, 10,
/* 0x20b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 49,
/* 0x20c0 */ 32,103, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73,
/* 0x20d0 */ 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x20e0 */ 48, 48, 48, 32,101,110,100, 95,100,101, 99,111,109,112,114,101,
/* 0x20f0 */ 115,115, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82,
/* 0x2100 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 77, 65, 67, 72,
/* 0x2110 */ 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32,
/* 0x2120 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32,
/* 0x2130 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69,
/* 0x2140 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2150 */ 57, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32,
/* 0x2160 */ 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 43, 48,120,
/* 0x2170 */ 102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,
/* 0x2180 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
/* 0x2190 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93,
/* 0x21a0 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x21b0 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x21c0 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48,
/* 0x21d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 97,101, 32, 82, 95, 88, 56,
/* 0x21e0 */ 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 78, 82,
/* 0x21f0 */ 86, 95, 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, 48, 48, 48,
/* 0x2200 */ 48, 48, 48, 48, 48, 48, 48, 50, 49, 10, 48, 48, 48, 48, 48, 48,
/* 0x2210 */ 48, 48, 48, 48, 48, 48, 48, 48, 53, 98, 32, 82, 95, 88, 56, 54,
/* 0x2220 */ 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 77, 65, 67,
/* 0x2230 */ 72, 77, 65, 73, 78, 89, 43, 48,120,102,102,102,102,102,102,102,
/* 0x2240 */ 102,102,102,102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, 67,
/* 0x2250 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79,
/* 0x2260 */ 82, 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69,
/* 0x2270 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69,
/* 0x2280 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65,
/* 0x2290 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x22a0 */ 48, 48, 57, 53, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67,
/* 0x22b0 */ 51, 50, 32, 32, 32, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 43,
/* 0x22c0 */ 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x22d0 */ 50, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x22e0 */ 48, 53, 98, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51,
/* 0x22f0 */ 50, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 43,
/* 0x2300 */ 48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,
/* 0x2310 */ 102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82,
/* 0x2320 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50,
/* 0x2330 */ 66, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32,
/* 0x2340 */ 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32,
/* 0x2350 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48,
/* 0x2360 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 56, 97, 32, 82, 95,
/* 0x2370 */ 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,
/* 0x2380 */ 78, 82, 86, 95, 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, 48,
/* 0x2390 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 49, 10, 48, 48, 48, 48,
/* 0x23a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 50, 32, 82, 95, 88,
/* 0x23b0 */ 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 77,
/* 0x23c0 */ 65, 67, 72, 77, 65, 73, 78, 89, 43, 48,120,102,102,102,102,102,
/* 0x23d0 */ 102,102,102,102,102,102,102,102,102,102, 99, 10, 10, 82, 69, 76,
/* 0x23e0 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32,
/* 0x23f0 */ 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93,
/* 0x2400 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2410 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2420 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48,
/* 0x2430 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 54, 32, 82, 95, 88, 56,
/* 0x2440 */ 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 76, 90,
/* 0x2450 */ 77, 65, 95, 68, 69, 67, 51, 48, 43, 48,120, 48, 48, 48, 48, 48,
/* 0x2460 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 48, 10, 10, 82, 69, 76,
/* 0x2470 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32,
/* 0x2480 */ 70, 79, 82, 32, 91, 77, 65, 67, 72, 77, 65, 73, 78, 90, 93, 58,
/* 0x2490 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x24a0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x24b0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,
/* 0x24c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48,102, 32, 82, 95, 88, 56, 54,
/* 0x24d0 */ 95, 54, 52, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67,
/* 0x24e0 */ 72, 77, 65, 73, 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48,
/* 0x24f0 */ 48, 48, 48, 48, 48, 48, 49, 51, 52, 10, 48, 48, 48, 48, 48, 48,
/* 0x2500 */ 48, 48, 48, 48, 48, 48, 48, 48, 49, 52, 32, 82, 95, 88, 56, 54,
/* 0x2510 */ 95, 54, 52, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67,
/* 0x2520 */ 72, 77, 65, 73, 78, 88, 43, 48,120, 48, 48, 48, 48, 48, 48, 48,
/* 0x2530 */ 48, 48, 48, 48, 48, 48, 48, 48,100, 10, 48, 48, 48, 48, 48, 48,
/* 0x2540 */ 48, 48, 48, 48, 48, 48, 48, 48, 52, 56, 32, 82, 95, 88, 56, 54,
/* 0x2550 */ 95, 54, 52, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67,
/* 0x2560 */ 72, 77, 65, 73, 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48,
/* 0x2570 */ 48, 48, 48, 48, 48, 48, 49, 51, 52, 10, 48, 48, 48, 48, 48, 48,
/* 0x2580 */ 48, 48, 48, 48, 48, 48, 48, 48, 52,101, 32, 82, 95, 88, 56, 54,
/* 0x2590 */ 95, 54, 52, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67,
/* 0x25a0 */ 72, 77, 65, 73, 78, 88, 43, 48,120, 48, 48, 48, 48, 48, 48, 48,
/* 0x25b0 */ 48, 48, 48, 48, 48, 48, 48, 48,100, 10
};
+203 -203
View File
@@ -1,5 +1,5 @@
/* amd64-darwin.macho-entry.h
created from amd64-darwin.macho-entry.bin, 9067 (0x236b) bytes
created from amd64-darwin.macho-entry.bin, 9066 (0x236a) bytes
This file is part of the UPX executable compressor.
@@ -31,11 +31,11 @@
*/
#define STUB_AMD64_DARWIN_MACHO_ENTRY_SIZE 9067
#define STUB_AMD64_DARWIN_MACHO_ENTRY_ADLER32 0x7f892f77
#define STUB_AMD64_DARWIN_MACHO_ENTRY_CRC32 0xfa52baa6
#define STUB_AMD64_DARWIN_MACHO_ENTRY_SIZE 9066
#define STUB_AMD64_DARWIN_MACHO_ENTRY_ADLER32 0xf6d72f36
#define STUB_AMD64_DARWIN_MACHO_ENTRY_CRC32 0x61c1174a
unsigned char stub_amd64_darwin_macho_entry[9067] = {
unsigned char stub_amd64_darwin_macho_entry[9066] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 1, 0, 62, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,248, 23, 0, 0, 0, 0, 0, 0,
@@ -405,202 +405,202 @@ unsigned char stub_amd64_darwin_macho_entry[9067] = {
/* 0x16e0 */ 91, 93, 65, 92, 65, 93, 65, 94, 65, 95, 72,139,117,248, 72,139,
/* 0x16f0 */ 125, 16,139, 75, 4, 72, 1,206,139, 19, 72, 1,215,201, 89, 72,
/* 0x1700 */ 137,240, 72, 41,200, 90, 72, 41,215, 89,137, 57, 91, 93,195, 91,
/* 0x1710 */ 139, 75, 4, 72,141,116, 25, 11,139,123, 0, 72,141,188, 31,203,
/* 0x1720 */ 0, 0, 0,253,243,164, 72,141,147,128, 0, 0, 0, 72,137,222,
/* 0x1730 */ 72,141,127, 1, 82,252,173, 80, 72,137,225,173, 80,173, 68, 15,
/* 0x1740 */ 182,192, 94,255,213, 89, 72,141, 93,247,195, 93,232,190,255,255,
/* 0x1750 */ 255,102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102,
/* 0x1760 */ 54, 52, 45,120, 56, 54, 45, 54, 52, 10, 10, 83,101, 99,116,105,
/* 0x1770 */ 111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32,
/* 0x1780 */ 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32,
/* 0x1790 */ 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x17a0 */ 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x17b0 */ 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,
/* 0x17c0 */ 108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 77,
/* 0x17d0 */ 65, 67, 72, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 48, 48, 48,
/* 0x17e0 */ 48, 48, 48, 48,100, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x17f0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x1800 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x1810 */ 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69,
/* 0x1820 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68,
/* 0x1830 */ 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72, 69, 65,
/* 0x1840 */ 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 54, 54, 32,
/* 0x1850 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1860 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1870 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 52,100, 32, 32, 50,
/* 0x1880 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82,
/* 0x1890 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, 86, 50,
/* 0x18a0 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x18b0 */ 98, 55, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x18c0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x18d0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 98, 51,
/* 0x18e0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
/* 0x18f0 */ 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76,
/* 0x1900 */ 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32,
/* 0x1910 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 57,101, 32, 32, 48, 48,
/* 0x1920 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x1930 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1940 */ 32, 32, 48, 48, 48, 48, 48, 49, 54, 97, 32, 32, 50, 42, 42, 48,
/* 0x1950 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79,
/* 0x1960 */ 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32,
/* 0x1970 */ 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48,
/* 0x1980 */ 48, 48, 48, 48, 57, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1990 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x19a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x19b0 */ 48, 50, 48, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
/* 0x19c0 */ 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65,
/* 0x19d0 */ 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 76, 90, 77, 65, 95, 69,
/* 0x19e0 */ 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 54, 52,
/* 0x19f0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1a00 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1a10 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 57, 56, 32, 32,
/* 0x1a20 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
/* 0x1a30 */ 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
/* 0x1a40 */ 32, 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32,
/* 0x1a50 */ 32, 32, 48, 48, 48, 48, 48, 57,102, 55, 32, 32, 48, 48, 48, 48,
/* 0x1a60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x1a70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x1a80 */ 48, 48, 48, 48, 48, 50,102, 99, 32, 32, 50, 42, 42, 48, 32, 32,
/* 0x1a90 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78,
/* 0x1aa0 */ 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50,
/* 0x1ab0 */ 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57,102, 55, 32, 32, 48,
/* 0x1ac0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1ad0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1ae0 */ 48, 32, 32, 48, 48, 48, 48, 48, 99,102, 51, 32, 32, 50, 42, 42,
/* 0x1af0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65,
/* 0x1b00 */ 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, 68,
/* 0x1b10 */ 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 52,
/* 0x1b20 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1b30 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1b40 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 54,101, 97, 32, 32,
/* 0x1b50 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
/* 0x1b60 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 78, 82, 86,
/* 0x1b70 */ 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48,
/* 0x1b80 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1b90 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1ba0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 54,102,
/* 0x1bb0 */ 101, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
/* 0x1bc0 */ 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32,
/* 0x1bd0 */ 77, 65, 67, 72, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 48, 48,
/* 0x1be0 */ 48, 48, 48, 48, 49, 49, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1bf0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x1c00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x1c10 */ 49, 54,102,101, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
/* 0x1c20 */ 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32,
/* 0x1c30 */ 49, 49, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 32, 32, 32, 32,
/* 0x1c40 */ 32, 48, 48, 48, 48, 48, 48, 52, 50, 32, 32, 48, 48, 48, 48, 48,
/* 0x1c50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x1c60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x1c70 */ 48, 48, 48, 49, 55, 48,102, 32, 32, 50, 42, 42, 48, 32, 32, 67,
/* 0x1c80 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76,
/* 0x1c90 */ 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10,
/* 0x1ca0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1cb0 */ 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65,
/* 0x1cc0 */ 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1cd0 */ 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48,
/* 0x1ce0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32,
/* 0x1cf0 */ 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9,
/* 0x1d00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1d10 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48,
/* 0x1d20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32,
/* 0x1d30 */ 32, 32,100, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 9, 48,
/* 0x1d40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1d50 */ 77, 65, 67, 72, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48,
/* 0x1d60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,
/* 0x1d70 */ 100, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 9, 48, 48, 48,
/* 0x1d80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 77, 65,
/* 0x1d90 */ 67, 72, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1da0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32,
/* 0x1db0 */ 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48,
/* 0x1dc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 77, 65, 67, 72,
/* 0x1dd0 */ 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1de0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78,
/* 0x1df0 */ 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1e00 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48,
/* 0x1e10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32,
/* 0x1e20 */ 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48,
/* 0x1e30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50,
/* 0x1e40 */ 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1e50 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66,
/* 0x1e60 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1e70 */ 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1e80 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32,
/* 0x1e90 */ 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48,
/* 0x1ea0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77,
/* 0x1eb0 */ 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1ec0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32,
/* 0x1ed0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48,
/* 0x1ee0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77,
/* 0x1ef0 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1f00 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32,
/* 0x1f10 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48,
/* 0x1f20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77,
/* 0x1f30 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1f40 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32,
/* 0x1f50 */ 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48,
/* 0x1f60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84,
/* 0x1f70 */ 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1f80 */ 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67,
/* 0x1f90 */ 72, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1fa0 */ 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 48,
/* 0x1fb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 49, 32,
/* 0x1fc0 */ 103, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78,
/* 0x1fd0 */ 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1fe0 */ 48, 48, 32,101,110,100, 95,100,101, 99,111,109,112,114,101,115,
/* 0x1ff0 */ 115, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69,
/* 0x2000 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 77, 65, 67, 72, 77,
/* 0x2010 */ 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32,
/* 0x2020 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32,
/* 0x2030 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10,
/* 0x2040 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49,
/* 0x2050 */ 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32,
/* 0x2060 */ 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 43, 48,120, 48,
/* 0x2070 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 51, 56, 10,
/* 0x2080 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79,
/* 0x2090 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58,
/* 0x20a0 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x20b0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x20c0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,
/* 0x20d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 97,101, 32, 82, 95, 88, 56, 54,
/* 0x20e0 */ 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 78, 82, 86,
/* 0x20f0 */ 95, 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2100 */ 48, 48, 48, 48, 48, 48, 50, 49, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x2110 */ 48, 48, 48, 48, 48, 48, 48, 53, 98, 32, 82, 95, 88, 56, 54, 95,
/* 0x2120 */ 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 77, 65, 67, 72,
/* 0x2130 */ 77, 65, 73, 78, 89, 43, 48,120,102,102,102,102,102,102,102,102,
/* 0x2140 */ 102,102,102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65,
/* 0x2150 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82,
/* 0x2160 */ 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84,
/* 0x2170 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32,
/* 0x2180 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76,
/* 0x2190 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x21a0 */ 48, 57, 53, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51,
/* 0x21b0 */ 50, 32, 32, 32, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 43, 48,
/* 0x21c0 */ 120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50,
/* 0x21d0 */ 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x21e0 */ 53, 98, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50,
/* 0x21f0 */ 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 43, 48,
/* 0x2200 */ 120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,
/* 0x2210 */ 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69,
/* 0x2220 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66,
/* 0x2230 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32,
/* 0x2240 */ 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2250 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48,
/* 0x2260 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 56, 97, 32, 82, 95, 88,
/* 0x2270 */ 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 78,
/* 0x2280 */ 82, 86, 95, 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, 48, 48,
/* 0x2290 */ 48, 48, 48, 48, 48, 48, 48, 48, 50, 49, 10, 48, 48, 48, 48, 48,
/* 0x22a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 50, 32, 82, 95, 88, 56,
/* 0x22b0 */ 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 77, 65,
/* 0x22c0 */ 67, 72, 77, 65, 73, 78, 89, 43, 48,120,102,102,102,102,102,102,
/* 0x22d0 */ 102,102,102,102,102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79,
/* 0x22e0 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70,
/* 0x22f0 */ 79, 82, 32, 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58,
/* 0x2300 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2310 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2320 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,
/* 0x2330 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 54, 32, 82, 95, 88, 56, 54,
/* 0x2340 */ 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 76, 90, 77,
/* 0x2350 */ 65, 95, 68, 69, 67, 51, 48, 43, 48,120, 48, 48, 48, 48, 48, 48,
/* 0x2360 */ 48, 48, 48, 48, 48, 48, 48, 48, 49, 48, 10
/* 0x1710 */ 139, 75, 4, 72,141,116, 25, 11,139, 59, 72,141,188, 31,203, 0,
/* 0x1720 */ 0, 0,253,243,164, 72,141,147,128, 0, 0, 0, 72,137,222, 72,
/* 0x1730 */ 141,127, 1, 82,252,173, 80, 72,137,225,173, 80,173, 68, 15,182,
/* 0x1740 */ 192, 94,255,213, 89, 72,141, 93,247,195, 93,232,191,255,255,255,
/* 0x1750 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 54,
/* 0x1760 */ 52, 45,120, 56, 54, 45, 54, 52, 10, 10, 83,101, 99,116,105,111,
/* 0x1770 */ 110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32,
/* 0x1780 */ 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32,
/* 0x1790 */ 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x17a0 */ 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x17b0 */ 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,
/* 0x17c0 */ 103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 77, 65,
/* 0x17d0 */ 67, 72, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 48, 48, 48, 48,
/* 0x17e0 */ 48, 48, 48,100, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x17f0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1800 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x1810 */ 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x1820 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79,
/* 0x1830 */ 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72, 69, 65, 68,
/* 0x1840 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 54, 54, 32, 32,
/* 0x1850 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1860 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1870 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 52,100, 32, 32, 50, 42,
/* 0x1880 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69,
/* 0x1890 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, 86, 50, 69,
/* 0x18a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 98,
/* 0x18b0 */ 55, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x18c0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x18d0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 98, 51, 32,
/* 0x18e0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44,
/* 0x18f0 */ 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89,
/* 0x1900 */ 10, 32, 32, 51, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32,
/* 0x1910 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 57,101, 32, 32, 48, 48, 48,
/* 0x1920 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x1930 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1940 */ 32, 48, 48, 48, 48, 48, 49, 54, 97, 32, 32, 50, 42, 42, 48, 32,
/* 0x1950 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67,
/* 0x1960 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 78,
/* 0x1970 */ 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48,
/* 0x1980 */ 48, 48, 48, 57, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1990 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x19a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x19b0 */ 50, 48, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69,
/* 0x19c0 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68,
/* 0x19d0 */ 79, 78, 76, 89, 10, 32, 32, 53, 32, 76, 90, 77, 65, 95, 69, 76,
/* 0x19e0 */ 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 54, 52, 32,
/* 0x19f0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1a00 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1a10 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 57, 56, 32, 32, 50,
/* 0x1a20 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82,
/* 0x1a30 */ 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32,
/* 0x1a40 */ 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32,
/* 0x1a50 */ 32, 48, 48, 48, 48, 48, 57,102, 55, 32, 32, 48, 48, 48, 48, 48,
/* 0x1a60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x1a70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x1a80 */ 48, 48, 48, 48, 50,102, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67,
/* 0x1a90 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76,
/* 0x1aa0 */ 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48,
/* 0x1ab0 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 57,102, 55, 32, 32, 48, 48,
/* 0x1ac0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x1ad0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1ae0 */ 32, 32, 48, 48, 48, 48, 48, 99,102, 51, 32, 32, 50, 42, 42, 48,
/* 0x1af0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68,
/* 0x1b00 */ 79, 78, 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, 68, 69,
/* 0x1b10 */ 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 52, 32,
/* 0x1b20 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1b30 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1b40 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 54,101, 97, 32, 32, 50,
/* 0x1b50 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82,
/* 0x1b60 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 78, 82, 86, 95,
/* 0x1b70 */ 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x1b80 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1b90 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1ba0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 54,102,101,
/* 0x1bb0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
/* 0x1bc0 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 77,
/* 0x1bd0 */ 65, 67, 72, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 48, 48, 48,
/* 0x1be0 */ 48, 48, 48, 49, 49, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1bf0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x1c00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49,
/* 0x1c10 */ 54,102,101, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69,
/* 0x1c20 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49,
/* 0x1c30 */ 49, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32,
/* 0x1c40 */ 48, 48, 48, 48, 48, 48, 52, 49, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x1c50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x1c60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x1c70 */ 48, 48, 49, 55, 48,102, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
/* 0x1c80 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89,
/* 0x1c90 */ 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48,
/* 0x1ca0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1cb0 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68,
/* 0x1cc0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1cd0 */ 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48,
/* 0x1ce0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x1cf0 */ 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48,
/* 0x1d00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1d10 */ 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48,
/* 0x1d20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x1d30 */ 32,100, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 9, 48, 48,
/* 0x1d40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 77,
/* 0x1d50 */ 65, 67, 72, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x1d60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x1d70 */ 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 9, 48, 48, 48, 48,
/* 0x1d80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 77, 65, 67,
/* 0x1d90 */ 72, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1da0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x1db0 */ 77, 65, 67, 72, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48,
/* 0x1dc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 77, 65, 67, 72, 77,
/* 0x1dd0 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1de0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82,
/* 0x1df0 */ 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1e00 */ 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48,
/* 0x1e10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x1e20 */ 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48,
/* 0x1e30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68,
/* 0x1e40 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1e50 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 9,
/* 0x1e60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1e70 */ 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1e80 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x1e90 */ 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48,
/* 0x1ea0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65,
/* 0x1eb0 */ 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1ec0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x1ed0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48,
/* 0x1ee0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65,
/* 0x1ef0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1f00 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x1f10 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48,
/* 0x1f20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65,
/* 0x1f30 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1f40 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x1f50 */ 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x1f60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65,
/* 0x1f70 */ 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1f80 */ 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72,
/* 0x1f90 */ 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1fa0 */ 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 48, 48,
/* 0x1fb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 49, 32,103,
/* 0x1fc0 */ 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89,
/* 0x1fd0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1fe0 */ 48, 32,101,110,100, 95,100,101, 99,111,109,112,114,101,115,115,
/* 0x1ff0 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
/* 0x2000 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 77, 65, 67, 72, 77, 65,
/* 0x2010 */ 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32,
/* 0x2020 */ 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32,
/* 0x2030 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48,
/* 0x2040 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 32,
/* 0x2050 */ 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32,
/* 0x2060 */ 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 43, 48,120, 48, 48,
/* 0x2070 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 51, 55, 10, 10,
/* 0x2080 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82,
/* 0x2090 */ 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10,
/* 0x20a0 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x20b0 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x20c0 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x20d0 */ 48, 48, 48, 48, 48, 48, 48, 97,101, 32, 82, 95, 88, 56, 54, 95,
/* 0x20e0 */ 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 78, 82, 86, 95,
/* 0x20f0 */ 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2100 */ 48, 48, 48, 48, 48, 50, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2110 */ 48, 48, 48, 48, 48, 48, 53, 98, 32, 82, 95, 88, 56, 54, 95, 54,
/* 0x2120 */ 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77,
/* 0x2130 */ 65, 73, 78, 89, 43, 48,120,102,102,102,102,102,102,102,102,102,
/* 0x2140 */ 102,102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84,
/* 0x2150 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32,
/* 0x2160 */ 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
/* 0x2170 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32,
/* 0x2180 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
/* 0x2190 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x21a0 */ 57, 53, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50,
/* 0x21b0 */ 32, 32, 32, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 43, 48,120,
/* 0x21c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 49,
/* 0x21d0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53,
/* 0x21e0 */ 98, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32,
/* 0x21f0 */ 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 43, 48,120,
/* 0x2200 */ 102,102,102,102,102,102,102,102,102,102,102,102,102,102,102, 99,
/* 0x2210 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
/* 0x2220 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93,
/* 0x2230 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2240 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2250 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48,
/* 0x2260 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 56, 97, 32, 82, 95, 88, 56,
/* 0x2270 */ 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 78, 82,
/* 0x2280 */ 86, 95, 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, 48, 48, 48,
/* 0x2290 */ 48, 48, 48, 48, 48, 48, 48, 50, 49, 10, 48, 48, 48, 48, 48, 48,
/* 0x22a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 53, 50, 32, 82, 95, 88, 56, 54,
/* 0x22b0 */ 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 77, 65, 67,
/* 0x22c0 */ 72, 77, 65, 73, 78, 89, 43, 48,120,102,102,102,102,102,102,102,
/* 0x22d0 */ 102,102,102,102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, 67,
/* 0x22e0 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79,
/* 0x22f0 */ 82, 32, 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10,
/* 0x2300 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2310 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2320 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x2330 */ 48, 48, 48, 48, 48, 48, 48, 48, 54, 32, 82, 95, 88, 56, 54, 95,
/* 0x2340 */ 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 76, 90, 77, 65,
/* 0x2350 */ 95, 68, 69, 67, 51, 48, 43, 48,120, 48, 48, 48, 48, 48, 48, 48,
/* 0x2360 */ 48, 48, 48, 48, 48, 48, 48, 49, 48, 10
};
File diff suppressed because it is too large Load Diff
+152 -138
View File
@@ -1,5 +1,5 @@
/* arm-linux.elf-fold.h
created from arm-linux.elf-fold.bin, 2216 (0x8a8) bytes
created from arm-linux.elf-fold.bin, 2448 (0x990) bytes
This file is part of the UPX executable compressor.
@@ -31,148 +31,162 @@
*/
#define STUB_ARM_LINUX_ELF_FOLD_SIZE 2216
#define STUB_ARM_LINUX_ELF_FOLD_ADLER32 0xeba4963b
#define STUB_ARM_LINUX_ELF_FOLD_CRC32 0xaa23006f
#define STUB_ARM_LINUX_ELF_FOLD_SIZE 2448
#define STUB_ARM_LINUX_ELF_FOLD_ADLER32 0x8b56fde4
#define STUB_ARM_LINUX_ELF_FOLD_CRC32 0xc05da87e
unsigned char stub_arm_linux_elf_fold[2216] = {
unsigned char stub_arm_linux_elf_fold[2448] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 40, 0, 1, 0, 0, 0,128,128, 0, 0, 52, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 2, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0,
/* 0x0040 */ 0,128, 0, 0,168, 8, 0, 0,168, 8, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0,128, 0, 0, 1, 0, 0, 0,168, 8, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 0,128, 0, 0,144, 9, 0, 0,144, 9, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0,128, 0, 0, 1, 0, 0, 0,144, 9, 0, 0, 0, 0, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 20, 48,157,229, 16,224,157,229, 3, 49,141,224, 28, 48,131,226,
/* 0x0090 */ 4, 0,147,228, 0, 0, 80,227,252,255,255, 26, 3, 32,160,225,
/* 0x00a0 */ 8, 0,146,228, 0, 0, 80,227,252,255,255, 26, 8, 32,141,229,
/* 0x00b0 */ 10,220, 77,226, 9, 64,160,225, 4,144,154,229, 13,128,160,225,
/* 0x00c0 */ 0,112,154,229, 88, 96,143,226, 12,144,137,226, 0,176,160,227,
/* 0x00d0 */ 196,192,159,229,248, 95, 45,233, 15, 0,189,232,145, 1, 0,235,
/* 0x00e0 */ 0,224,160,225, 28,208,141,226, 10,220,141,226, 31, 0,189,232,
/* 0x00f0 */ 3, 0,128,224, 3, 16, 65,224, 0, 48,160,227, 0, 64,160,227,
/* 0x0100 */ 0, 80,160,227, 0, 96,160,227, 0,128,160,227, 0,144,160,227,
/* 0x0110 */ 0,160,160,227, 0,176,160,227, 0,112,160,227, 0,192,160,227,
/* 0x0120 */ 4,240, 18,229,255, 48, 3,226, 80, 0, 83,227, 14,240,160, 17,
/* 0x0130 */ 33, 17,176,225, 0, 0, 80, 19, 14,240,160, 1, 1, 16, 65,226,
/* 0x0140 */ 1, 33,144,231, 15, 52, 2,226, 11, 4, 83,227, 4, 0, 0, 26,
/* 0x0150 */ 255, 52, 2,226, 1, 32, 66,224,255, 36,194,227, 3, 32,130,225,
/* 0x0160 */ 1, 33,128,231, 0, 0, 81,227,243,255,255, 26, 14,240,160,225,
/* 0x0170 */ 1, 0,144,239, 3, 0,144,239, 14,240,160,225, 4, 0,144,239,
/* 0x0180 */ 14,240,160,225, 5, 0,144,239, 14,240,160,225, 6, 0,144,239,
/* 0x0190 */ 14,240,160,225, 45, 0,144,239, 14,240,160,225, 91, 0,144,239,
/* 0x01a0 */ 14,240,160,225,125, 0,144,239, 14,240,160,225, 4, 80, 45,229,
/* 0x01b0 */ 8, 80,157,229, 4, 64, 45,229, 8, 64,157,229, 37, 86,160,225,
/* 0x01c0 */ 192, 0,144,239, 4, 64,157,228, 4, 80,157,228, 14,240,160,225,
/* 0x01d0 */ 92,193, 31,229, 4, 80, 45,229, 0, 80,160,227, 4, 64, 45,229,
/* 0x01e0 */ 0, 64,224,227, 12, 48,131,225,244,255,255,234, 0, 0, 80,227,
/* 0x01f0 */ 14,240,160, 1, 0, 48,144,229, 1, 0, 83,225, 8, 0,128, 18,
/* 0x0200 */ 251,255,255, 26, 4, 32,128,229, 14,240,160,225, 0, 48,144,229,
/* 0x0210 */ 2, 0, 83,225, 4, 48,144,229, 4,224, 45,229, 3,192,160, 33,
/* 0x0220 */ 2,224,160,225, 2, 32,160, 33, 3, 0, 0, 42,127, 0,160,227,
/* 0x0230 */ 206,255,255,235, 1, 48, 92,229, 1, 48, 65,229, 1, 32, 66,226,
/* 0x0240 */ 1, 0,114,227, 1,192,140,226, 1, 16,129,226,248,255,255, 26,
/* 0x0250 */ 4, 32,144,229, 0, 48,144,229, 14, 32,130,224, 3, 48,110,224,
/* 0x0260 */ 0, 48,128,229, 4, 32,128,229, 4,240,157,228,240, 64, 45,233,
/* 0x0270 */ 0, 80,160,225, 20,208, 77,226, 1, 64,160,225, 2,112,160,225,
/* 0x0280 */ 3, 96,160,225, 68, 0, 0,234, 4, 16,141,226, 5, 0,160,225,
/* 0x0290 */ 12, 32,160,227,220,255,255,235, 4,192,157,229, 0, 0, 92,227,
/* 0x02a0 */ 8, 16,157,229, 6, 0, 0, 26, 0, 49,159,229, 3, 0, 81,225,
/* 0x02b0 */ 5, 0, 0, 26, 0, 48,149,229, 0, 0, 83,227, 2, 0, 0, 26,
/* 0x02c0 */ 56, 0, 0,234, 0, 0, 81,227, 1, 0, 0, 26,127, 0,160,227,
/* 0x02d0 */ 166,255,255,235, 12, 0, 81,225,251,255,255,138, 0, 48,148,229,
/* 0x02e0 */ 3, 0, 92,225,248,255,255,138, 12, 0, 81,225, 33, 0, 0, 42,
/* 0x02f0 */ 16,192,141,229, 12,192,157,229, 4, 0,149,229, 4, 32,148,229,
/* 0x0300 */ 16, 48,141,226, 0,192,141,229, 15,224,160,225, 7,240,160,225,
/* 0x0310 */ 0, 0, 80,227,236,255,255, 26, 16, 16,157,229, 4, 48,157,229,
/* 0x0320 */ 3, 0, 81,225,232,255,255, 26, 13, 32,221,229, 0, 0, 82,227,
/* 0x0330 */ 0, 0, 86, 19, 9, 0, 0, 10, 2, 12, 81,227, 2, 0, 0,138,
/* 0x0340 */ 0, 48,148,229, 1, 0, 83,225, 4, 0, 0, 26, 2, 48,160,225,
/* 0x0350 */ 4, 0,148,229, 14, 32,221,229, 15,224,160,225, 6,240,160,225,
/* 0x0360 */ 8, 48,157,229, 6, 0,149,232, 3, 32,130,224, 1, 16, 99,224,
/* 0x0370 */ 6, 0,133,232, 3, 0, 0,234, 1, 32,160,225, 5, 0,160,225,
/* 0x0380 */ 4, 16,148,229,160,255,255,235, 4, 48,157,229, 6, 0,148,232,
/* 0x0390 */ 3, 32,130,224, 1, 16, 99,224, 6, 0,132,232, 0, 48,148,229,
/* 0x03a0 */ 0, 0, 83,227,183,255,255, 26, 20,208,141,226,240,128,189,232,
/* 0x03b0 */ 85, 80, 88, 33,240, 79, 45,233, 1,160,160,225, 28, 16,145,229,
/* 0x03c0 */ 52,208, 77,226, 1, 96,138,224, 88, 16,157,229,176,193,218,225,
/* 0x03d0 */ 0, 16,145,229,188,226,218,225, 2, 0, 92,227, 24, 16,141,229,
/* 0x03e0 */ 16, 0,141,229, 16, 80,160, 3, 0, 80,160, 19, 1,224, 78,226,
/* 0x03f0 */ 6, 16,160,225, 0, 0,224,227, 0,192,160,227, 12, 32,141,229,
/* 0x0400 */ 8, 48,141,229, 11, 0, 0,234, 0, 48,145,229, 1, 0, 83,227,
/* 0x0410 */ 6, 0, 0, 26, 8, 32,145,229, 20, 48,145,229, 3, 48,130,224,
/* 0x0420 */ 3, 0, 92,225, 3,192,160, 49, 2, 0, 80,225, 2, 0,160, 33,
/* 0x0430 */ 32, 16,129,226, 1,224, 78,226, 0, 0, 94,227,241,255,255,170,
/* 0x0440 */ 255, 78,192,227, 15, 64,196,227, 12, 48,100,224,255, 62,131,226,
/* 0x0450 */ 15, 48,131,226, 16, 32, 5,226,255, 62,195,227, 0, 0, 82,227,
/* 0x0460 */ 15, 48,195,227, 40, 48,141,229, 32, 64,141, 21, 4, 0, 0, 26,
/* 0x0470 */ 5, 48,160,225, 4, 0,160,225, 40, 16,157,229, 83,255,255,235,
/* 0x0480 */ 32, 0,141,229, 32, 32,157,229, 52, 48,160,227, 2,176,100,224,
/* 0x0490 */ 155, 3, 3,224, 32, 80,134,226, 36, 48,141,229, 0, 48,160,227,
/* 0x04a0 */ 28, 48,141,229,129, 0, 0,234, 12,192,157,229, 0, 0, 92,227,
/* 0x04b0 */ 8, 0, 0, 10, 32, 48, 21,229, 6, 0, 83,227, 5, 0, 0, 26,
/* 0x04c0 */ 24, 32, 21,229, 8, 0,157,229, 2, 32,139,224, 3, 16,160,227,
/* 0x04d0 */ 69,255,255,235,113, 0, 0,234, 32, 48, 21,229, 1, 0, 83,227,
/* 0x04e0 */ 110, 0, 0, 26, 8, 48, 21,229, 48, 34,159,229, 7, 48, 3,226,
/* 0x04f0 */ 3, 49,160,225, 50, 67,160,225, 24, 48, 21,229, 3,144,139,224,
/* 0x0500 */ 9, 42,160,225, 16, 48, 21,229, 34, 42,160,225, 12, 16,157,229,
/* 0x0510 */ 44, 48,141,229, 2,112,131,224, 12, 48, 21,229, 0, 0, 81,227,
/* 0x0520 */ 48,144,141,229, 7,128, 4,226, 20, 48,141,229, 9, 96, 98,224,
/* 0x0530 */ 14, 0, 0, 10, 6, 0,160,225, 7, 16,160,225, 2, 32,136,227,
/* 0x0540 */ 16, 48,160,227, 33,255,255,235, 0, 0, 86,225, 68, 0, 0, 26,
/* 0x0550 */ 92,192,157,229, 4, 48, 20,226, 12, 48,160, 17, 12, 0,157,229,
/* 0x0560 */ 44, 16,141,226, 16, 32,157,229, 63,255,255,235, 11, 0, 0,234,
/* 0x0570 */ 28,192, 21,229, 12,192, 98,224, 4,192,141,229, 16,192,157,229,
/* 0x0580 */ 6, 0,160,225, 7, 16,160,225, 8, 32,160,225, 18, 48,160,227,
/* 0x0590 */ 0,192,141,229, 4,255,255,235, 0, 0, 86,225, 48, 0, 0, 26,
/* 0x05a0 */ 0, 48,103,226, 3, 74,160,225, 2, 0, 24,227, 36, 74,160,225,
/* 0x05b0 */ 7, 0, 0, 10, 0, 0, 84,227, 5, 0, 0, 10, 7, 16,134,224,
/* 0x05c0 */ 4, 32,160,225, 0, 48,160,227, 1, 32, 82,226, 1, 48,193,228,
/* 0x05d0 */ 251,255,255, 26, 12, 16,157,229, 0, 0, 81,227, 34, 0, 0, 10,
/* 0x05e0 */ 32, 48, 21,229, 1, 0, 83,227, 23, 0, 0, 26, 8, 48, 21,229,
/* 0x05f0 */ 1, 0, 19,227, 20, 0, 0, 10, 12, 32, 21,229, 16, 48, 21,229,
/* 0x0600 */ 3, 0, 82,225, 24, 16, 21,229, 55, 0, 0, 26, 1, 48,130,224,
/* 0x0610 */ 3, 48,131,226, 3, 48,139,224, 3, 32,195,227, 0, 48, 98,226,
/* 0x0620 */ 3, 58,160,225, 35, 58,160,225, 7, 0, 83,227, 46, 0, 0,154,
/* 0x0630 */ 236, 48,159,229, 4, 48,130,229, 24, 48,157,229, 8, 0,157,229,
/* 0x0640 */ 0, 48,130,229, 0, 16,160,227,231,254,255,235, 6, 0,160,225,
/* 0x0650 */ 7, 16,160,225, 8, 32,160,225,209,254,255,235, 0, 0, 80,227,
/* 0x0660 */ 1, 0, 0, 10,127, 0,160,227,192,254,255,235, 20,192,157,229,
/* 0x0670 */ 4, 48,135,224, 12, 16,137,224, 3, 64,134,224, 1, 0, 84,225,
/* 0x0680 */ 6, 0, 0, 42, 1, 16,100,224, 8, 32,160,225, 4, 0,160,225,
/* 0x0690 */ 16, 48,160,227,205,254,255,235, 0, 0, 84,225,240,255,255, 26,
/* 0x06a0 */ 28, 16,157,229, 1, 16,129,226, 28, 16,141,229, 32, 80,133,226,
/* 0x06b0 */ 188, 50,218,225, 28, 32,157,229, 3, 0, 82,225,121,255,255,186,
/* 0x06c0 */ 12, 48,157,229, 0, 0, 83,227, 14, 0, 0, 10,176, 49,218,225,
/* 0x06d0 */ 3, 0, 83,227, 11, 0, 0, 10, 32,192,157,229, 40, 16,157,229,
/* 0x06e0 */ 1, 0,140,224,170,254,255,235, 6, 0, 0,234, 28, 48, 21,229,
/* 0x06f0 */ 0, 0, 83,227, 36, 32,157, 5, 2, 48,129, 0, 8, 32,131, 2,
/* 0x0700 */ 202,255,255, 10,208,255,255,234, 88, 48,157,229, 0,176,131,229,
/* 0x0710 */ 24, 0,154,229, 0, 0,139,224, 52,208,141,226,240,143,189,232,
/* 0x0720 */ 64, 98, 81,115, 14,240,160,225,240, 69, 45,233, 12,208, 77,226,
/* 0x0730 */ 0,112,160,225, 1, 80,160,225, 48, 0,141,226, 40, 16,141,226,
/* 0x0740 */ 3,160,160,225, 0, 48,160,227, 44, 96,157,229, 2,128,160,225,
/* 0x0750 */ 48, 64,157,229,196,254,255,235, 52, 48,157,229, 5, 16,160,227,
/* 0x0760 */ 3, 48,100,224,188, 34,214,225, 7, 0,160,225, 52, 48,141,229,
/* 0x0770 */ 48, 80,141,229,156,254,255,235, 4, 16,160,227, 7, 0,160,225,
/* 0x0780 */ 186, 34,214,225,152,254,255,235, 52, 80,134,226, 6, 16,160,225,
/* 0x0790 */ 52, 48,145,229, 1, 0, 83,227, 32, 16,129,226,251,255,255, 26,
/* 0x07a0 */ 56, 32,157,229, 28, 48,145,229, 52, 32,130,226, 3, 32,130,224,
/* 0x07b0 */ 7, 0,160,225, 3, 16,160,227,139,254,255,235, 60, 48,157,229,
/* 0x07c0 */ 12,192,141,226, 4, 48, 44,229, 6, 16,160,225, 48, 32,141,226,
/* 0x07d0 */ 7, 48,160,225, 8, 0,160,225, 0,192,141,229, 4,160,141,229,
/* 0x07e0 */ 243,254,255,235, 0, 64,160,225, 9, 16,160,227, 4, 32,160,225,
/* 0x07f0 */ 7, 0,160,225,124,254,255,235,188, 18,214,225, 0, 32,160,227,
/* 0x0800 */ 35, 0, 0,234, 0, 48,149,229, 3, 0, 83,227, 30, 0, 0, 26,
/* 0x0810 */ 8, 48,149,229, 8, 0,157,229, 0, 16,160,227, 0, 0,131,224,
/* 0x0820 */ 1, 32,160,225, 86,254,255,235, 0, 80, 80,226, 4, 0, 0,186,
/* 0x0830 */ 6, 16,160,225, 2, 44,160,227, 77,254,255,235, 2, 12, 80,227,
/* 0x0840 */ 1, 0, 0, 10,127, 0,160,227, 72,254,255,235, 0,224,160,227,
/* 0x0850 */ 14, 32,160,225, 8,192,141,226, 6, 16,160,225, 7, 48,160,225,
/* 0x0860 */ 5, 0,160,225, 0, 80,141,232,209,254,255,235, 7, 16,160,227,
/* 0x0870 */ 0, 64,160,225, 8, 32,157,229, 7, 0,160,225, 90,254,255,235,
/* 0x0880 */ 5, 0,160,225, 64,254,255,235, 3, 0, 0,234, 32, 80,133,226,
/* 0x0890 */ 1, 32,130,226, 1, 0, 82,225,217,255,255,186, 4, 0,160,225,
/* 0x08a0 */ 12,208,141,226,240,133,189,232
/* 0x0080 */ 216, 9,189,232, 13, 16,160,225, 1,218, 77,226, 8,208, 77,226,
/* 0x0090 */ 13, 0,160,225,216, 8, 45,233, 1,176,139,226, 4, 32,145,228,
/* 0x00a0 */ 1,176, 91,226, 4, 32,128,228,251,255,255, 26, 4, 32,145,228,
/* 0x00b0 */ 4, 32,128,228, 0, 0, 82,227,251,255,255, 26, 4, 64, 64,226,
/* 0x00c0 */ 4, 32,128,228, 0, 48,160,225, 4, 32,145,229, 4, 32,128,229,
/* 0x00d0 */ 8, 32,145,228, 8, 32,128,228, 0, 0, 82,227,249,255,255, 26,
/* 0x00e0 */ 8, 0,141,229, 0, 0,132,229,180, 32,159,229, 4, 32,128,228,
/* 0x00f0 */ 1, 42,160,227, 0, 16,160,225,168, 0,143,226, 1, 32, 66,226,
/* 0x0100 */ 80, 0, 0,235, 1, 10,112,227, 1, 0, 0, 42, 0, 32,160,227,
/* 0x0110 */ 0, 32,193,231, 10,220, 77,226, 9, 64,160,225, 4,144,154,229,
/* 0x0120 */ 13,128,160,225, 0,112,154,229,136, 96,143,226, 12,144,137,226,
/* 0x0130 */ 0,176,160,227, 20,193,159,229,248, 31, 45,233, 15, 0,189,232,
/* 0x0140 */ 178, 1, 0,235, 0,224,160,225, 24,208,141,226, 10,220,141,226,
/* 0x0150 */ 15, 0,189,232, 3, 0,128,224, 3, 16, 65,224, 0, 48,160,227,
/* 0x0160 */ 0, 64,160,227, 0, 80,160,227, 0, 96,160,227, 0,128,160,227,
/* 0x0170 */ 0,144,160,227, 0,160,160,227, 0,176,160,227, 2,199, 77,226,
/* 0x0180 */ 32,112, 29,228, 0,112,141,229, 0,112,157,229, 13, 0, 92,225,
/* 0x0190 */ 250,255,255, 58, 2,215,141,226, 0,112,160,227, 0,192,160,227,
/* 0x01a0 */ 4,240, 18,229, 32, 32, 32, 61, 47,112,114,111, 99, 47,115,101,
/* 0x01b0 */ 108,102, 47,101,120,101, 0, 0,255, 48, 3,226, 80, 0, 83,227,
/* 0x01c0 */ 14,240,160, 17, 33, 17,176,225, 0, 0, 80, 19, 14,240,160, 1,
/* 0x01d0 */ 1, 16, 65,226, 1, 33,144,231, 15, 52, 2,226, 11, 4, 83,227,
/* 0x01e0 */ 4, 0, 0, 26,255, 52, 2,226, 1, 32, 66,224,255, 36,194,227,
/* 0x01f0 */ 3, 32,130,225, 1, 33,128,231, 0, 0, 81,227,243,255,255, 26,
/* 0x0200 */ 14,240,160,225,240, 1,240,231, 14,240,160,225, 1, 0,144,239,
/* 0x0210 */ 3, 0,144,239, 14,240,160,225, 4, 0,144,239, 14,240,160,225,
/* 0x0220 */ 5, 0,144,239, 14,240,160,225, 6, 0,144,239, 14,240,160,225,
/* 0x0230 */ 10, 0,144,239, 14,240,160,225, 20, 0,144,239, 14,240,160,225,
/* 0x0240 */ 45, 0,144,239, 14,240,160,225, 85, 0,144,239, 14,240,160,225,
/* 0x0250 */ 91, 0,144,239, 14,240,160,225,125, 0,144,239, 14,240,160,225,
/* 0x0260 */ 0, 32,160,227, 2, 0,159,239, 14,240,160,225, 4, 80, 45,229,
/* 0x0270 */ 8, 80,157,229, 4, 64, 45,229, 8, 64,157,229, 37, 86,160,225,
/* 0x0280 */ 192, 0,144,239, 4, 64,157,228, 4, 80,157,228, 14,240,160,225,
/* 0x0290 */ 28,194, 31,229, 4, 80, 45,229, 0, 80,160,227, 4, 64, 45,229,
/* 0x02a0 */ 0, 64,224,227, 12, 48,131,225,244,255,255,234, 0, 0, 80,227,
/* 0x02b0 */ 14,240,160, 1, 0, 48,144,229, 1, 0, 83,225, 8, 0,128, 18,
/* 0x02c0 */ 251,255,255, 26, 4, 32,128,229, 14,240,160,225, 0, 48,144,229,
/* 0x02d0 */ 2, 0, 83,225, 4, 48,144,229, 4,224, 45,229, 3,192,160, 33,
/* 0x02e0 */ 2,224,160,225, 2, 32,160, 33, 3, 0, 0, 42,127, 0,160,227,
/* 0x02f0 */ 197,255,255,235, 1, 48, 92,229, 1, 48, 65,229, 1, 32, 66,226,
/* 0x0300 */ 1, 0,114,227, 1,192,140,226, 1, 16,129,226,248,255,255, 26,
/* 0x0310 */ 4, 32,144,229, 0, 48,144,229, 14, 32,130,224, 3, 48,110,224,
/* 0x0320 */ 0, 48,128,229, 4, 32,128,229, 4,240,157,228,240, 64, 45,233,
/* 0x0330 */ 0, 80,160,225, 20,208, 77,226, 1, 64,160,225, 2,112,160,225,
/* 0x0340 */ 3, 96,160,225, 68, 0, 0,234, 4, 16,141,226, 5, 0,160,225,
/* 0x0350 */ 12, 32,160,227,220,255,255,235, 4,192,157,229, 0, 0, 92,227,
/* 0x0360 */ 8, 16,157,229, 6, 0, 0, 26, 0, 49,159,229, 3, 0, 81,225,
/* 0x0370 */ 5, 0, 0, 26, 0, 48,149,229, 0, 0, 83,227, 2, 0, 0, 26,
/* 0x0380 */ 56, 0, 0,234, 0, 0, 81,227, 1, 0, 0, 26,127, 0,160,227,
/* 0x0390 */ 157,255,255,235, 12, 0, 81,225,251,255,255,138, 0, 48,148,229,
/* 0x03a0 */ 3, 0, 92,225,248,255,255,138, 12, 0, 81,225, 33, 0, 0, 42,
/* 0x03b0 */ 16,192,141,229, 12,192,157,229, 4, 0,149,229, 4, 32,148,229,
/* 0x03c0 */ 16, 48,141,226, 0,192,141,229, 15,224,160,225, 7,240,160,225,
/* 0x03d0 */ 0, 0, 80,227,236,255,255, 26, 16, 16,157,229, 4, 48,157,229,
/* 0x03e0 */ 3, 0, 81,225,232,255,255, 26, 13, 32,221,229, 0, 0, 82,227,
/* 0x03f0 */ 0, 0, 86, 19, 9, 0, 0, 10, 2, 12, 81,227, 2, 0, 0,138,
/* 0x0400 */ 0, 48,148,229, 1, 0, 83,225, 4, 0, 0, 26, 2, 48,160,225,
/* 0x0410 */ 4, 0,148,229, 14, 32,221,229, 15,224,160,225, 6,240,160,225,
/* 0x0420 */ 8, 48,157,229, 6, 0,149,232, 3, 32,130,224, 1, 16, 99,224,
/* 0x0430 */ 6, 0,133,232, 3, 0, 0,234, 1, 32,160,225, 5, 0,160,225,
/* 0x0440 */ 4, 16,148,229,160,255,255,235, 4, 48,157,229, 6, 0,148,232,
/* 0x0450 */ 3, 32,130,224, 1, 16, 99,224, 6, 0,132,232, 0, 48,148,229,
/* 0x0460 */ 0, 0, 83,227,183,255,255, 26, 20,208,141,226,240,128,189,232,
/* 0x0470 */ 85, 80, 88, 33,240, 79, 45,233, 1,144,160,225, 28, 16,145,229,
/* 0x0480 */ 56,208, 77,226, 1, 96,137,224, 92, 16,157,229,176,193,217,225,
/* 0x0490 */ 0, 16,145,229,188,226,217,225, 2, 0, 92,227, 28, 16,141,229,
/* 0x04a0 */ 16, 0,141,229, 16, 80,160, 3, 0, 80,160, 19, 1,224, 78,226,
/* 0x04b0 */ 6, 16,160,225, 0, 0,224,227, 0,192,160,227, 12, 32,141,229,
/* 0x04c0 */ 8, 48,141,229, 11, 0, 0,234, 0, 48,145,229, 1, 0, 83,227,
/* 0x04d0 */ 6, 0, 0, 26, 8, 32,145,229, 20, 48,145,229, 3, 48,130,224,
/* 0x04e0 */ 3, 0, 92,225, 3,192,160, 49, 2, 0, 80,225, 2, 0,160, 33,
/* 0x04f0 */ 32, 16,129,226, 1,224, 78,226, 0, 0, 94,227,241,255,255,170,
/* 0x0500 */ 255, 78,192,227, 15, 64,196,227, 12, 48,100,224,255, 62,131,226,
/* 0x0510 */ 15, 48,131,226, 16, 32, 5,226,255, 62,195,227, 0, 0, 82,227,
/* 0x0520 */ 15, 48,195,227, 44, 48,141,229, 36, 64,141, 21, 4, 0, 0, 26,
/* 0x0530 */ 5, 48,160,225, 4, 0,160,225, 44, 16,157,229, 83,255,255,235,
/* 0x0540 */ 36, 0,141,229, 36, 32,157,229, 2, 64,100,224, 52, 48,160,227,
/* 0x0550 */ 4,192,160,225,147, 12, 12,224, 0, 16,160,227, 32, 80,134,226,
/* 0x0560 */ 20, 64,141,229, 40,192,141,229, 32, 16,141,229,136, 0, 0,234,
/* 0x0570 */ 12, 32,157,229, 0, 0, 82,227, 9, 0, 0, 10, 32, 48, 21,229,
/* 0x0580 */ 6, 0, 83,227, 6, 0, 0, 26, 24, 32, 21,229, 20, 48,157,229,
/* 0x0590 */ 8, 0,157,229, 2, 32,131,224, 3, 16,160,227, 66,255,255,235,
/* 0x05a0 */ 119, 0, 0,234, 32, 48, 21,229, 1, 0, 83,227,116, 0, 0, 26,
/* 0x05b0 */ 8, 48, 21,229, 76, 34,159,229, 7, 48, 3,226, 3, 49,160,225,
/* 0x05c0 */ 50, 67,160,225, 20,192,157,229, 24, 48, 21,229, 3,176,140,224,
/* 0x05d0 */ 11, 42,160,225, 16, 48, 21,229, 34, 42,160,225, 12, 16,157,229,
/* 0x05e0 */ 48, 48,141,229, 2,128,131,224, 12, 48, 21,229, 0, 0, 81,227,
/* 0x05f0 */ 52,176,141,229, 7,160, 4,226, 24, 48,141,229, 11, 96, 98,224,
/* 0x0600 */ 14, 0, 0, 10, 6, 0,160,225, 8, 16,160,225, 2, 32,138,227,
/* 0x0610 */ 16, 48,160,227, 29,255,255,235, 0, 0, 86,225, 73, 0, 0, 26,
/* 0x0620 */ 96,192,157,229, 4, 48, 20,226, 12, 48,160, 17, 12, 0,157,229,
/* 0x0630 */ 48, 16,141,226, 16, 32,157,229, 59,255,255,235, 11, 0, 0,234,
/* 0x0640 */ 28,192, 21,229, 12,192, 98,224, 4,192,141,229, 16,192,157,229,
/* 0x0650 */ 6, 0,160,225, 8, 16,160,225, 10, 32,160,225, 18, 48,160,227,
/* 0x0660 */ 0,192,141,229, 0,255,255,235, 0, 0, 86,225, 53, 0, 0, 26,
/* 0x0670 */ 0, 48,104,226, 3,122,160,225, 2, 0, 26,227, 39,122,160,225,
/* 0x0680 */ 7, 0, 0, 10, 0, 0, 87,227, 5, 0, 0, 10, 8, 16,134,224,
/* 0x0690 */ 7, 32,160,225, 0, 48,160,227, 1, 32, 82,226, 1, 48,193,228,
/* 0x06a0 */ 251,255,255, 26, 12, 16,157,229, 0, 0, 81,227, 39, 0, 0, 10,
/* 0x06b0 */ 32, 48, 21,229, 1, 0, 83,227, 28, 0, 0, 26, 8, 48, 21,229,
/* 0x06c0 */ 1, 0, 19,227, 25, 0, 0, 10, 12, 32, 21,229, 16, 48, 21,229,
/* 0x06d0 */ 3, 0, 82,225, 24, 16, 21,229, 60, 0, 0, 26, 1, 48,130,224,
/* 0x06e0 */ 20, 32,157,229, 3, 48,131,226, 3, 48,130,224, 3, 64,195,227,
/* 0x06f0 */ 0, 48,100,226, 3, 58,160,225, 35, 58,160,225, 7, 0, 83,227,
/* 0x0700 */ 50, 0, 0,154, 0, 49,159,229, 4, 48,132,229, 28, 48,157,229,
/* 0x0710 */ 8, 16,132,226, 4, 0,160,225, 0, 48,132,229,207,254,255,235,
/* 0x0720 */ 8, 0,157,229, 4, 32,160,225, 0, 16,160,227,222,254,255,235,
/* 0x0730 */ 6, 0,160,225, 8, 16,160,225, 10, 32,160,225,197,254,255,235,
/* 0x0740 */ 0, 0, 80,227, 1, 0, 0, 10,127, 0,160,227,174,254,255,235,
/* 0x0750 */ 24,192,157,229, 7, 48,136,224, 12, 16,139,224, 3, 64,134,224,
/* 0x0760 */ 1, 0, 84,225, 6, 0, 0, 42, 1, 16,100,224, 10, 32,160,225,
/* 0x0770 */ 4, 0,160,225, 16, 48,160,227,196,254,255,235, 0, 0, 84,225,
/* 0x0780 */ 240,255,255, 26, 32, 16,157,229, 1, 16,129,226, 32, 16,141,229,
/* 0x0790 */ 32, 80,133,226,188, 50,217,225, 32, 32,157,229, 3, 0, 82,225,
/* 0x07a0 */ 114,255,255,186, 12, 48,157,229, 0, 0, 83,227, 14, 0, 0, 10,
/* 0x07b0 */ 176, 49,217,225, 3, 0, 83,227, 11, 0, 0, 10, 36,192,157,229,
/* 0x07c0 */ 44, 16,157,229, 1, 0,140,224,156,254,255,235, 6, 0, 0,234,
/* 0x07d0 */ 28, 48, 21,229, 0, 0, 83,227, 40, 32,157, 5, 2, 48,129, 0,
/* 0x07e0 */ 8, 64,131, 2,198,255,255, 10,208,255,255,234, 20,192,157,229,
/* 0x07f0 */ 92, 48,157,229, 0,192,131,229, 24, 0,153,229, 0, 0,140,224,
/* 0x0800 */ 56,208,141,226,240,143,189,232, 64, 98, 81,115, 14,240,160,225,
/* 0x0810 */ 240, 69, 45,233, 12,208, 77,226, 0,112,160,225, 1, 80,160,225,
/* 0x0820 */ 48, 0,141,226, 40, 16,141,226, 3,160,160,225, 0, 48,160,227,
/* 0x0830 */ 44, 96,157,229, 2,128,160,225, 48, 64,157,229,186,254,255,235,
/* 0x0840 */ 52, 48,157,229, 5, 16,160,227, 3, 48,100,224,188, 34,214,225,
/* 0x0850 */ 7, 0,160,225, 52, 48,141,229, 48, 80,141,229,146,254,255,235,
/* 0x0860 */ 4, 16,160,227, 7, 0,160,225,186, 34,214,225,142,254,255,235,
/* 0x0870 */ 52, 80,134,226, 6, 16,160,225, 52, 48,145,229, 1, 0, 83,227,
/* 0x0880 */ 32, 16,129,226,251,255,255, 26, 56, 32,157,229, 28, 48,145,229,
/* 0x0890 */ 52, 32,130,226, 3, 32,130,224, 7, 0,160,225, 3, 16,160,227,
/* 0x08a0 */ 129,254,255,235, 60, 48,157,229, 12,192,141,226, 4, 48, 44,229,
/* 0x08b0 */ 6, 16,160,225, 48, 32,141,226, 7, 48,160,225, 8, 0,160,225,
/* 0x08c0 */ 0,192,141,229, 4,160,141,229,233,254,255,235, 0, 64,160,225,
/* 0x08d0 */ 9, 16,160,227, 4, 32,160,225, 7, 0,160,225,114,254,255,235,
/* 0x08e0 */ 188, 18,214,225, 0, 32,160,227, 35, 0, 0,234, 0, 48,149,229,
/* 0x08f0 */ 3, 0, 83,227, 30, 0, 0, 26, 8, 48,149,229, 8, 0,157,229,
/* 0x0900 */ 0, 16,160,227, 0, 0,131,224, 1, 32,160,225, 67,254,255,235,
/* 0x0910 */ 0, 80, 80,226, 4, 0, 0,186, 6, 16,160,225, 2, 44,160,227,
/* 0x0920 */ 58,254,255,235, 2, 12, 80,227, 1, 0, 0, 10,127, 0,160,227,
/* 0x0930 */ 53,254,255,235, 0,224,160,227, 14, 32,160,225, 8,192,141,226,
/* 0x0940 */ 6, 16,160,225, 7, 48,160,225, 5, 0,160,225, 0, 80,141,232,
/* 0x0950 */ 199,254,255,235, 7, 16,160,227, 0, 64,160,225, 8, 32,157,229,
/* 0x0960 */ 7, 0,160,225, 80,254,255,235, 5, 0,160,225, 45,254,255,235,
/* 0x0970 */ 3, 0, 0,234, 32, 80,133,226, 1, 32,130,226, 1, 0, 82,225,
/* 0x0980 */ 217,255,255,186, 4, 0,160,225, 12,208,141,226,240,133,189,232
};
+7 -7
View File
@@ -32,17 +32,17 @@
#define STUB_ARM_LINUX_KERNEL_VMLINUX_SIZE 15163
#define STUB_ARM_LINUX_KERNEL_VMLINUX_ADLER32 0xed19325c
#define STUB_ARM_LINUX_KERNEL_VMLINUX_CRC32 0xfb489939
#define STUB_ARM_LINUX_KERNEL_VMLINUX_ADLER32 0x690d3249
#define STUB_ARM_LINUX_KERNEL_VMLINUX_CRC32 0x579d826c
unsigned char stub_arm_linux_kernel_vmlinux[15163] = {
/* 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 */ 244, 18, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
/* 0x0030 */ 29, 0, 26, 0, 2, 16,160,225, 0, 32,160,225, 14, 0,160,225,
/* 0x0040 */ 4,192, 33,229, 15, 32, 33,233, 0, 48,160,227, 1,208,160,225,
/* 0x0050 */ 20, 16,159,229, 4, 48, 45,229, 16, 48,159,229, 8, 48,141,229,
/* 0x0060 */ 8, 48,141,226,254,255,255,235, 14, 0, 0,234, 0, 0, 0, 0,
/* 0x0030 */ 29, 0, 26, 0, 4,192, 34,229, 9, 32, 34,233, 4, 32, 66,226,
/* 0x0040 */ 0, 48,160,227, 8, 64, 34,233, 2,208,160,225, 28, 48,159,229,
/* 0x0050 */ 8, 48,141,229, 8, 48,141,226, 0, 32,160,225, 8, 16,159,229,
/* 0x0060 */ 14, 0,160,225,254,255,255,235, 14, 0, 0,234, 0, 0, 0, 0,
/* 0x0070 */ 0, 0, 0, 0, 0, 0, 80,227, 14, 0, 0, 26, 12, 0,157,229,
/* 0x0080 */ 8, 16,157,229, 0, 32,160,227, 0, 48,160,227,254,255,255,235,
/* 0x0090 */ 15,112,157,232, 2, 0,160,225, 14,240,160,225,255, 48, 3,226,
@@ -497,7 +497,7 @@ unsigned char stub_arm_linux_kernel_vmlinux[15163] = {
/* 0x1ca0 */ 76, 73, 78, 85, 88, 48, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69,
/* 0x1cb0 */ 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1cc0 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48,
/* 0x1cd0 */ 48, 48, 49, 52, 32, 82, 95, 65, 82, 77, 95, 65, 66, 83, 51, 50,
/* 0x1cd0 */ 48, 48, 48, 99, 32, 82, 95, 65, 82, 77, 95, 65, 66, 83, 51, 50,
/* 0x1ce0 */ 32, 32, 32, 32, 32, 32, 32, 77, 69, 84, 72, 79, 68, 10, 48, 48,
/* 0x1cf0 */ 48, 48, 48, 48, 51, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50,
/* 0x1d00 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 73, 78, 85, 88, 48, 51,
+152 -138
View File
@@ -1,5 +1,5 @@
/* armeb-linux.elf-fold.h
created from armeb-linux.elf-fold.bin, 2216 (0x8a8) bytes
created from armeb-linux.elf-fold.bin, 2448 (0x990) bytes
This file is part of the UPX executable compressor.
@@ -31,148 +31,162 @@
*/
#define STUB_ARMEB_LINUX_ELF_FOLD_SIZE 2216
#define STUB_ARMEB_LINUX_ELF_FOLD_ADLER32 0x569a963d
#define STUB_ARMEB_LINUX_ELF_FOLD_CRC32 0xd8f67761
#define STUB_ARMEB_LINUX_ELF_FOLD_SIZE 2448
#define STUB_ARMEB_LINUX_ELF_FOLD_ADLER32 0x76cbfde6
#define STUB_ARMEB_LINUX_ELF_FOLD_CRC32 0xaf93deb9
unsigned char stub_armeb_linux_elf_fold[2216] = {
unsigned char stub_armeb_linux_elf_fold[2448] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 0, 2, 0, 40, 0, 0, 0, 1, 0, 0,128,128, 0, 0, 0, 52,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 2, 0, 52, 0, 32, 0, 2, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,128, 0,
/* 0x0040 */ 0, 0,128, 0, 0, 0, 8,168, 0, 0, 8,168, 0, 0, 0, 5,
/* 0x0050 */ 0, 0,128, 0, 0, 0, 0, 1, 0, 0, 8,168, 0, 0, 0, 0,
/* 0x0040 */ 0, 0,128, 0, 0, 0, 9,144, 0, 0, 9,144, 0, 0, 0, 5,
/* 0x0050 */ 0, 0,128, 0, 0, 0, 0, 1, 0, 0, 9,144, 0, 0, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 229,157, 48, 20,229,157,224, 16,224,141, 49, 3,226,131, 48, 28,
/* 0x0090 */ 228,147, 0, 4,227, 80, 0, 0, 26,255,255,252,225,160, 32, 3,
/* 0x00a0 */ 228,146, 0, 8,227, 80, 0, 0, 26,255,255,252,229,141, 32, 8,
/* 0x00b0 */ 226, 77,220, 10,225,160, 64, 9,229,154,144, 4,225,160,128, 13,
/* 0x00c0 */ 229,154,112, 0,226,143, 96, 88,226,137,144, 12,227,160,176, 0,
/* 0x00d0 */ 229,159,192,196,233, 45, 95,248,232,189, 0, 15,235, 0, 1,145,
/* 0x00e0 */ 225,160,224, 0,226,141,208, 28,226,141,220, 10,232,189, 0, 31,
/* 0x00f0 */ 224,128, 0, 3,224, 65, 16, 3,227,160, 48, 0,227,160, 64, 0,
/* 0x0100 */ 227,160, 80, 0,227,160, 96, 0,227,160,128, 0,227,160,144, 0,
/* 0x0110 */ 227,160,160, 0,227,160,176, 0,227,160,112, 0,227,160,192, 0,
/* 0x0120 */ 229, 18,240, 4,226, 3, 48,255,227, 83, 0, 81, 17,160,240, 14,
/* 0x0130 */ 225,176, 17, 33, 19, 80, 0, 0, 1,160,240, 14,226, 65, 16, 1,
/* 0x0140 */ 231,144, 33, 1,226, 2, 52, 15,227, 83, 4, 11, 26, 0, 0, 4,
/* 0x0150 */ 226, 2, 52,255,224, 66, 32, 1,227,194, 36,255,225,130, 32, 3,
/* 0x0160 */ 231,128, 33, 1,227, 81, 0, 0, 26,255,255,243,225,160,240, 14,
/* 0x0170 */ 239,144, 0, 1,239,144, 0, 3,225,160,240, 14,239,144, 0, 4,
/* 0x0180 */ 225,160,240, 14,239,144, 0, 5,225,160,240, 14,239,144, 0, 6,
/* 0x0190 */ 225,160,240, 14,239,144, 0, 45,225,160,240, 14,239,144, 0, 91,
/* 0x01a0 */ 225,160,240, 14,239,144, 0,125,225,160,240, 14,229, 45, 80, 4,
/* 0x01b0 */ 229,157, 80, 8,229, 45, 64, 4,229,157, 64, 8,225,160, 86, 37,
/* 0x01c0 */ 239,144, 0,192,228,157, 64, 4,228,157, 80, 4,225,160,240, 14,
/* 0x01d0 */ 229, 31,193, 92,229, 45, 80, 4,227,160, 80, 0,229, 45, 64, 4,
/* 0x01e0 */ 227,224, 64, 0,225,131, 48, 12,234,255,255,244,227, 80, 0, 0,
/* 0x01f0 */ 1,160,240, 14,229,144, 48, 0,225, 83, 0, 1, 18,128, 0, 8,
/* 0x0200 */ 26,255,255,251,229,128, 32, 4,225,160,240, 14,229,144, 48, 0,
/* 0x0210 */ 225, 83, 0, 2,229,144, 48, 4,229, 45,224, 4, 33,160,192, 3,
/* 0x0220 */ 225,160,224, 2, 33,160, 32, 2, 42, 0, 0, 3,227,160, 0,127,
/* 0x0230 */ 235,255,255,206,229, 92, 48, 1,229, 65, 48, 1,226, 66, 32, 1,
/* 0x0240 */ 227,114, 0, 1,226,140,192, 1,226,129, 16, 1, 26,255,255,248,
/* 0x0250 */ 229,144, 32, 4,229,144, 48, 0,224,130, 32, 14,224,110, 48, 3,
/* 0x0260 */ 229,128, 48, 0,229,128, 32, 4,228,157,240, 4,233, 45, 64,240,
/* 0x0270 */ 225,160, 80, 0,226, 77,208, 20,225,160, 64, 1,225,160,112, 2,
/* 0x0280 */ 225,160, 96, 3,234, 0, 0, 68,226,141, 16, 4,225,160, 0, 5,
/* 0x0290 */ 227,160, 32, 12,235,255,255,220,229,157,192, 4,227, 92, 0, 0,
/* 0x02a0 */ 229,157, 16, 8, 26, 0, 0, 6,229,159, 49, 0,225, 81, 0, 3,
/* 0x02b0 */ 26, 0, 0, 5,229,149, 48, 0,227, 83, 0, 0, 26, 0, 0, 2,
/* 0x02c0 */ 234, 0, 0, 56,227, 81, 0, 0, 26, 0, 0, 1,227,160, 0,127,
/* 0x02d0 */ 235,255,255,166,225, 81, 0, 12,138,255,255,251,229,148, 48, 0,
/* 0x02e0 */ 225, 92, 0, 3,138,255,255,248,225, 81, 0, 12, 42, 0, 0, 33,
/* 0x02f0 */ 229,141,192, 16,229,157,192, 12,229,149, 0, 4,229,148, 32, 4,
/* 0x0300 */ 226,141, 48, 16,229,141,192, 0,225,160,224, 15,225,160,240, 7,
/* 0x0310 */ 227, 80, 0, 0, 26,255,255,236,229,157, 16, 16,229,157, 48, 4,
/* 0x0320 */ 225, 81, 0, 3, 26,255,255,232,229,221, 32, 13,227, 82, 0, 0,
/* 0x0330 */ 19, 86, 0, 0, 10, 0, 0, 9,227, 81, 12, 2,138, 0, 0, 2,
/* 0x0340 */ 229,148, 48, 0,225, 83, 0, 1, 26, 0, 0, 4,225,160, 48, 2,
/* 0x0350 */ 229,148, 0, 4,229,221, 32, 14,225,160,224, 15,225,160,240, 6,
/* 0x0360 */ 229,157, 48, 8,232,149, 0, 6,224,130, 32, 3,224, 99, 16, 1,
/* 0x0370 */ 232,133, 0, 6,234, 0, 0, 3,225,160, 32, 1,225,160, 0, 5,
/* 0x0380 */ 229,148, 16, 4,235,255,255,160,229,157, 48, 4,232,148, 0, 6,
/* 0x0390 */ 224,130, 32, 3,224, 99, 16, 1,232,132, 0, 6,229,148, 48, 0,
/* 0x03a0 */ 227, 83, 0, 0, 26,255,255,183,226,141,208, 20,232,189,128,240,
/* 0x03b0 */ 33, 88, 80, 85,233, 45, 79,240,225,160,160, 1,229,145, 16, 28,
/* 0x03c0 */ 226, 77,208, 52,224,138, 96, 1,229,157, 16, 88,225,218,193,176,
/* 0x03d0 */ 229,145, 16, 0,225,218,226,188,227, 92, 0, 2,229,141, 16, 24,
/* 0x03e0 */ 229,141, 0, 16, 3,160, 80, 16, 19,160, 80, 0,226, 78,224, 1,
/* 0x03f0 */ 225,160, 16, 6,227,224, 0, 0,227,160,192, 0,229,141, 32, 12,
/* 0x0400 */ 229,141, 48, 8,234, 0, 0, 11,229,145, 48, 0,227, 83, 0, 1,
/* 0x0410 */ 26, 0, 0, 6,229,145, 32, 8,229,145, 48, 20,224,130, 48, 3,
/* 0x0420 */ 225, 92, 0, 3, 49,160,192, 3,225, 80, 0, 2, 33,160, 0, 2,
/* 0x0430 */ 226,129, 16, 32,226, 78,224, 1,227, 94, 0, 0,170,255,255,241,
/* 0x0440 */ 227,192, 78,255,227,196, 64, 15,224,100, 48, 12,226,131, 62,255,
/* 0x0450 */ 226,131, 48, 15,226, 5, 32, 16,227,195, 62,255,227, 82, 0, 0,
/* 0x0460 */ 227,195, 48, 15,229,141, 48, 40, 21,141, 64, 32, 26, 0, 0, 4,
/* 0x0470 */ 225,160, 48, 5,225,160, 0, 4,229,157, 16, 40,235,255,255, 83,
/* 0x0480 */ 229,141, 0, 32,229,157, 32, 32,227,160, 48, 52,224,100,176, 2,
/* 0x0490 */ 224, 3, 3,155,226,134, 80, 32,229,141, 48, 36,227,160, 48, 0,
/* 0x04a0 */ 229,141, 48, 28,234, 0, 0,129,229,157,192, 12,227, 92, 0, 0,
/* 0x04b0 */ 10, 0, 0, 8,229, 21, 48, 32,227, 83, 0, 6, 26, 0, 0, 5,
/* 0x04c0 */ 229, 21, 32, 24,229,157, 0, 8,224,139, 32, 2,227,160, 16, 3,
/* 0x04d0 */ 235,255,255, 69,234, 0, 0,113,229, 21, 48, 32,227, 83, 0, 1,
/* 0x04e0 */ 26, 0, 0,110,229, 21, 48, 8,229,159, 34, 48,226, 3, 48, 7,
/* 0x04f0 */ 225,160, 49, 3,225,160, 67, 50,229, 21, 48, 24,224,139,144, 3,
/* 0x0500 */ 225,160, 42, 9,229, 21, 48, 16,225,160, 42, 34,229,157, 16, 12,
/* 0x0510 */ 229,141, 48, 44,224,131,112, 2,229, 21, 48, 12,227, 81, 0, 0,
/* 0x0520 */ 229,141,144, 48,226, 4,128, 7,229,141, 48, 20,224, 98, 96, 9,
/* 0x0530 */ 10, 0, 0, 14,225,160, 0, 6,225,160, 16, 7,227,136, 32, 2,
/* 0x0540 */ 227,160, 48, 16,235,255,255, 33,225, 86, 0, 0, 26, 0, 0, 68,
/* 0x0550 */ 229,157,192, 92,226, 20, 48, 4, 17,160, 48, 12,229,157, 0, 12,
/* 0x0560 */ 226,141, 16, 44,229,157, 32, 16,235,255,255, 63,234, 0, 0, 11,
/* 0x0570 */ 229, 21,192, 28,224, 98,192, 12,229,141,192, 4,229,157,192, 16,
/* 0x0580 */ 225,160, 0, 6,225,160, 16, 7,225,160, 32, 8,227,160, 48, 18,
/* 0x0590 */ 229,141,192, 0,235,255,255, 4,225, 86, 0, 0, 26, 0, 0, 48,
/* 0x05a0 */ 226,103, 48, 0,225,160, 74, 3,227, 24, 0, 2,225,160, 74, 36,
/* 0x05b0 */ 10, 0, 0, 7,227, 84, 0, 0, 10, 0, 0, 5,224,134, 16, 7,
/* 0x05c0 */ 225,160, 32, 4,227,160, 48, 0,226, 82, 32, 1,228,193, 48, 1,
/* 0x05d0 */ 26,255,255,251,229,157, 16, 12,227, 81, 0, 0, 10, 0, 0, 34,
/* 0x05e0 */ 229, 21, 48, 32,227, 83, 0, 1, 26, 0, 0, 23,229, 21, 48, 8,
/* 0x05f0 */ 227, 19, 0, 1, 10, 0, 0, 20,229, 21, 32, 12,229, 21, 48, 16,
/* 0x0600 */ 225, 82, 0, 3,229, 21, 16, 24, 26, 0, 0, 55,224,130, 48, 1,
/* 0x0610 */ 226,131, 48, 3,224,139, 48, 3,227,195, 32, 3,226, 98, 48, 0,
/* 0x0620 */ 225,160, 58, 3,225,160, 58, 35,227, 83, 0, 7,154, 0, 0, 46,
/* 0x0630 */ 229,159, 48,236,229,130, 48, 4,229,157, 48, 24,229,157, 0, 8,
/* 0x0640 */ 229,130, 48, 0,227,160, 16, 0,235,255,254,231,225,160, 0, 6,
/* 0x0650 */ 225,160, 16, 7,225,160, 32, 8,235,255,254,209,227, 80, 0, 0,
/* 0x0660 */ 10, 0, 0, 1,227,160, 0,127,235,255,254,192,229,157,192, 20,
/* 0x0670 */ 224,135, 48, 4,224,137, 16, 12,224,134, 64, 3,225, 84, 0, 1,
/* 0x0680 */ 42, 0, 0, 6,224,100, 16, 1,225,160, 32, 8,225,160, 0, 4,
/* 0x0690 */ 227,160, 48, 16,235,255,254,205,225, 84, 0, 0, 26,255,255,240,
/* 0x06a0 */ 229,157, 16, 28,226,129, 16, 1,229,141, 16, 28,226,133, 80, 32,
/* 0x06b0 */ 225,218, 50,188,229,157, 32, 28,225, 82, 0, 3,186,255,255,121,
/* 0x06c0 */ 229,157, 48, 12,227, 83, 0, 0, 10, 0, 0, 14,225,218, 49,176,
/* 0x06d0 */ 227, 83, 0, 3, 10, 0, 0, 11,229,157,192, 32,229,157, 16, 40,
/* 0x06e0 */ 224,140, 0, 1,235,255,254,170,234, 0, 0, 6,229, 21, 48, 28,
/* 0x06f0 */ 227, 83, 0, 0, 5,157, 32, 36, 0,129, 48, 2, 2,131, 32, 8,
/* 0x0700 */ 10,255,255,202,234,255,255,208,229,157, 48, 88,229,131,176, 0,
/* 0x0710 */ 229,154, 0, 24,224,139, 0, 0,226,141,208, 52,232,189,143,240,
/* 0x0720 */ 115, 81, 98, 64,225,160,240, 14,233, 45, 69,240,226, 77,208, 12,
/* 0x0730 */ 225,160,112, 0,225,160, 80, 1,226,141, 0, 48,226,141, 16, 40,
/* 0x0740 */ 225,160,160, 3,227,160, 48, 0,229,157, 96, 44,225,160,128, 2,
/* 0x0750 */ 229,157, 64, 48,235,255,254,196,229,157, 48, 52,227,160, 16, 5,
/* 0x0760 */ 224,100, 48, 3,225,214, 34,188,225,160, 0, 7,229,141, 48, 52,
/* 0x0770 */ 229,141, 80, 48,235,255,254,156,227,160, 16, 4,225,160, 0, 7,
/* 0x0780 */ 225,214, 34,186,235,255,254,152,226,134, 80, 52,225,160, 16, 6,
/* 0x0790 */ 229,145, 48, 52,227, 83, 0, 1,226,129, 16, 32, 26,255,255,251,
/* 0x07a0 */ 229,157, 32, 56,229,145, 48, 28,226,130, 32, 52,224,130, 32, 3,
/* 0x07b0 */ 225,160, 0, 7,227,160, 16, 3,235,255,254,139,229,157, 48, 60,
/* 0x07c0 */ 226,141,192, 12,229, 44, 48, 4,225,160, 16, 6,226,141, 32, 48,
/* 0x07d0 */ 225,160, 48, 7,225,160, 0, 8,229,141,192, 0,229,141,160, 4,
/* 0x07e0 */ 235,255,254,243,225,160, 64, 0,227,160, 16, 9,225,160, 32, 4,
/* 0x07f0 */ 225,160, 0, 7,235,255,254,124,225,214, 18,188,227,160, 32, 0,
/* 0x0800 */ 234, 0, 0, 35,229,149, 48, 0,227, 83, 0, 3, 26, 0, 0, 30,
/* 0x0810 */ 229,149, 48, 8,229,157, 0, 8,227,160, 16, 0,224,131, 0, 0,
/* 0x0820 */ 225,160, 32, 1,235,255,254, 86,226, 80, 80, 0,186, 0, 0, 4,
/* 0x0830 */ 225,160, 16, 6,227,160, 44, 2,235,255,254, 77,227, 80, 12, 2,
/* 0x0840 */ 10, 0, 0, 1,227,160, 0,127,235,255,254, 72,227,160,224, 0,
/* 0x0850 */ 225,160, 32, 14,226,141,192, 8,225,160, 16, 6,225,160, 48, 7,
/* 0x0860 */ 225,160, 0, 5,232,141, 80, 0,235,255,254,209,227,160, 16, 7,
/* 0x0870 */ 225,160, 64, 0,229,157, 32, 8,225,160, 0, 7,235,255,254, 90,
/* 0x0880 */ 225,160, 0, 5,235,255,254, 64,234, 0, 0, 3,226,133, 80, 32,
/* 0x0890 */ 226,130, 32, 1,225, 82, 0, 1,186,255,255,217,225,160, 0, 4,
/* 0x08a0 */ 226,141,208, 12,232,189,133,240
/* 0x0080 */ 232,189, 9,216,225,160, 16, 13,226, 77,218, 1,226, 77,208, 8,
/* 0x0090 */ 225,160, 0, 13,233, 45, 8,216,226,139,176, 1,228,145, 32, 4,
/* 0x00a0 */ 226, 91,176, 1,228,128, 32, 4, 26,255,255,251,228,145, 32, 4,
/* 0x00b0 */ 228,128, 32, 4,227, 82, 0, 0, 26,255,255,251,226, 64, 64, 4,
/* 0x00c0 */ 228,128, 32, 4,225,160, 48, 0,229,145, 32, 4,229,128, 32, 4,
/* 0x00d0 */ 228,145, 32, 8,228,128, 32, 8,227, 82, 0, 0, 26,255,255,249,
/* 0x00e0 */ 229,141, 0, 8,229,132, 0, 0,229,159, 32,180,228,128, 32, 4,
/* 0x00f0 */ 227,160, 42, 1,225,160, 16, 0,226,143, 0,168,226, 66, 32, 1,
/* 0x0100 */ 235, 0, 0, 80,227,112, 10, 1, 42, 0, 0, 1,227,160, 32, 0,
/* 0x0110 */ 231,193, 32, 0,226, 77,220, 10,225,160, 64, 9,229,154,144, 4,
/* 0x0120 */ 225,160,128, 13,229,154,112, 0,226,143, 96,136,226,137,144, 12,
/* 0x0130 */ 227,160,176, 0,229,159,193, 20,233, 45, 31,248,232,189, 0, 15,
/* 0x0140 */ 235, 0, 1,178,225,160,224, 0,226,141,208, 24,226,141,220, 10,
/* 0x0150 */ 232,189, 0, 15,224,128, 0, 3,224, 65, 16, 3,227,160, 48, 0,
/* 0x0160 */ 227,160, 64, 0,227,160, 80, 0,227,160, 96, 0,227,160,128, 0,
/* 0x0170 */ 227,160,144, 0,227,160,160, 0,227,160,176, 0,226, 77,199, 2,
/* 0x0180 */ 228, 29,112, 32,229,141,112, 0,229,157,112, 0,225, 92, 0, 13,
/* 0x0190 */ 58,255,255,250,226,141,215, 2,227,160,112, 0,227,160,192, 0,
/* 0x01a0 */ 229, 18,240, 4, 32, 32, 32, 61, 47,112,114,111, 99, 47,115,101,
/* 0x01b0 */ 108,102, 47,101,120,101, 0, 0,226, 3, 48,255,227, 83, 0, 81,
/* 0x01c0 */ 17,160,240, 14,225,176, 17, 33, 19, 80, 0, 0, 1,160,240, 14,
/* 0x01d0 */ 226, 65, 16, 1,231,144, 33, 1,226, 2, 52, 15,227, 83, 4, 11,
/* 0x01e0 */ 26, 0, 0, 4,226, 2, 52,255,224, 66, 32, 1,227,194, 36,255,
/* 0x01f0 */ 225,130, 32, 3,231,128, 33, 1,227, 81, 0, 0, 26,255,255,243,
/* 0x0200 */ 225,160,240, 14,231,240, 1,240,225,160,240, 14,239,144, 0, 1,
/* 0x0210 */ 239,144, 0, 3,225,160,240, 14,239,144, 0, 4,225,160,240, 14,
/* 0x0220 */ 239,144, 0, 5,225,160,240, 14,239,144, 0, 6,225,160,240, 14,
/* 0x0230 */ 239,144, 0, 10,225,160,240, 14,239,144, 0, 20,225,160,240, 14,
/* 0x0240 */ 239,144, 0, 45,225,160,240, 14,239,144, 0, 85,225,160,240, 14,
/* 0x0250 */ 239,144, 0, 91,225,160,240, 14,239,144, 0,125,225,160,240, 14,
/* 0x0260 */ 227,160, 32, 0,239,159, 0, 2,225,160,240, 14,229, 45, 80, 4,
/* 0x0270 */ 229,157, 80, 8,229, 45, 64, 4,229,157, 64, 8,225,160, 86, 37,
/* 0x0280 */ 239,144, 0,192,228,157, 64, 4,228,157, 80, 4,225,160,240, 14,
/* 0x0290 */ 229, 31,194, 28,229, 45, 80, 4,227,160, 80, 0,229, 45, 64, 4,
/* 0x02a0 */ 227,224, 64, 0,225,131, 48, 12,234,255,255,244,227, 80, 0, 0,
/* 0x02b0 */ 1,160,240, 14,229,144, 48, 0,225, 83, 0, 1, 18,128, 0, 8,
/* 0x02c0 */ 26,255,255,251,229,128, 32, 4,225,160,240, 14,229,144, 48, 0,
/* 0x02d0 */ 225, 83, 0, 2,229,144, 48, 4,229, 45,224, 4, 33,160,192, 3,
/* 0x02e0 */ 225,160,224, 2, 33,160, 32, 2, 42, 0, 0, 3,227,160, 0,127,
/* 0x02f0 */ 235,255,255,197,229, 92, 48, 1,229, 65, 48, 1,226, 66, 32, 1,
/* 0x0300 */ 227,114, 0, 1,226,140,192, 1,226,129, 16, 1, 26,255,255,248,
/* 0x0310 */ 229,144, 32, 4,229,144, 48, 0,224,130, 32, 14,224,110, 48, 3,
/* 0x0320 */ 229,128, 48, 0,229,128, 32, 4,228,157,240, 4,233, 45, 64,240,
/* 0x0330 */ 225,160, 80, 0,226, 77,208, 20,225,160, 64, 1,225,160,112, 2,
/* 0x0340 */ 225,160, 96, 3,234, 0, 0, 68,226,141, 16, 4,225,160, 0, 5,
/* 0x0350 */ 227,160, 32, 12,235,255,255,220,229,157,192, 4,227, 92, 0, 0,
/* 0x0360 */ 229,157, 16, 8, 26, 0, 0, 6,229,159, 49, 0,225, 81, 0, 3,
/* 0x0370 */ 26, 0, 0, 5,229,149, 48, 0,227, 83, 0, 0, 26, 0, 0, 2,
/* 0x0380 */ 234, 0, 0, 56,227, 81, 0, 0, 26, 0, 0, 1,227,160, 0,127,
/* 0x0390 */ 235,255,255,157,225, 81, 0, 12,138,255,255,251,229,148, 48, 0,
/* 0x03a0 */ 225, 92, 0, 3,138,255,255,248,225, 81, 0, 12, 42, 0, 0, 33,
/* 0x03b0 */ 229,141,192, 16,229,157,192, 12,229,149, 0, 4,229,148, 32, 4,
/* 0x03c0 */ 226,141, 48, 16,229,141,192, 0,225,160,224, 15,225,160,240, 7,
/* 0x03d0 */ 227, 80, 0, 0, 26,255,255,236,229,157, 16, 16,229,157, 48, 4,
/* 0x03e0 */ 225, 81, 0, 3, 26,255,255,232,229,221, 32, 13,227, 82, 0, 0,
/* 0x03f0 */ 19, 86, 0, 0, 10, 0, 0, 9,227, 81, 12, 2,138, 0, 0, 2,
/* 0x0400 */ 229,148, 48, 0,225, 83, 0, 1, 26, 0, 0, 4,225,160, 48, 2,
/* 0x0410 */ 229,148, 0, 4,229,221, 32, 14,225,160,224, 15,225,160,240, 6,
/* 0x0420 */ 229,157, 48, 8,232,149, 0, 6,224,130, 32, 3,224, 99, 16, 1,
/* 0x0430 */ 232,133, 0, 6,234, 0, 0, 3,225,160, 32, 1,225,160, 0, 5,
/* 0x0440 */ 229,148, 16, 4,235,255,255,160,229,157, 48, 4,232,148, 0, 6,
/* 0x0450 */ 224,130, 32, 3,224, 99, 16, 1,232,132, 0, 6,229,148, 48, 0,
/* 0x0460 */ 227, 83, 0, 0, 26,255,255,183,226,141,208, 20,232,189,128,240,
/* 0x0470 */ 33, 88, 80, 85,233, 45, 79,240,225,160,144, 1,229,145, 16, 28,
/* 0x0480 */ 226, 77,208, 56,224,137, 96, 1,229,157, 16, 92,225,217,193,176,
/* 0x0490 */ 229,145, 16, 0,225,217,226,188,227, 92, 0, 2,229,141, 16, 28,
/* 0x04a0 */ 229,141, 0, 16, 3,160, 80, 16, 19,160, 80, 0,226, 78,224, 1,
/* 0x04b0 */ 225,160, 16, 6,227,224, 0, 0,227,160,192, 0,229,141, 32, 12,
/* 0x04c0 */ 229,141, 48, 8,234, 0, 0, 11,229,145, 48, 0,227, 83, 0, 1,
/* 0x04d0 */ 26, 0, 0, 6,229,145, 32, 8,229,145, 48, 20,224,130, 48, 3,
/* 0x04e0 */ 225, 92, 0, 3, 49,160,192, 3,225, 80, 0, 2, 33,160, 0, 2,
/* 0x04f0 */ 226,129, 16, 32,226, 78,224, 1,227, 94, 0, 0,170,255,255,241,
/* 0x0500 */ 227,192, 78,255,227,196, 64, 15,224,100, 48, 12,226,131, 62,255,
/* 0x0510 */ 226,131, 48, 15,226, 5, 32, 16,227,195, 62,255,227, 82, 0, 0,
/* 0x0520 */ 227,195, 48, 15,229,141, 48, 44, 21,141, 64, 36, 26, 0, 0, 4,
/* 0x0530 */ 225,160, 48, 5,225,160, 0, 4,229,157, 16, 44,235,255,255, 83,
/* 0x0540 */ 229,141, 0, 36,229,157, 32, 36,224,100, 64, 2,227,160, 48, 52,
/* 0x0550 */ 225,160,192, 4,224, 12, 12,147,227,160, 16, 0,226,134, 80, 32,
/* 0x0560 */ 229,141, 64, 20,229,141,192, 40,229,141, 16, 32,234, 0, 0,136,
/* 0x0570 */ 229,157, 32, 12,227, 82, 0, 0, 10, 0, 0, 9,229, 21, 48, 32,
/* 0x0580 */ 227, 83, 0, 6, 26, 0, 0, 6,229, 21, 32, 24,229,157, 48, 20,
/* 0x0590 */ 229,157, 0, 8,224,131, 32, 2,227,160, 16, 3,235,255,255, 66,
/* 0x05a0 */ 234, 0, 0,119,229, 21, 48, 32,227, 83, 0, 1, 26, 0, 0,116,
/* 0x05b0 */ 229, 21, 48, 8,229,159, 34, 76,226, 3, 48, 7,225,160, 49, 3,
/* 0x05c0 */ 225,160, 67, 50,229,157,192, 20,229, 21, 48, 24,224,140,176, 3,
/* 0x05d0 */ 225,160, 42, 11,229, 21, 48, 16,225,160, 42, 34,229,157, 16, 12,
/* 0x05e0 */ 229,141, 48, 48,224,131,128, 2,229, 21, 48, 12,227, 81, 0, 0,
/* 0x05f0 */ 229,141,176, 52,226, 4,160, 7,229,141, 48, 24,224, 98, 96, 11,
/* 0x0600 */ 10, 0, 0, 14,225,160, 0, 6,225,160, 16, 8,227,138, 32, 2,
/* 0x0610 */ 227,160, 48, 16,235,255,255, 29,225, 86, 0, 0, 26, 0, 0, 73,
/* 0x0620 */ 229,157,192, 96,226, 20, 48, 4, 17,160, 48, 12,229,157, 0, 12,
/* 0x0630 */ 226,141, 16, 48,229,157, 32, 16,235,255,255, 59,234, 0, 0, 11,
/* 0x0640 */ 229, 21,192, 28,224, 98,192, 12,229,141,192, 4,229,157,192, 16,
/* 0x0650 */ 225,160, 0, 6,225,160, 16, 8,225,160, 32, 10,227,160, 48, 18,
/* 0x0660 */ 229,141,192, 0,235,255,255, 0,225, 86, 0, 0, 26, 0, 0, 53,
/* 0x0670 */ 226,104, 48, 0,225,160,122, 3,227, 26, 0, 2,225,160,122, 39,
/* 0x0680 */ 10, 0, 0, 7,227, 87, 0, 0, 10, 0, 0, 5,224,134, 16, 8,
/* 0x0690 */ 225,160, 32, 7,227,160, 48, 0,226, 82, 32, 1,228,193, 48, 1,
/* 0x06a0 */ 26,255,255,251,229,157, 16, 12,227, 81, 0, 0, 10, 0, 0, 39,
/* 0x06b0 */ 229, 21, 48, 32,227, 83, 0, 1, 26, 0, 0, 28,229, 21, 48, 8,
/* 0x06c0 */ 227, 19, 0, 1, 10, 0, 0, 25,229, 21, 32, 12,229, 21, 48, 16,
/* 0x06d0 */ 225, 82, 0, 3,229, 21, 16, 24, 26, 0, 0, 60,224,130, 48, 1,
/* 0x06e0 */ 229,157, 32, 20,226,131, 48, 3,224,130, 48, 3,227,195, 64, 3,
/* 0x06f0 */ 226,100, 48, 0,225,160, 58, 3,225,160, 58, 35,227, 83, 0, 7,
/* 0x0700 */ 154, 0, 0, 50,229,159, 49, 0,229,132, 48, 4,229,157, 48, 28,
/* 0x0710 */ 226,132, 16, 8,225,160, 0, 4,229,132, 48, 0,235,255,254,207,
/* 0x0720 */ 229,157, 0, 8,225,160, 32, 4,227,160, 16, 0,235,255,254,222,
/* 0x0730 */ 225,160, 0, 6,225,160, 16, 8,225,160, 32, 10,235,255,254,197,
/* 0x0740 */ 227, 80, 0, 0, 10, 0, 0, 1,227,160, 0,127,235,255,254,174,
/* 0x0750 */ 229,157,192, 24,224,136, 48, 7,224,139, 16, 12,224,134, 64, 3,
/* 0x0760 */ 225, 84, 0, 1, 42, 0, 0, 6,224,100, 16, 1,225,160, 32, 10,
/* 0x0770 */ 225,160, 0, 4,227,160, 48, 16,235,255,254,196,225, 84, 0, 0,
/* 0x0780 */ 26,255,255,240,229,157, 16, 32,226,129, 16, 1,229,141, 16, 32,
/* 0x0790 */ 226,133, 80, 32,225,217, 50,188,229,157, 32, 32,225, 82, 0, 3,
/* 0x07a0 */ 186,255,255,114,229,157, 48, 12,227, 83, 0, 0, 10, 0, 0, 14,
/* 0x07b0 */ 225,217, 49,176,227, 83, 0, 3, 10, 0, 0, 11,229,157,192, 36,
/* 0x07c0 */ 229,157, 16, 44,224,140, 0, 1,235,255,254,156,234, 0, 0, 6,
/* 0x07d0 */ 229, 21, 48, 28,227, 83, 0, 0, 5,157, 32, 40, 0,129, 48, 2,
/* 0x07e0 */ 2,131, 64, 8, 10,255,255,198,234,255,255,208,229,157,192, 20,
/* 0x07f0 */ 229,157, 48, 92,229,131,192, 0,229,153, 0, 24,224,140, 0, 0,
/* 0x0800 */ 226,141,208, 56,232,189,143,240,115, 81, 98, 64,225,160,240, 14,
/* 0x0810 */ 233, 45, 69,240,226, 77,208, 12,225,160,112, 0,225,160, 80, 1,
/* 0x0820 */ 226,141, 0, 48,226,141, 16, 40,225,160,160, 3,227,160, 48, 0,
/* 0x0830 */ 229,157, 96, 44,225,160,128, 2,229,157, 64, 48,235,255,254,186,
/* 0x0840 */ 229,157, 48, 52,227,160, 16, 5,224,100, 48, 3,225,214, 34,188,
/* 0x0850 */ 225,160, 0, 7,229,141, 48, 52,229,141, 80, 48,235,255,254,146,
/* 0x0860 */ 227,160, 16, 4,225,160, 0, 7,225,214, 34,186,235,255,254,142,
/* 0x0870 */ 226,134, 80, 52,225,160, 16, 6,229,145, 48, 52,227, 83, 0, 1,
/* 0x0880 */ 226,129, 16, 32, 26,255,255,251,229,157, 32, 56,229,145, 48, 28,
/* 0x0890 */ 226,130, 32, 52,224,130, 32, 3,225,160, 0, 7,227,160, 16, 3,
/* 0x08a0 */ 235,255,254,129,229,157, 48, 60,226,141,192, 12,229, 44, 48, 4,
/* 0x08b0 */ 225,160, 16, 6,226,141, 32, 48,225,160, 48, 7,225,160, 0, 8,
/* 0x08c0 */ 229,141,192, 0,229,141,160, 4,235,255,254,233,225,160, 64, 0,
/* 0x08d0 */ 227,160, 16, 9,225,160, 32, 4,225,160, 0, 7,235,255,254,114,
/* 0x08e0 */ 225,214, 18,188,227,160, 32, 0,234, 0, 0, 35,229,149, 48, 0,
/* 0x08f0 */ 227, 83, 0, 3, 26, 0, 0, 30,229,149, 48, 8,229,157, 0, 8,
/* 0x0900 */ 227,160, 16, 0,224,131, 0, 0,225,160, 32, 1,235,255,254, 67,
/* 0x0910 */ 226, 80, 80, 0,186, 0, 0, 4,225,160, 16, 6,227,160, 44, 2,
/* 0x0920 */ 235,255,254, 58,227, 80, 12, 2, 10, 0, 0, 1,227,160, 0,127,
/* 0x0930 */ 235,255,254, 53,227,160,224, 0,225,160, 32, 14,226,141,192, 8,
/* 0x0940 */ 225,160, 16, 6,225,160, 48, 7,225,160, 0, 5,232,141, 80, 0,
/* 0x0950 */ 235,255,254,199,227,160, 16, 7,225,160, 64, 0,229,157, 32, 8,
/* 0x0960 */ 225,160, 0, 7,235,255,254, 80,225,160, 0, 5,235,255,254, 45,
/* 0x0970 */ 234, 0, 0, 3,226,133, 80, 32,226,130, 32, 1,225, 82, 0, 1,
/* 0x0980 */ 186,255,255,217,225,160, 0, 4,226,141,208, 12,232,189,133,240
};
+8 -8
View File
@@ -32,17 +32,17 @@
#define STUB_ARMEB_LINUX_KERNEL_VMLINUX_SIZE 15160
#define STUB_ARMEB_LINUX_KERNEL_VMLINUX_ADLER32 0xfc1b3101
#define STUB_ARMEB_LINUX_KERNEL_VMLINUX_CRC32 0x40d1de90
#define STUB_ARMEB_LINUX_KERNEL_VMLINUX_ADLER32 0x785730ee
#define STUB_ARMEB_LINUX_KERNEL_VMLINUX_CRC32 0x7efd8186
unsigned char stub_armeb_linux_kernel_vmlinux[15160] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 0, 1, 0, 40, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 0, 0, 18,244, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40,
/* 0x0030 */ 0, 29, 0, 26,225,160, 16, 2,225,160, 32, 0,225,160, 0, 14,
/* 0x0040 */ 229, 33,192, 4,233, 33, 32, 15,227,160, 48, 0,225,160,208, 1,
/* 0x0050 */ 229,159, 16, 20,229, 45, 48, 4,229,159, 48, 16,229,141, 48, 8,
/* 0x0060 */ 226,141, 48, 8,235,255,255,254,234, 0, 0, 14, 0, 0, 0, 0,
/* 0x0030 */ 0, 29, 0, 26,229, 34,192, 4,233, 34, 32, 9,226, 66, 32, 4,
/* 0x0040 */ 227,160, 48, 0,233, 34, 64, 8,225,160,208, 2,229,159, 48, 28,
/* 0x0050 */ 229,141, 48, 8,226,141, 48, 8,225,160, 32, 0,229,159, 16, 8,
/* 0x0060 */ 225,160, 0, 14,235,255,255,254,234, 0, 0, 14, 0, 0, 0, 0,
/* 0x0070 */ 0, 0, 0, 0,227, 80, 0, 0, 26, 0, 0, 14,229,157, 0, 12,
/* 0x0080 */ 229,157, 16, 8,227,160, 32, 0,227,160, 48, 0,235,255,255,254,
/* 0x0090 */ 232,157,112, 15,225,160, 0, 2,225,160,240, 14,226, 3, 48,255,
@@ -496,8 +496,8 @@ unsigned char stub_armeb_linux_kernel_vmlinux[15160] = {
/* 0x1c90 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 73, 78,
/* 0x1ca0 */ 85, 88, 48, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32,
/* 0x1cb0 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1cc0 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 49,
/* 0x1cd0 */ 52, 32, 82, 95, 65, 82, 77, 95, 65, 66, 83, 51, 50, 32, 32, 32,
/* 0x1cc0 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x1cd0 */ 99, 32, 82, 95, 65, 82, 77, 95, 65, 66, 83, 51, 50, 32, 32, 32,
/* 0x1ce0 */ 32, 32, 32, 32, 77, 69, 84, 72, 79, 68, 10, 48, 48, 48, 48, 48,
/* 0x1cf0 */ 48, 51, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32,
/* 0x1d00 */ 32, 32, 32, 32, 32, 32, 76, 73, 78, 85, 88, 48, 51, 48, 10, 48,
+162 -144
View File
@@ -1,5 +1,5 @@
/* armel-eabi-linux.elf-fold.h
created from armel-eabi-linux.elf-fold.bin, 2316 (0x90c) bytes
created from armel-eabi-linux.elf-fold.bin, 2600 (0xa28) bytes
This file is part of the UPX executable compressor.
@@ -31,154 +31,172 @@
*/
#define STUB_ARMEL_EABI_LINUX_ELF_FOLD_SIZE 2316
#define STUB_ARMEL_EABI_LINUX_ELF_FOLD_ADLER32 0x82e7c1d4
#define STUB_ARMEL_EABI_LINUX_ELF_FOLD_CRC32 0x3d72476c
#define STUB_ARMEL_EABI_LINUX_ELF_FOLD_SIZE 2600
#define STUB_ARMEL_EABI_LINUX_ELF_FOLD_ADLER32 0x7b8045b9
#define STUB_ARMEL_EABI_LINUX_ELF_FOLD_CRC32 0x5977361c
unsigned char stub_armel_eabi_linux_elf_fold[2316] = {
unsigned char stub_armel_eabi_linux_elf_fold[2600] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 40, 0, 1, 0, 0, 0,128,128, 0, 0, 52, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 2, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0,
/* 0x0040 */ 0,128, 0, 0, 12, 9, 0, 0, 12, 9, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0,128, 0, 0, 1, 0, 0, 0, 12, 9, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 0,128, 0, 0, 40, 10, 0, 0, 40, 10, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0,128, 0, 0, 1, 0, 0, 0, 40, 10, 0, 0, 0, 0, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 20, 48,157,229, 16,224,157,229, 3, 49,141,224, 28, 48,131,226,
/* 0x0090 */ 4, 0,147,228, 0, 0, 80,227,252,255,255, 26, 3, 32,160,225,
/* 0x00a0 */ 8, 0,146,228, 0, 0, 80,227,252,255,255, 26, 8, 32,141,229,
/* 0x00b0 */ 10,220, 77,226, 9, 64,160,225, 4,144,154,229, 13,128,160,225,
/* 0x00c0 */ 0,112,154,229, 88, 96,143,226, 12,144,137,226, 0,176,160,227,
/* 0x00d0 */ 20,193,159,229,248, 95, 45,233, 15, 0,189,232,170, 1, 0,235,
/* 0x00e0 */ 0,224,160,225, 28,208,141,226, 10,220,141,226, 31, 0,189,232,
/* 0x00f0 */ 3, 0,128,224, 3, 16, 65,224, 0, 48,160,227, 0, 64,160,227,
/* 0x0100 */ 0, 80,160,227, 0, 96,160,227, 0,128,160,227, 0,144,160,227,
/* 0x0110 */ 0,160,160,227, 0,176,160,227, 0,192,160,227, 91,112,160,227,
/* 0x0120 */ 4,240, 18,229,255, 48, 3,226, 80, 0, 83,227, 14,240,160, 17,
/* 0x0130 */ 33, 17,176,225, 0, 0, 80, 19, 14,240,160, 1, 1, 16, 65,226,
/* 0x0140 */ 1, 33,144,231, 15, 52, 2,226, 11, 4, 83,227, 4, 0, 0, 26,
/* 0x0150 */ 255, 52, 2,226, 1, 32, 66,224,255, 36,194,227, 3, 32,130,225,
/* 0x0160 */ 1, 33,128,231, 0, 0, 81,227,243,255,255, 26, 14,240,160,225,
/* 0x0170 */ 7,192,160,225, 1,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x0180 */ 7,192,160,225, 3,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x0190 */ 14,240,160,225, 7,192,160,225, 4,112,160,227, 0, 0, 0,239,
/* 0x01a0 */ 12,112,160,225, 14,240,160,225, 7,192,160,225, 5,112,160,227,
/* 0x01b0 */ 0, 0, 0,239, 12,112,160,225, 14,240,160,225, 7,192,160,225,
/* 0x01c0 */ 6,112,160,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225,
/* 0x01d0 */ 7,192,160,225, 45,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x01e0 */ 14,240,160,225, 7,192,160,225, 91,112,160,227, 0, 0, 0,239,
/* 0x01f0 */ 12,112,160,225, 14,240,160,225, 7,192,160,225,125,112,160,227,
/* 0x0200 */ 0, 0, 0,239, 12,112,160,225, 14,240,160,225, 4, 80, 45,229,
/* 0x0210 */ 8, 80,157,229, 4, 64, 45,229, 8, 64,157,229, 37, 86,160,225,
/* 0x0220 */ 7,192,160,225,192,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x0230 */ 4, 64,157,228, 4, 80,157,228, 14,240,160,225,200,193, 31,229,
/* 0x0240 */ 4, 80, 45,229, 0, 80,160,227, 4, 64, 45,229, 0, 64,224,227,
/* 0x0250 */ 12, 48,131,225,241,255,255,234, 0, 0, 80,227, 30,255, 47, 1,
/* 0x0260 */ 0, 48,144,229, 1, 0, 83,225, 8, 0,128, 18,251,255,255, 26,
/* 0x0270 */ 4, 32,128,229, 30,255, 47,225, 0, 48,144,229, 4,224, 45,229,
/* 0x0280 */ 2, 0, 83,225, 4, 48,144,229, 2,224,160,225, 3,192,160, 33,
/* 0x0290 */ 2, 32,160, 33, 3, 0, 0, 42,127, 0,160,227,179,255,255,235,
/* 0x02a0 */ 1, 48, 92,229, 1, 48, 65,229, 1, 32, 66,226, 1, 0,114,227,
/* 0x02b0 */ 1,192,140,226, 1, 16,129,226,248,255,255, 26, 4, 32,144,229,
/* 0x02c0 */ 0, 48,144,229, 14, 32,130,224, 3, 48,110,224, 0, 48,128,229,
/* 0x02d0 */ 4, 32,128,229, 4,240,157,228,240, 64, 45,233, 0, 80,160,225,
/* 0x02e0 */ 20,208, 77,226, 1, 64,160,225, 2,112,160,225, 3, 96,160,225,
/* 0x02f0 */ 66, 0, 0,234, 4, 16,141,226, 5, 0,160,225, 12, 32,160,227,
/* 0x0300 */ 220,255,255,235, 4,192,157,229, 8, 16,157,229, 0, 0, 92,227,
/* 0x0310 */ 6, 0, 0, 26,248, 48,159,229, 3, 0, 81,225, 5, 0, 0, 26,
/* 0x0320 */ 0, 48,149,229, 0, 0, 83,227, 2, 0, 0, 26, 54, 0, 0,234,
/* 0x0330 */ 0, 0, 81,227, 1, 0, 0, 26,127, 0,160,227,139,255,255,235,
/* 0x0340 */ 12, 0, 81,225,251,255,255,138, 0, 48,148,229, 3, 0, 92,225,
/* 0x0350 */ 248,255,255,138, 12, 0, 81,225, 31, 0, 0, 42, 16,192,141,229,
/* 0x0360 */ 12,192,157,229, 4, 0,149,229, 4, 32,148,229, 16, 48,141,226,
/* 0x0370 */ 0,192,141,229, 55,255, 47,225, 0, 0, 80,227,237,255,255, 26,
/* 0x0380 */ 16, 16,157,229, 4, 48,157,229, 3, 0, 81,225,233,255,255, 26,
/* 0x0390 */ 13, 32,221,229, 0, 0, 82,227, 0, 0, 86, 19, 8, 0, 0, 10,
/* 0x03a0 */ 2, 12, 81,227, 2, 0, 0,138, 0, 48,148,229, 1, 0, 83,225,
/* 0x03b0 */ 3, 0, 0, 26, 2, 48,160,225, 4, 0,148,229, 14, 32,221,229,
/* 0x03c0 */ 54,255, 47,225, 8, 48,157,229, 6, 0,149,232, 3, 32,130,224,
/* 0x03d0 */ 1, 16, 99,224, 6, 0,133,232, 3, 0, 0,234, 1, 32,160,225,
/* 0x03e0 */ 5, 0,160,225, 4, 16,148,229,162,255,255,235, 4, 48,157,229,
/* 0x03f0 */ 6, 0,148,232, 3, 32,130,224, 1, 16, 99,224, 6, 0,132,232,
/* 0x0400 */ 0, 48,148,229, 0, 0, 83,227,185,255,255, 26, 20,208,141,226,
/* 0x0410 */ 240,128,189,232, 85, 80, 88, 33,240, 79, 45,233, 1,160,160,225,
/* 0x0420 */ 28, 16,145,229, 52,208, 77,226, 1, 96,138,224, 88, 16,157,229,
/* 0x0430 */ 176,193,218,225, 0, 16,145,229,188,226,218,225, 2, 0, 92,227,
/* 0x0440 */ 24, 16,141,229, 16, 0,141,229, 16, 80,160, 3, 0, 80,160, 19,
/* 0x0450 */ 1,224, 78,226, 6, 16,160,225, 0, 0,224,227, 0,192,160,227,
/* 0x0460 */ 12, 32,141,229, 8, 48,141,229, 11, 0, 0,234, 0, 48,145,229,
/* 0x0470 */ 1, 0, 83,227, 6, 0, 0, 26, 8, 48,145,229, 20, 32,145,229,
/* 0x0480 */ 3, 0, 80,225, 3, 0,160, 33, 2, 48,131,224, 3, 0, 92,225,
/* 0x0490 */ 3,192,160, 49, 32, 16,129,226, 1,224, 78,226, 0, 0, 94,227,
/* 0x04a0 */ 241,255,255,170,255, 78,192,227, 15, 64,196,227, 12, 48,100,224,
/* 0x04b0 */ 255, 62,131,226, 15, 48,131,226, 16, 32, 5,226,255, 62,195,227,
/* 0x04c0 */ 0, 0, 82,227, 15, 48,195,227, 40, 48,141,229, 32, 64,141, 21,
/* 0x04d0 */ 4, 0, 0, 26, 5, 48,160,225, 4, 0,160,225, 40, 16,157,229,
/* 0x04e0 */ 85,255,255,235, 32, 0,141,229, 32, 32,157,229, 52, 48,160,227,
/* 0x04f0 */ 2,176,100,224,155, 3, 3,224, 32, 80,134,226, 36, 48,141,229,
/* 0x0500 */ 0, 48,160,227, 28, 48,141,229,129, 0, 0,234, 12,192,157,229,
/* 0x0510 */ 0, 0, 92,227, 8, 0, 0, 10, 32, 48, 21,229, 6, 0, 83,227,
/* 0x0520 */ 5, 0, 0, 26, 24, 32, 21,229, 8, 0,157,229, 2, 32,139,224,
/* 0x0530 */ 3, 16,160,227, 71,255,255,235,113, 0, 0,234, 32, 48, 21,229,
/* 0x0540 */ 1, 0, 83,227,110, 0, 0, 26, 8, 48, 21,229, 48, 34,159,229,
/* 0x0550 */ 7, 48, 3,226, 3, 49,160,225, 50, 67,160,225, 24, 48, 21,229,
/* 0x0560 */ 16, 32, 21,229, 3,144,139,224, 9, 58,160,225, 35, 58,160,225,
/* 0x0570 */ 12, 16,157,229, 44, 32,141,229, 3,112,130,224, 12, 32, 21,229,
/* 0x0580 */ 0, 0, 81,227, 48,144,141,229, 7,128, 4,226, 20, 32,141,229,
/* 0x0590 */ 9, 96, 99,224, 14, 0, 0, 10, 6, 0,160,225, 7, 16,160,225,
/* 0x05a0 */ 2, 32,136,227, 16, 48,160,227, 35,255,255,235, 0, 0, 86,225,
/* 0x05b0 */ 68, 0, 0, 26, 92,192,157,229, 4, 48, 20,226, 12, 48,160, 17,
/* 0x05c0 */ 12, 0,157,229, 44, 16,141,226, 16, 32,157,229, 65,255,255,235,
/* 0x05d0 */ 11, 0, 0,234, 28,192, 21,229, 6, 0,160,225, 12,192, 99,224,
/* 0x05e0 */ 4,192,141,229, 16,192,157,229, 7, 16,160,225, 8, 32,160,225,
/* 0x05f0 */ 18, 48,160,227, 0,192,141,229, 3,255,255,235, 0, 0, 86,225,
/* 0x0600 */ 48, 0, 0, 26, 0, 48,103,226, 3, 74,160,225, 2, 0, 24,227,
/* 0x0610 */ 36, 74,160,225, 7, 0, 0, 10, 0, 0, 84,227, 5, 0, 0, 10,
/* 0x0620 */ 7, 16,134,224, 4, 32,160,225, 0, 48,160,227, 1, 32, 82,226,
/* 0x0630 */ 1, 48,193,228,251,255,255, 26, 12, 16,157,229, 0, 0, 81,227,
/* 0x0640 */ 34, 0, 0, 10, 32, 48, 21,229, 1, 0, 83,227, 23, 0, 0, 26,
/* 0x0650 */ 8, 48, 21,229, 1, 0, 19,227, 20, 0, 0, 10, 12, 32, 21,229,
/* 0x0660 */ 16, 48, 21,229, 24, 16, 21,229, 3, 0, 82,225, 55, 0, 0, 26,
/* 0x0670 */ 1, 48,130,224, 3, 48,131,226, 3, 48,139,224, 3, 32,195,227,
/* 0x0680 */ 0, 48, 98,226, 3, 58,160,225, 35, 58,160,225, 7, 0, 83,227,
/* 0x0690 */ 46, 0, 0,154, 24, 48,157,229, 8, 0,157,229, 0, 48,130,229,
/* 0x06a0 */ 224, 48,159,229, 0, 16,160,227, 4, 48,130,229,233,254,255,235,
/* 0x06b0 */ 6, 0,160,225, 7, 16,160,225, 8, 32,160,225,205,254,255,235,
/* 0x06c0 */ 0, 0, 80,227, 1, 0, 0, 10,127, 0,160,227,167,254,255,235,
/* 0x06d0 */ 20,192,157,229, 4, 48,135,224, 12, 16,137,224, 3, 64,134,224,
/* 0x06e0 */ 1, 0, 84,225, 6, 0, 0, 42, 1, 16,100,224, 8, 32,160,225,
/* 0x06f0 */ 4, 0,160,225, 16, 48,160,227,207,254,255,235, 0, 0, 84,225,
/* 0x0700 */ 240,255,255, 26, 28, 16,157,229, 32, 80,133,226, 1, 16,129,226,
/* 0x0710 */ 28, 16,141,229,188, 50,218,225, 28, 32,157,229, 3, 0, 82,225,
/* 0x0720 */ 121,255,255,186, 12, 48,157,229, 0, 0, 83,227, 14, 0, 0, 10,
/* 0x0730 */ 176, 49,218,225, 3, 0, 83,227, 11, 0, 0, 10, 32,192,157,229,
/* 0x0740 */ 40, 16,157,229, 1, 0,140,224,160,254,255,235, 6, 0, 0,234,
/* 0x0750 */ 28, 48, 21,229, 0, 0, 83,227, 36, 32,157, 5, 2, 48,129, 0,
/* 0x0760 */ 8, 32,131, 2,202,255,255, 10,208,255,255,234, 88, 48,157,229,
/* 0x0770 */ 0,176,131,229, 24, 0,154,229, 0, 0,139,224, 52,208,141,226,
/* 0x0780 */ 240,143,189,232, 64, 98, 81,115, 14,240,160,225,240, 69, 45,233,
/* 0x0790 */ 12,208, 77,226, 0,112,160,225, 1, 80,160,225, 48, 0,141,226,
/* 0x07a0 */ 40, 16,141,226, 3,160,160,225, 0, 48,160,227, 44, 96,157,229,
/* 0x07b0 */ 2,128,160,225, 48, 64,157,229,198,254,255,235, 52, 48,157,229,
/* 0x07c0 */ 5, 16,160,227, 3, 48,100,224,188, 34,214,225, 7, 0,160,225,
/* 0x07d0 */ 52, 48,141,229, 48, 80,141,229,158,254,255,235, 4, 16,160,227,
/* 0x07e0 */ 7, 0,160,225,186, 34,214,225,154,254,255,235, 52, 80,134,226,
/* 0x07f0 */ 6, 16,160,225, 52, 48,145,229, 32, 16,129,226, 1, 0, 83,227,
/* 0x0800 */ 251,255,255, 26, 56, 32,157,229, 28, 48,145,229, 52, 32,130,226,
/* 0x0810 */ 3, 32,130,224, 7, 0,160,225, 3, 16,160,227,141,254,255,235,
/* 0x0820 */ 60, 48,157,229, 12,192,141,226, 4, 48, 44,229, 6, 16,160,225,
/* 0x0830 */ 48, 32,141,226, 7, 48,160,225, 8, 0,160,225, 0,192,141,229,
/* 0x0840 */ 4,160,141,229,243,254,255,235, 0, 64,160,225, 9, 16,160,227,
/* 0x0850 */ 4, 32,160,225, 7, 0,160,225,126,254,255,235,188, 18,214,225,
/* 0x0860 */ 0, 32,160,227, 35, 0, 0,234, 0, 48,149,229, 3, 0, 83,227,
/* 0x0870 */ 30, 0, 0, 26, 8, 48,149,229, 8, 0,157,229, 0, 16,160,227,
/* 0x0880 */ 0, 0,131,224, 1, 32,160,225, 70,254,255,235, 0, 80, 80,226,
/* 0x0890 */ 4, 0, 0,186, 6, 16,160,225, 2, 44,160,227, 55,254,255,235,
/* 0x08a0 */ 2, 12, 80,227, 1, 0, 0, 10,127, 0,160,227, 47,254,255,235,
/* 0x08b0 */ 0,224,160,227, 14, 32,160,225, 8,192,141,226, 6, 16,160,225,
/* 0x08c0 */ 7, 48,160,225, 5, 0,160,225, 0, 80,141,232,209,254,255,235,
/* 0x08d0 */ 7, 16,160,227, 0, 64,160,225, 8, 32,157,229, 7, 0,160,225,
/* 0x08e0 */ 92,254,255,235, 5, 0,160,225, 51,254,255,235, 3, 0, 0,234,
/* 0x08f0 */ 32, 80,133,226, 1, 32,130,226, 1, 0, 82,225,217,255,255,186,
/* 0x0900 */ 4, 0,160,225, 12,208,141,226,240,133,189,232
/* 0x0080 */ 216, 9,189,232, 13, 16,160,225, 1,218, 77,226, 8,208, 77,226,
/* 0x0090 */ 13, 0,160,225,216, 8, 45,233, 1,176,139,226, 4, 32,145,228,
/* 0x00a0 */ 1,176, 91,226, 4, 32,128,228,251,255,255, 26, 4, 32,145,228,
/* 0x00b0 */ 4, 32,128,228, 0, 0, 82,227,251,255,255, 26, 4, 64, 64,226,
/* 0x00c0 */ 4, 32,128,228, 0, 48,160,225, 4, 32,145,229, 4, 32,128,229,
/* 0x00d0 */ 8, 32,145,228, 8, 32,128,228, 0, 0, 82,227,249,255,255, 26,
/* 0x00e0 */ 8, 0,141,229, 0, 0,132,229,180, 32,159,229, 4, 32,128,228,
/* 0x00f0 */ 1, 42,160,227, 0, 16,160,225,168, 0,143,226, 1, 32, 66,226,
/* 0x0100 */ 104, 0, 0,235, 1, 10,112,227, 1, 0, 0, 42, 0, 32,160,227,
/* 0x0110 */ 0, 32,193,231, 10,220, 77,226, 9, 64,160,225, 4,144,154,229,
/* 0x0120 */ 13,128,160,225, 0,112,154,229,136, 96,143,226, 12,144,137,226,
/* 0x0130 */ 0,176,160,227,136,193,159,229,248, 31, 45,233, 15, 0,189,232,
/* 0x0140 */ 216, 1, 0,235, 0,224,160,225, 24,208,141,226, 10,220,141,226,
/* 0x0150 */ 15, 0,189,232, 3, 0,128,224, 3, 16, 65,224, 0, 48,160,227,
/* 0x0160 */ 0, 64,160,227, 0, 80,160,227, 0, 96,160,227, 0,128,160,227,
/* 0x0170 */ 0,144,160,227, 0,160,160,227, 0,176,160,227, 2,199, 77,226,
/* 0x0180 */ 32,112, 29,228, 0,112,141,229, 0,112,157,229, 13, 0, 92,225,
/* 0x0190 */ 250,255,255, 58, 2,215,141,226, 0,192,160,227, 91,112,160,227,
/* 0x01a0 */ 4,240, 18,229, 32, 32, 32, 61, 47,112,114,111, 99, 47,115,101,
/* 0x01b0 */ 108,102, 47,101,120,101, 0, 0,255, 48, 3,226, 80, 0, 83,227,
/* 0x01c0 */ 14,240,160, 17, 33, 17,176,225, 0, 0, 80, 19, 14,240,160, 1,
/* 0x01d0 */ 1, 16, 65,226, 1, 33,144,231, 15, 52, 2,226, 11, 4, 83,227,
/* 0x01e0 */ 4, 0, 0, 26,255, 52, 2,226, 1, 32, 66,224,255, 36,194,227,
/* 0x01f0 */ 3, 32,130,225, 1, 33,128,231, 0, 0, 81,227,243,255,255, 26,
/* 0x0200 */ 14,240,160,225,240, 1,240,231, 14,240,160,225, 7,192,160,225,
/* 0x0210 */ 1,112,160,227, 0, 0, 0,239, 12,112,160,225, 7,192,160,225,
/* 0x0220 */ 3,112,160,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225,
/* 0x0230 */ 7,192,160,225, 4,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x0240 */ 14,240,160,225, 7,192,160,225, 5,112,160,227, 0, 0, 0,239,
/* 0x0250 */ 12,112,160,225, 14,240,160,225, 7,192,160,225, 6,112,160,227,
/* 0x0260 */ 0, 0, 0,239, 12,112,160,225, 14,240,160,225, 7,192,160,225,
/* 0x0270 */ 10,112,160,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225,
/* 0x0280 */ 7,192,160,225, 20,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x0290 */ 14,240,160,225, 7,192,160,225, 45,112,160,227, 0, 0, 0,239,
/* 0x02a0 */ 12,112,160,225, 14,240,160,225, 7,192,160,225, 85,112,160,227,
/* 0x02b0 */ 0, 0, 0,239, 12,112,160,225, 14,240,160,225, 7,192,160,225,
/* 0x02c0 */ 91,112,160,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225,
/* 0x02d0 */ 7,192,160,225,125,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x02e0 */ 14,240,160,225, 0, 32,160,227, 7,192,160,225, 2,112,160,227,
/* 0x02f0 */ 15,120,135,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225,
/* 0x0300 */ 4, 80, 45,229, 8, 80,157,229, 4, 64, 45,229, 8, 64,157,229,
/* 0x0310 */ 37, 86,160,225, 7,192,160,225,192,112,160,227, 0, 0, 0,239,
/* 0x0320 */ 12,112,160,225, 4, 64,157,228, 4, 80,157,228, 14,240,160,225,
/* 0x0330 */ 188,194, 31,229, 4, 80, 45,229, 0, 80,160,227, 4, 64, 45,229,
/* 0x0340 */ 0, 64,224,227, 12, 48,131,225,241,255,255,234, 0, 0, 80,227,
/* 0x0350 */ 30,255, 47, 1, 0, 48,144,229, 1, 0, 83,225, 8, 0,128, 18,
/* 0x0360 */ 251,255,255, 26, 4, 32,128,229, 30,255, 47,225, 0, 48,144,229,
/* 0x0370 */ 4,224, 45,229, 2, 0, 83,225, 4, 48,144,229, 2,224,160,225,
/* 0x0380 */ 3,192,160, 33, 2, 32,160, 33, 3, 0, 0, 42,127, 0,160,227,
/* 0x0390 */ 157,255,255,235, 1, 48, 92,229, 1, 48, 65,229, 1, 32, 66,226,
/* 0x03a0 */ 1, 0,114,227, 1,192,140,226, 1, 16,129,226,248,255,255, 26,
/* 0x03b0 */ 4, 32,144,229, 0, 48,144,229, 14, 32,130,224, 3, 48,110,224,
/* 0x03c0 */ 0, 48,128,229, 4, 32,128,229, 4,240,157,228,240, 64, 45,233,
/* 0x03d0 */ 0, 80,160,225, 20,208, 77,226, 1, 64,160,225, 2,112,160,225,
/* 0x03e0 */ 3, 96,160,225, 66, 0, 0,234, 4, 16,141,226, 5, 0,160,225,
/* 0x03f0 */ 12, 32,160,227,220,255,255,235, 4,192,157,229, 8, 16,157,229,
/* 0x0400 */ 0, 0, 92,227, 6, 0, 0, 26,248, 48,159,229, 3, 0, 81,225,
/* 0x0410 */ 5, 0, 0, 26, 0, 48,149,229, 0, 0, 83,227, 2, 0, 0, 26,
/* 0x0420 */ 54, 0, 0,234, 0, 0, 81,227, 1, 0, 0, 26,127, 0,160,227,
/* 0x0430 */ 117,255,255,235, 12, 0, 81,225,251,255,255,138, 0, 48,148,229,
/* 0x0440 */ 3, 0, 92,225,248,255,255,138, 12, 0, 81,225, 31, 0, 0, 42,
/* 0x0450 */ 16,192,141,229, 12,192,157,229, 4, 0,149,229, 4, 32,148,229,
/* 0x0460 */ 16, 48,141,226, 0,192,141,229, 55,255, 47,225, 0, 0, 80,227,
/* 0x0470 */ 237,255,255, 26, 16, 16,157,229, 4, 48,157,229, 3, 0, 81,225,
/* 0x0480 */ 233,255,255, 26, 13, 32,221,229, 0, 0, 82,227, 0, 0, 86, 19,
/* 0x0490 */ 8, 0, 0, 10, 2, 12, 81,227, 2, 0, 0,138, 0, 48,148,229,
/* 0x04a0 */ 1, 0, 83,225, 3, 0, 0, 26, 2, 48,160,225, 4, 0,148,229,
/* 0x04b0 */ 14, 32,221,229, 54,255, 47,225, 8, 48,157,229, 6, 0,149,232,
/* 0x04c0 */ 3, 32,130,224, 1, 16, 99,224, 6, 0,133,232, 3, 0, 0,234,
/* 0x04d0 */ 1, 32,160,225, 5, 0,160,225, 4, 16,148,229,162,255,255,235,
/* 0x04e0 */ 4, 48,157,229, 6, 0,148,232, 3, 32,130,224, 1, 16, 99,224,
/* 0x04f0 */ 6, 0,132,232, 0, 48,148,229, 0, 0, 83,227,185,255,255, 26,
/* 0x0500 */ 20,208,141,226,240,128,189,232, 85, 80, 88, 33,240, 79, 45,233,
/* 0x0510 */ 1,144,160,225, 28, 16,145,229, 56,208, 77,226, 1, 96,137,224,
/* 0x0520 */ 92, 16,157,229,176,193,217,225, 0, 16,145,229,188,226,217,225,
/* 0x0530 */ 2, 0, 92,227, 28, 16,141,229, 16, 0,141,229, 16, 80,160, 3,
/* 0x0540 */ 0, 80,160, 19, 1,224, 78,226, 6, 16,160,225, 0, 0,224,227,
/* 0x0550 */ 0,192,160,227, 12, 32,141,229, 8, 48,141,229, 11, 0, 0,234,
/* 0x0560 */ 0, 48,145,229, 1, 0, 83,227, 6, 0, 0, 26, 8, 48,145,229,
/* 0x0570 */ 20, 32,145,229, 3, 0, 80,225, 3, 0,160, 33, 2, 48,131,224,
/* 0x0580 */ 3, 0, 92,225, 3,192,160, 49, 32, 16,129,226, 1,224, 78,226,
/* 0x0590 */ 0, 0, 94,227,241,255,255,170,255, 78,192,227, 15, 64,196,227,
/* 0x05a0 */ 12, 48,100,224,255, 62,131,226, 15, 48,131,226, 16, 32, 5,226,
/* 0x05b0 */ 255, 62,195,227, 0, 0, 82,227, 15, 48,195,227, 44, 48,141,229,
/* 0x05c0 */ 36, 64,141, 21, 4, 0, 0, 26, 5, 48,160,225, 4, 0,160,225,
/* 0x05d0 */ 44, 16,157,229, 85,255,255,235, 36, 0,141,229, 36, 32,157,229,
/* 0x05e0 */ 52, 48,160,227, 2, 64,100,224, 4,192,160,225,147, 12, 12,224,
/* 0x05f0 */ 0, 16,160,227, 32, 80,134,226, 20, 64,141,229, 40,192,141,229,
/* 0x0600 */ 32, 16,141,229,136, 0, 0,234, 12, 32,157,229, 0, 0, 82,227,
/* 0x0610 */ 9, 0, 0, 10, 32, 48, 21,229, 6, 0, 83,227, 6, 0, 0, 26,
/* 0x0620 */ 24, 32, 21,229, 20, 48,157,229, 8, 0,157,229, 2, 32,131,224,
/* 0x0630 */ 3, 16,160,227, 68,255,255,235,119, 0, 0,234, 32, 48, 21,229,
/* 0x0640 */ 1, 0, 83,227,116, 0, 0, 26, 8, 48, 21,229, 76, 34,159,229,
/* 0x0650 */ 7, 48, 3,226, 3, 49,160,225, 50, 67,160,225, 20,192,157,229,
/* 0x0660 */ 24, 48, 21,229, 16, 32, 21,229, 3,176,140,224, 11, 58,160,225,
/* 0x0670 */ 35, 58,160,225, 12, 16,157,229, 48, 32,141,229, 3,128,130,224,
/* 0x0680 */ 12, 32, 21,229, 0, 0, 81,227, 52,176,141,229, 7,160, 4,226,
/* 0x0690 */ 24, 32,141,229, 11, 96, 99,224, 14, 0, 0, 10, 6, 0,160,225,
/* 0x06a0 */ 8, 16,160,225, 2, 32,138,227, 16, 48,160,227, 31,255,255,235,
/* 0x06b0 */ 0, 0, 86,225, 73, 0, 0, 26, 96,192,157,229, 4, 48, 20,226,
/* 0x06c0 */ 12, 48,160, 17, 12, 0,157,229, 48, 16,141,226, 16, 32,157,229,
/* 0x06d0 */ 61,255,255,235, 11, 0, 0,234, 28,192, 21,229, 6, 0,160,225,
/* 0x06e0 */ 12,192, 99,224, 4,192,141,229, 16,192,157,229, 8, 16,160,225,
/* 0x06f0 */ 10, 32,160,225, 18, 48,160,227, 0,192,141,229,255,254,255,235,
/* 0x0700 */ 0, 0, 86,225, 53, 0, 0, 26, 0, 48,104,226, 3,122,160,225,
/* 0x0710 */ 2, 0, 26,227, 39,122,160,225, 7, 0, 0, 10, 0, 0, 87,227,
/* 0x0720 */ 5, 0, 0, 10, 8, 16,134,224, 7, 32,160,225, 0, 48,160,227,
/* 0x0730 */ 1, 32, 82,226, 1, 48,193,228,251,255,255, 26, 12, 16,157,229,
/* 0x0740 */ 0, 0, 81,227, 39, 0, 0, 10, 32, 48, 21,229, 1, 0, 83,227,
/* 0x0750 */ 28, 0, 0, 26, 8, 48, 21,229, 1, 0, 19,227, 25, 0, 0, 10,
/* 0x0760 */ 12, 32, 21,229, 16, 48, 21,229, 24, 16, 21,229, 3, 0, 82,225,
/* 0x0770 */ 60, 0, 0, 26, 1, 48,130,224, 20, 32,157,229, 3, 48,131,226,
/* 0x0780 */ 3, 48,130,224, 3, 64,195,227, 0, 48,100,226, 3, 58,160,225,
/* 0x0790 */ 35, 58,160,225, 7, 0, 83,227, 50, 0, 0,154, 28, 48,157,229,
/* 0x07a0 */ 8, 16,132,226, 0, 48,132,229,244, 48,159,229, 4, 0,160,225,
/* 0x07b0 */ 4, 48,132,229,202,254,255,235, 8, 0,157,229, 4, 32,160,225,
/* 0x07c0 */ 0, 16,160,227,224,254,255,235, 6, 0,160,225, 8, 16,160,225,
/* 0x07d0 */ 10, 32,160,225,189,254,255,235, 0, 0, 80,227, 1, 0, 0, 10,
/* 0x07e0 */ 127, 0,160,227,136,254,255,235, 24,192,157,229, 7, 48,136,224,
/* 0x07f0 */ 12, 16,139,224, 3, 64,134,224, 1, 0, 84,225, 6, 0, 0, 42,
/* 0x0800 */ 1, 16,100,224, 10, 32,160,225, 4, 0,160,225, 16, 48,160,227,
/* 0x0810 */ 198,254,255,235, 0, 0, 84,225,240,255,255, 26, 32, 16,157,229,
/* 0x0820 */ 32, 80,133,226, 1, 16,129,226, 32, 16,141,229,188, 50,217,225,
/* 0x0830 */ 32, 32,157,229, 3, 0, 82,225,114,255,255,186, 12, 48,157,229,
/* 0x0840 */ 0, 0, 83,227, 14, 0, 0, 10,176, 49,217,225, 3, 0, 83,227,
/* 0x0850 */ 11, 0, 0, 10, 36,192,157,229, 44, 16,157,229, 1, 0,140,224,
/* 0x0860 */ 139,254,255,235, 6, 0, 0,234, 28, 48, 21,229, 0, 0, 83,227,
/* 0x0870 */ 40, 32,157, 5, 2, 48,129, 0, 8, 64,131, 2,198,255,255, 10,
/* 0x0880 */ 208,255,255,234, 20,192,157,229, 92, 48,157,229, 0,192,131,229,
/* 0x0890 */ 24, 0,153,229, 0, 0,140,224, 56,208,141,226,240,143,189,232,
/* 0x08a0 */ 64, 98, 81,115, 14,240,160,225,240, 69, 45,233, 12,208, 77,226,
/* 0x08b0 */ 0,112,160,225, 1, 80,160,225, 48, 0,141,226, 40, 16,141,226,
/* 0x08c0 */ 3,160,160,225, 0, 48,160,227, 44, 96,157,229, 2,128,160,225,
/* 0x08d0 */ 48, 64,157,229,188,254,255,235, 52, 48,157,229, 5, 16,160,227,
/* 0x08e0 */ 3, 48,100,224,188, 34,214,225, 7, 0,160,225, 52, 48,141,229,
/* 0x08f0 */ 48, 80,141,229,148,254,255,235, 4, 16,160,227, 7, 0,160,225,
/* 0x0900 */ 186, 34,214,225,144,254,255,235, 52, 80,134,226, 6, 16,160,225,
/* 0x0910 */ 52, 48,145,229, 32, 16,129,226, 1, 0, 83,227,251,255,255, 26,
/* 0x0920 */ 56, 32,157,229, 28, 48,145,229, 52, 32,130,226, 3, 32,130,224,
/* 0x0930 */ 7, 0,160,225, 3, 16,160,227,131,254,255,235, 60, 48,157,229,
/* 0x0940 */ 12,192,141,226, 4, 48, 44,229, 6, 16,160,225, 48, 32,141,226,
/* 0x0950 */ 7, 48,160,225, 8, 0,160,225, 0,192,141,229, 4,160,141,229,
/* 0x0960 */ 233,254,255,235, 0, 64,160,225, 9, 16,160,227, 4, 32,160,225,
/* 0x0970 */ 7, 0,160,225,116,254,255,235,188, 18,214,225, 0, 32,160,227,
/* 0x0980 */ 35, 0, 0,234, 0, 48,149,229, 3, 0, 83,227, 30, 0, 0, 26,
/* 0x0990 */ 8, 48,149,229, 8, 0,157,229, 0, 16,160,227, 0, 0,131,224,
/* 0x09a0 */ 1, 32,160,225, 38,254,255,235, 0, 80, 80,226, 4, 0, 0,186,
/* 0x09b0 */ 6, 16,160,225, 2, 44,160,227, 23,254,255,235, 2, 12, 80,227,
/* 0x09c0 */ 1, 0, 0, 10,127, 0,160,227, 15,254,255,235, 0,224,160,227,
/* 0x09d0 */ 14, 32,160,225, 8,192,141,226, 6, 16,160,225, 7, 48,160,225,
/* 0x09e0 */ 5, 0,160,225, 0, 80,141,232,199,254,255,235, 7, 16,160,227,
/* 0x09f0 */ 0, 64,160,225, 8, 32,157,229, 7, 0,160,225, 82,254,255,235,
/* 0x0a00 */ 5, 0,160,225, 19,254,255,235, 3, 0, 0,234, 32, 80,133,226,
/* 0x0a10 */ 1, 32,130,226, 1, 0, 82,225,217,255,255,186, 4, 0,160,225,
/* 0x0a20 */ 12,208,141,226,240,133,189,232
};
+7 -7
View File
@@ -32,17 +32,17 @@
#define STUB_ARMEL_LINUX_KERNEL_VMLINUZ_SIZE 15163
#define STUB_ARMEL_LINUX_KERNEL_VMLINUZ_ADLER32 0xed19325c
#define STUB_ARMEL_LINUX_KERNEL_VMLINUZ_CRC32 0xfb489939
#define STUB_ARMEL_LINUX_KERNEL_VMLINUZ_ADLER32 0x690d3249
#define STUB_ARMEL_LINUX_KERNEL_VMLINUZ_CRC32 0x579d826c
unsigned char stub_armel_linux_kernel_vmlinuz[15163] = {
/* 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 */ 244, 18, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
/* 0x0030 */ 29, 0, 26, 0, 2, 16,160,225, 0, 32,160,225, 14, 0,160,225,
/* 0x0040 */ 4,192, 33,229, 15, 32, 33,233, 0, 48,160,227, 1,208,160,225,
/* 0x0050 */ 20, 16,159,229, 4, 48, 45,229, 16, 48,159,229, 8, 48,141,229,
/* 0x0060 */ 8, 48,141,226,254,255,255,235, 14, 0, 0,234, 0, 0, 0, 0,
/* 0x0030 */ 29, 0, 26, 0, 4,192, 34,229, 9, 32, 34,233, 4, 32, 66,226,
/* 0x0040 */ 0, 48,160,227, 8, 64, 34,233, 2,208,160,225, 28, 48,159,229,
/* 0x0050 */ 8, 48,141,229, 8, 48,141,226, 0, 32,160,225, 8, 16,159,229,
/* 0x0060 */ 14, 0,160,225,254,255,255,235, 14, 0, 0,234, 0, 0, 0, 0,
/* 0x0070 */ 0, 0, 0, 0, 0, 0, 80,227, 14, 0, 0, 26, 12, 0,157,229,
/* 0x0080 */ 8, 16,157,229, 0, 32,160,227, 0, 48,160,227,254,255,255,235,
/* 0x0090 */ 15,112,157,232, 2, 0,160,225, 14,240,160,225,255, 48, 3,226,
@@ -497,7 +497,7 @@ unsigned char stub_armel_linux_kernel_vmlinuz[15163] = {
/* 0x1ca0 */ 76, 73, 78, 85, 88, 48, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69,
/* 0x1cb0 */ 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1cc0 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48,
/* 0x1cd0 */ 48, 48, 49, 52, 32, 82, 95, 65, 82, 77, 95, 65, 66, 83, 51, 50,
/* 0x1cd0 */ 48, 48, 48, 99, 32, 82, 95, 65, 82, 77, 95, 65, 66, 83, 51, 50,
/* 0x1ce0 */ 32, 32, 32, 32, 32, 32, 32, 77, 69, 84, 72, 79, 68, 10, 48, 48,
/* 0x1cf0 */ 48, 48, 48, 48, 51, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50,
/* 0x1d00 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 73, 78, 85, 88, 48, 51,
+28 -28
View File
@@ -1,5 +1,5 @@
/* i386-linux.elf-fold.h
created from i386-linux.elf-fold.bin, 1747 (0x6d3) bytes
created from i386-linux.elf-fold.bin, 1754 (0x6da) bytes
This file is part of the UPX executable compressor.
@@ -31,17 +31,17 @@
*/
#define STUB_I386_LINUX_ELF_FOLD_SIZE 1747
#define STUB_I386_LINUX_ELF_FOLD_ADLER32 0xeabff2db
#define STUB_I386_LINUX_ELF_FOLD_CRC32 0xb6120da4
#define STUB_I386_LINUX_ELF_FOLD_SIZE 1754
#define STUB_I386_LINUX_ELF_FOLD_ADLER32 0x421af656
#define STUB_I386_LINUX_ELF_FOLD_CRC32 0xad8687b6
unsigned char stub_i386_linux_elf_fold[1747] = {
unsigned char stub_i386_linux_elf_fold[1754] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 3, 0, 1, 0, 0, 0,128, 16,192, 0, 52, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 16,192, 0,
/* 0x0040 */ 0, 16,192, 0,211, 6, 0, 0,212, 6, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0,211, 6, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 0, 16,192, 0,218, 6, 0, 0,220, 6, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0,218, 6, 0, 0, 0, 0, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 87, 83, 41,201,186,120, 2, 0, 0,137,230,137,231, 41,219,232,
@@ -125,25 +125,25 @@ unsigned char stub_i386_linux_elf_fold[1747] = {
/* 0x0560 */ 224,102,131,123, 16, 3,116, 8,139, 93,240,106, 45, 88,205,128,
/* 0x0570 */ 131,125,212, 0,116, 8,139, 69,200,139,117,212,137, 6,139, 85,
/* 0x0580 */ 224,139, 82, 24, 1, 85,200,139, 69,200,141,101,244, 91, 94, 95,
/* 0x0590 */ 201,195, 85,137,229, 87, 86, 83,131,236, 32,139, 85, 16,106, 0,
/* 0x05a0 */ 139, 69, 8,137, 85,232,131,194, 2,255,117,232,137, 69,236,139,
/* 0x05b0 */ 125, 28,137, 85,228,139, 93, 32,141, 85, 24,141, 69, 32,141,119,
/* 0x05c0 */ 52,232,247,251,255,255,139, 69, 12, 15,183, 79, 44,186, 5, 0,
/* 0x05d0 */ 0, 0,137, 69, 32,139, 69,236, 41, 93, 36,232,189,252,255,255,
/* 0x05e0 */ 15,183, 79, 42,139, 69,236,186, 4, 0, 0, 0,232,172,252,255,
/* 0x05f0 */ 255, 89,137,240, 91,131,127, 52, 1,116, 8,131,192, 32,131, 56,
/* 0x0600 */ 1,235,246,139, 77, 40,186, 3, 0, 0, 0, 3, 72, 8,139, 69,
/* 0x0610 */ 236,131,193, 52,232,132,252,255,255,141, 77,240,255,117,228,137,
/* 0x0620 */ 250, 81,141, 69, 32,255,117,236, 80,139, 69,232,232,135,252,255,
/* 0x0630 */ 255,186, 9, 0, 0, 0,137,193,137, 69,224,139, 69,236,232, 90,
/* 0x0640 */ 252,255,255,102,139, 79, 44,131,196, 16, 49,210,102,133,201,116,
/* 0x0650 */ 119,131, 62, 3,117,103,139, 93,240, 49,201, 3, 94, 8,137,202,
/* 0x0660 */ 106, 5, 88,205,128,133,192,137,198,120, 21,186, 0, 2, 0, 0,
/* 0x0670 */ 137,195,137,249,106, 3, 88,205,128, 61, 0, 2, 0, 0,116, 10,
/* 0x0680 */ 106,127, 91,106, 1, 88,205,128,235,254,141, 69,240,137,250,106,
/* 0x0690 */ 0,137,243, 80,137,240,255,117,236,106, 0,232, 24,252,255,255,
/* 0x06a0 */ 139, 77,240,137, 69,224,139, 69,236,186, 7, 0, 0, 0,232,234,
/* 0x06b0 */ 251,255,255,131,196, 16,106, 6, 88,205,128,235, 11, 66, 15,183,
/* 0x06c0 */ 193,131,198, 32, 57,194,124,137,139, 69,224,141,101,244, 91, 94,
/* 0x06d0 */ 95,201,195
/* 0x0590 */ 201,195, 85,137,229, 87, 86, 83,131,236, 36,139, 85, 16,106, 0,
/* 0x05a0 */ 139,125, 28,139, 69, 8,137, 85,232,255,117,232,131,194, 2,141,
/* 0x05b0 */ 79, 52,139, 93, 32,137, 69,236,137, 85,228,137,206,141, 85, 24,
/* 0x05c0 */ 141, 69, 32,137, 77,224,232,242,251,255,255,139, 69, 12, 15,183,
/* 0x05d0 */ 79, 44,186, 5, 0, 0, 0,137, 69, 32,139, 69,236, 41, 93, 36,
/* 0x05e0 */ 232,184,252,255,255, 15,183, 79, 42,139, 69,236,186, 4, 0, 0,
/* 0x05f0 */ 0,232,167,252,255,255, 89, 91,131,127, 52, 1,116, 8,131,198,
/* 0x0600 */ 32,131, 62, 1,235,246,139, 77, 40,186, 3, 0, 0, 0, 3, 78,
/* 0x0610 */ 8,141, 93,240,139, 69,236,131,193, 52,232,126,252,255,255,255,
/* 0x0620 */ 117,228, 83,137,250,141, 69, 32,255,117,236, 80,139, 69,232,232,
/* 0x0630 */ 132,252,255,255,186, 9, 0, 0, 0,137,193,137, 69,220,139, 69,
/* 0x0640 */ 236,232, 87,252,255,255,102,139, 79, 44,131,196, 16, 49,210,102,
/* 0x0650 */ 133,201,116,123,139, 69,224,131, 56, 3,117,103,139, 93,240, 49,
/* 0x0660 */ 201, 3, 88, 8,137,202,106, 5, 88,205,128,133,192,137,198,120,
/* 0x0670 */ 21,186, 0, 2, 0, 0,137,195,137,249,106, 3, 88,205,128, 61,
/* 0x0680 */ 0, 2, 0, 0,116, 10,106,127, 91,106, 1, 88,205,128,235,254,
/* 0x0690 */ 141, 69,240,137,250,106, 0,137,243, 80,137,240,255,117,236,106,
/* 0x06a0 */ 0,232, 18,252,255,255,139, 77,240,137, 69,220,139, 69,236,186,
/* 0x06b0 */ 7, 0, 0, 0,232,228,251,255,255,131,196, 16,106, 6, 88,205,
/* 0x06c0 */ 128,235, 12, 66, 15,183,193,131, 69,224, 32, 57,194,124,133,139,
/* 0x06d0 */ 69,220,141,101,244, 91, 94, 95,201,195
};
+5
View File
@@ -289,7 +289,12 @@ dy_uncpr:
movzbl 1+ b_method(%rax),%arg4l # ftid
test %arg4l,%arg4l; je dy_uncpr # no filter
movzbl 2+ b_method(%rax),%arg3l # cto8
#if 0
mov sz_unc(%rax),%arg2l
#else
// sz_unc == 0
mov (%rax),%arg2l
#endif
mov %rdx,%arg1 # dst
call f_unfilter # f_unfilter(1=rdi=dst, 2=rsi=dstlen, 3=rdx=cto8, 4=rcx=ftid)
jmp dy_uncpr
+5
View File
@@ -190,7 +190,12 @@ unfold:
pop %rbx // &{ b_info:{sz_unc, sz_cpr, 4{byte}}, compressed_data...}
mov sz_cpr(%rbx),%ecx
lea -1+ sz_b_info(%rcx,%rbx),%rsi // &hi_byte folded original
#if 0
mov sz_unc(%rbx),%edi
#else
// sz_unc == 0
mov (%rbx),%edi
#endif
lea GAP + NO_LAP -1+ sz_b_info(%rdi,%rbx),%rdi // &hi_byte folded copy
std; rep movsb // copy descending
+12 -1
View File
@@ -233,11 +233,22 @@ unfold:
XXX: 4GB Note that MOVL $imm32,reg zero-extends to 64-bits.
(Use an temporary register to obtain 4GB range on PUSH constant.)
*/
#if 1
/* INFO: newer gas versions (correctly) encode the "push $IMMEDIATE" into
a R_X86_64_32S instead of R_X86_64_32 relocation type.
Avoid that until tested.
*/
.byte 0x68; .int JMPU // push $ JMPU (R_X86_64_32)
push %rax // for unmap in fold
.byte 0x68; .int LENU // push $ JMPU (R_X86_64_32)
#else
push $ JMPU // for unmap in fold
push %rax // for unmap in fold
push $ LENU // for unmap in fold
#endif
push %rcx // ADRX for upx_main
push %r15 // LENX for upx_main
push %r15 // LENX for upx_main
/* Get some pages. If small, then get 1 page located just after the end
of the first PT_LOAD of the compressed program. This will still be below
+496
View File
@@ -0,0 +1,496 @@
/*
; AMD64-win64.pep.S -- loader & decompressor for the w64/pe32+ format
;
; This file is part of the UPX executable compressor.
;
; Copyright (C) 1996-2009 Markus Franz Xaver Johannes Oberhumer
; Copyright (C) 1996-2009 Laszlo Molnar
; All Rights Reserved.
;
; UPX and the UCL library are free software; you can redistribute them
; and/or modify them under the terms of the GNU General Public License as
; published by the Free Software Foundation; either version 2 of
; the License, or (at your option) any later version.
;
; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with this program; see the file COPYING.
; If not, write to the Free Software Foundation, Inc.,
; 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
;
; Markus F.X.J. Oberhumer Laszlo Molnar
; <markus@oberhumer.com> <ml1050@users.sourceforge.net>
;
;---------------------------------------------------------------------
;
; 64 bit modifications (C) 2010 Stefan Widmann
;
; Major changes when porting 32 bit code to 64 bit:
; - there are no pusha/popa instructions
; - since we cannot use pusha/popa, we save rbx, rsi, rdi and rbp instead
; - inc <reg> are now being encoded in 2 byte instructions
; - functions use fast call calling convention (parameters are passed in registers)
; rcx, rdx, r8, r9
; - caller is responsible for stack allocation for callee
; - caller cleans up stack
; - caller must keep the stack 16 byte aligned, 32 bytes shadow space on stack
; For more information about the 64 bit calling convention see http://blogs.msdn.com/oldnewthing/archive/2004/01/14/58579.aspx
*/
#include "arch/amd64/macros.S"
#define IMM8(value) byte ptr 0; \
.reloc . - 1, R_X86_64_8, value
#define IMM16(value) word ptr (1<<15); \
.reloc . - 2, R_X86_64_16, (1<<15) + value
#define IMM32(value) dword ptr (1<<31); \
.reloc . - 4, R_X86_64_32, (1<<31) + value
#define IMM64(value) qword ptr (1<<63); \
.reloc . - 8, R_X86_64_64, (1<<63) + value
#define SHORT(label) . + 1; .reloc . - 1, R_X86_64_PC8, label
//; debugging is not too user friendly under wine:
//; by adding the "DEBUG" macro into the code
//; an exception will be raised, and a register dump is printed
//; WINEDEBUG=trace+seh wine x.exe &> x.debug
#define DEBUG movb [0], 0
.intel_syntax noprefix
// =============
// ============= ENTRY POINT
// =============
section START
section PEISDLL0
mov [rsp + 8], rcx
mov [rsp + 0x10], rdx
mov [rsp + 0x18], r8
section PEISDLL1
cmp dl, 1
jnz reloc_end_jmp
section PEMAIN01
//; remember to keep stack aligned!
push rbx
push rsi
push rdi
push rbp
lea rsi, [rip + start_of_compressed]
lea rdi, [rsi + start_of_uncompressed]
section PEICONS1
incw [rdi + icon_offset]
section PEICONS2
add [rdi + icon_offset], IMM16(icon_delta)
section PETLSHAK
lea rax, [rdi + tls_address]
push [rax] // save the TLS index
mov [rax], IMM32(tls_value) // restore compressed data overwritten by the TLS index
push rax
section PEMAIN02
push rdi
section PEMAIN03
// =============
// ============= DECOMPRESSION
// =============
.att_syntax
section NRV_HEAD
/* Working registers */
#define off %eax /* XXX: 2GB */
#define len %ecx /* XXX: 2GB */
#define lenq %rcx
#define bits %ebx
#define disp %rbp
xor bits,bits // empty; force refill
xor len,len // create loop invariant
orq $(~0),disp // -1: initial displacement
call setup // push &getbit [TUNED]
ra_setup:
#define jnextb0np jnextb0yp
#define jnextb0yp GETBITp; jnc
#define jnextb1np jnextb1yp
#define jnextb1yp GETBITp; jc
#define GETBITp \
addl bits,bits; jnz 0f; \
movl (%rsi),bits; subq $-4,%rsi; \
adcl bits,bits; movb (%rsi),%dl; \
0:
/* Same, but without prefetch (not useful for length of match.) */
#define jnextb0n jnextb0y
#define jnextb0y GETBIT; jnc
#define jnextb1n jnextb1y
#define jnextb1y GETBIT; jc
#define GETBIT \
addl bits,bits; jnz 0f; \
movl (%rsi),bits; subq $-4,%rsi; \
adcl bits,bits; \
0:
/* rotate next bit into bottom bit of reg */
#define getnextbp(reg) call *%r11; adcl reg,reg
#define getnextb(reg) getnextbp(reg)
getbit:
addl bits,bits; jz refill // Carry= next bit
rep; ret
refill:
movl (%rsi),bits; subq $-4,%rsi // next 32 bits; set Carry
adcl bits,bits // LSB= 1 (CarryIn); CarryOut= next bit
movb (%rsi),%dl // speculate: literal, or bottom 8 bits of offset
rep; ret
copy: // In: len, %rdi, disp; Out: 0==len, %rdi, disp; trashes %rax, %rdx
leaq (%rdi,disp),%rax; cmpl $5,len // <=3 is forced
movb (%rax),%dl; jbe copy1 // <=5 for better branch predict
cmpq $-4,disp; ja copy1 // 4-byte chunks would overlap
subl $4,len // adjust for termination cases
copy4:
movl (%rax),%edx; addq $4, %rax; subl $4,len
movl %edx,(%rdi); leaq 4(%rdi),%rdi; jnc copy4
addl $4,len; movb (%rax),%dl; jz copy0
copy1:
incq %rax; movb %dl,(%rdi); subl $1,len
movb (%rax),%dl
leaq 1(%rdi),%rdi; jnz copy1
copy0:
rep; ret
setup:
cld
pop %r11 // addq $ getbit - ra_setup,%r11 # &getbit
#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"
#undef len
.intel_syntax noprefix
section LZMA_HEAD
mov eax, IMM32(lzma_u_len)
push rax
mov rcx, rsp
mov rdx, rdi
mov rdi, rsi
mov esi, IMM32(lzma_c_len)
.att_syntax
#include "arch/amd64/regs.h"
#include "arch/amd64/lzma_d.S"
.intel_syntax noprefix
section LZMA_TAIL
leave
pop rax
// =============
section PEMAIN10
eof:
pop rsi // load vaddr
section PETLSHAK2 // restore the TLS index
pop rdi
pop rax
mov [rdi], eax
// =============
// ============= FILTERS
// =============
section PECTTPOS
lea rdi, [rsi + filter_buffer_start]
section PECTTNUL
mov rdi, rsi
section PEFILTER49
mov ecx, offset filter_length
mov dl, IMM8(filter_cto)
.att_syntax
#define esi ebx
#define rsi rbx
#include "arch/amd64/bxx.S"
#undef esi
#undef rsi
.intel_syntax noprefix
// =============
// ============= IMPORTS
// =============
section PEIMPORT
sub rsp, 0x28
lea rdi, [rsi + compressed_imports]
next_dll:
mov eax, [rdi]
or eax, eax
jz SHORT(imports_done)
mov ebx, [rdi + 4] // iat
lea rcx, [rax + rsi + start_of_imports]
add rbx, rsi
add rdi, 8
call [rsi + LoadLibraryA]
xchg rax, rbp
next_func:
mov al, [rdi]
inc rdi
or al, al
jz next_dll
section PEIBYORD
jns SHORT(byname)
section PEK32ORD
jpe not_kernel32
mov eax, [rdi]
add rdi, 4
mov rax, [rax + rsi + kernel32_ordinals]
jmp SHORT(next_imp)
not_kernel32:
section PEIMORD1
movzxw rdx, word ptr [rdi]
add rdi, 2
jmp SHORT(first_imp)
byname:
section PEIMPOR2
mov rcx, rdi // something > 0
mov rdx, rdi
dec eax
repne
scasb
first_imp:
mov rcx, rbp
call [rsi + GetProcAddress]
#if 1
;// FIXME: is this error handling really needed?
or rax, rax
jz imp_failed
#endif
next_imp:
mov [rbx], rax
add rbx, 8
jmp SHORT(next_func)
imp_failed:
section PEIERDLL
add rsp, 0x28
pop rbp
pop rdi
pop rsi
pop rbx
xor eax, eax
ret
section PEIEREXE
// rcx contains garbage -> garbage return code
jmp [rsi + ExitProcess]
section PEIMDONE
imports_done:
add rsp, 0x28
// =============
// ============= RELOCATION
// =============
section PERELOC1
lea rdi, [rsi + start_of_relocs]
section PERELOC2
add rdi, 4
section PERELOC3
lea rbx, [rsi - 4]
reloc_main:
xor eax, eax
mov al, [rdi]
inc rdi
or eax, eax
jz SHORT(reloc_endx)
cmp al, 0xEF
ja reloc_fx
reloc_add:
add rbx, rax
mov rax, [rbx]
bswap rax
add rax, rsi
mov [rbx], rax
jmp reloc_main
reloc_fx:
and al, 0x0F
shl eax, 16
mov ax, [rdi]
add rdi, 2
section REL64BIG
or eax, eax
jnz SHORT(reloc_add)
mov eax, [rdi]
add rdi, 4
section RELOC64J
jmp SHORT(reloc_add)
reloc_endx:
// =============
// FIXME: depends on that in PERELOC1 rdi is set!!
section PERLOHI0
xchg rdi, rsi
lea rcx, [rdi + reloc_delt]
section PERELLO0
jmp 1f
rello0:
add [rdi + rax], cx
1:
lodsd
or eax, eax
jnz rello0
// =============
section PERELHI0
shr ecx, 16
jmp 1f
relhi0:
add [rdi + rax], cx
1:
lodsd
or eax, eax
jnz relhi0
// =============
section PEDEPHAK
mov rbp, [rsi + VirtualProtect]
lea rdi, [rsi + vp_base]
mov ebx, IMM32(vp_size) // 0x1000 or 0x2000
push rax // provide 8 bytes stack
mov r9, rsp
mov r8d, 4 // PAGE_READWRITE
mov rdx, rbx // size
mov rcx, rdi // address
sub rsp, 0x20
call rbp // VirtualProtect
lea rax, [rdi + swri]
andb [rax], 0x7f // marks UPX0 non writeable
andb [rax + 0x28], 0x7f // marks UPX1 non writeable
lea r9, [rsp + 0x20]
movq r8, [r9] // original protection
mov rdx, rbx
mov rcx, rdi
call rbp
add rsp, 0x28
// =============
// ============= TLS callback support part 1
// =============
section PETLSC
movb [rip + PETLSC2], 0xfc // "cld" instead of "ret"
lea rcx, [rsi + tls_module_base] // module base
push 1 // DLL_PROCESS_ATTACH
pop rdx
xor r8, r8 // 0 - reserved
push rax // align stack
call PETLSC2
pop rax
// ============= Cleanup
section PEMAIN20
pop rbp
pop rdi
pop rsi
pop rbx
// clear the dirty stack
.macro clearstack128 tmp_reg
.local loop
lea \tmp_reg, [rsp - 128]
loop:
push 0
cmp rsp, \tmp_reg
jnz loop
sub rsp, -128
.endm
section CLEARSTACK
clearstack128 rax
section PEMAIN21
reloc_end_jmp:
section PEISDLL9
mov r8, [rsp + 0x18]
mov rdx, [rsp + 0x10]
mov rcx, [rsp + 8]
section PERETURN
push 1
pop rax
ret
section PEDOJUMP
jmp original_entry
// =============
// ============= TLS callback support part 2
// =============
// this is the new TLS callback handler
// it calls the original callbacks ONLY after the compression is done
section PETLSC2 // TLS_CALLBACK(hModule, reason, reserved)
ret // this ret gets overwritten with cld by PETLSC
push rsi
lea rsi, [rip + tls_callbacks_ptr]
walk_tlsc_chain2:
lodsq
test rax, rax
jz done_callbacks
push rcx
push rdx
push r8
sub rsp, 0x28
call rax
add rsp, 0x28
pop r8
pop rdx
pop rcx
jmp walk_tlsc_chain2
done_callbacks:
pop rsi
ret
// =============
// ============= CUT HERE
// =============
#include "include/header.S"
// vi:ts=8:et:nowrap
+4
View File
@@ -33,8 +33,10 @@ amdbxx: # (*f_unf)(xo->buf, out_len, h.b_cto8, h.b_ftid);
#define cto8 %arg3l /* known to be "%dl" */
#define ftid %arg4l
#ifndef NO_METHOD_CHECK
cmpl $0x49,ftid; jne ckend # filter: JMP, CALL, 6-byte Jxx
movq len,%rcx # byte count
#endif
movq ptr,%rsi # remember start of buffer
jmp ckstart
ckloop3:
@@ -61,7 +63,9 @@ ckstart:
ckcount:
decq %rcx; jnz ckloop3
ckend:
#ifndef NO_METHOD_CHECK
ret
#endif
#undef ptr
#undef len
+3 -2
View File
@@ -46,8 +46,9 @@ section LZMA_ELF00
// addq src,lsrc; push lsrc // &input_eof
#define M_LZMA 14
#ifndef NO_METHOD_CHECK
cmpb $ M_LZMA,methb; jne not_lzma
#endif
pushq %rbp; movq %rsp,%rbp // we use alloca
//LzmaDecode( // from lzmaSDK/C/7zip/Compress/LZMA_C/LzmaDecode.h
@@ -75,7 +76,7 @@ section LZMA_ELF00
leaq -(2*szSizeT +4) - 2*LZMA_BASE_SIZE(%rsp,%rbx,2), %rbx
andq $~0<<6,%rbx // 64-byte align
1:
pushq $0 // clera CLzmaDecoderState on stack
pushq $0 // clear CLzmaDecoderState on stack
cmpq %rbx,%rsp
jne 1b
+4
View File
@@ -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)
+4
View File
@@ -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)
+4
View File
@@ -29,7 +29,11 @@
<jreiser@users.sourceforge.net>
*/
#ifndef NO_METHOD_CHECK
cmpb $ M_NRV2E_LE32,methb; je top_n2e; jmp not_n2e
#else
jmp top_n2e
#endif
lit_n2e:
incq %rsi; movb %dl,(%rdi)
+2 -2
View File
@@ -472,7 +472,7 @@ decompr0:
section LXJCC010
lxunf2: // have seen 0x80..0x8f of possible recoded 6-byte Jcc <d32>
movzxw ebp, [edi] // 2 bytes, zero-extended
movzx ebp, word ptr [edi] // 2 bytes, zero-extended
section LXMRU045 // 0!=n_mru
sub ebp, __cto8_0f
@@ -644,7 +644,7 @@ section LXMRU040 // 0!=n_mru
section LXUNF030
lxctloop:
movzxw eax, [edi] // 2 bytes, zero extended
movzx eax, word ptr [edi] // 2 bytes, zero extended
add edi, 1
section LXJCC000
cmp al, 0x80 // lo of Jcc <d32>
+2
View File
@@ -47,6 +47,8 @@ sz_b_info = 12
sz_cpr= 4
b_method= 8
_start: .globl _start // ignored, but silence "cannot find entry symbol _start" from ld
// control just falls through, after this part and compiled C code
// are uncompressed.
+3 -2
View File
@@ -102,6 +102,7 @@ _start: .globl _start
mov r3,#1<<12 // 1-page crumb
section ELFMAINXu
stmdb sp!,{r0,r1,r2,r3,lr} // ADRU,LENU,space for sz_unc,crumb,MFLG
SP_MFLG= 4*4
D_sz_unc=2*4 // stack displacement to sz_unc
mov r2,#PROT_READ | PROT_WRITE | PROT_EXEC
ldr r3,[r12, #mflg - (start_params -4)] // MAP_{PRIVATE|ANON}
@@ -124,9 +125,9 @@ copy:
stmia r0!,{r1,r2,r3,r4,r5,r6,r7,r8}; blo copy
sub r4,r0,r9 // relocation amount
ldr r1,[sp,#4*4] // MFLG
ldr r1,[sp,#SP_MFLG]
adr r5,f_decompress
str r1,[r0],#4 // MFLG
str r1,[r0],#4 // MFLG at -4+ fold_begin
mov lr,r0 // dst for unfolded code
add r5,r5,r4 // relocated f_decompress
+165 -24
View File
@@ -40,6 +40,10 @@ sz_b_info = 12
sz_cpr= 4
b_method= 8
#ifndef DEBUG /*{*/
#define DEBUG 0
#endif /*}*/
@@ control just falls through, after this part and compiled C code
@@ are uncompressed.
@@ -53,25 +57,52 @@ fold_begin:
r5= f_decompress
sp/ ADRU,LENU,sz_unc,crumb,MFLG,argc,argv...
*/
ldmia sp!,{r3,r4,r6,r7,r8,r11} @ ADRU,LENU,sz_unc,crumb,MFLG,argc
mov r1,sp @ old_argv
sub sp,sp,#4096 @ buffer for readlink
sub sp,sp,#2*4 @ room for added env ptr and text
mov r0,sp @ new_argv
stmdb sp!,{r3,r4,r6,r7,r11} @ ADRU,LENU,sz_unc,crumb,argc; drop MFLG
SP_sz_unc= 2*4
SP_MFLG= 4*4
SP_argc= 5*4
ldr r3,[sp,#SP_argc]
ldr lr,[sp,#SP_MFLG]
add r3,sp,r3,lsl #2 @ skip argv
add r3,r3,#SP_argc +4 +4 @ skip ADRU,LENU,sz_unc,crumb,MFLG, argc, env_end
.Lenv:
ldr r0,[r3],#4 @ skip env
cmp r0,#0
bne .Lenv
/* r3= &Elf32_auxv_t */
mov r2,r3
.Laux:
ldr r0,[r2],#2*4 @ .a_type
cmp r0,#0
bne .Laux
str r2,[sp,#SP_sz_unc] @ clobber sz_unc with 1+ &Elf32_auxv_t[AT_NULL@.a_type]
SP_argc= 4*4
add r11,r11,#1 @ (1+argc) for end of argv
.Larg: @ copy argv
ldr r2,[r1],#4; subs r11,r11,#1
str r2,[r0],#4; bne .Larg
.Lenv: @ copy env
ldr r2,[r1],#4
str r2,[r0],#4
cmp r2,#0; bne .Lenv
sub r4,r0,#4 @ added env ptr goes here
str r2,[r0],#4 @ terminator after added ptr
mov r3,r0 @ new &Elf32_auxv_t
.Laux: @ copy auxv
ldr r2,[r1,#4] @ .a_val
str r2,[r0,#4]
ldr r2,[r1],#2*4 @ .a_type
str r2,[r0],#2*4
cmp r2,#0; bne .Laux
str r0,[sp,#SP_sz_unc] @ clobber sz_unc with 1+ &Elf32_auxv_t[AT_NULL@.a_type]
str r0,[r4] @ new env ptr
ldr r2,space3eq
str r2,[r0],#4 @ " =" of new env var
mov r2,#4096 @ buffer length
mov r1,r0 @ buffer for readlink
adr r0,proc_self_exe
sub r2,r2,#1 @ room for null terminator
bl readlink; cmn r0,#4096; bcs 0f @ error
mov r2,#0
strb r2,[r1,r0] @ null terminate pathname
0:
/* Construct arglist for upx_main */
sub sp,sp,#MAX_ELF_HDR + OVERHEAD @ alloca
mov r4,r9 @ total size of compressed data
ldr r9,[r10,#sz_cpr] @ xi.size of ELF headers
@@ -89,16 +120,33 @@ SP_argc= 5*4
#else /*}{*/
mov r12,#0
#endif /*}*/
stmdb sp!,{r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}
stmdb sp!,{r3,r4,r5,r6,r7,r8,r9,r10,r11,r12}
ldmia sp!,{r0,r1,r2,r3}
bl upx_main
mov lr,r0 @ entry address
add sp,sp,#(11-4)*4
add sp,sp,#(10-4)*4
add sp,sp,#MAX_ELF_HDR + OVERHEAD @ un-alloca
ldmia sp!,{r0,r1,r2,r3,r4} @ ADRU,LENU,1+ &Elf32_auxv_t[AT_NULL@.a_type],crumb,MFLG
#if 0 //{ make_hatch_arm() does it then
@ __clear_cache(hatch, &hatch[2]);
ldr r2,[sp,#2*4] @ 1+ &Elf32_auxv_t[AT_NULL@.a_type]
ldr r0,[r2,#4 -2*4] @ Elf32_auxv_t[AT_NULL@.a_type].a_val
add r1,r0,#2*4 @ len= 2 instructions the "escape hatch"
mov r2,#0
do_sys7t2 __ARM_NR_cacheflush @ scribble r7
#endif //}
ldmia sp!,{r0,r1,r2,r3} @ ADRU,LENU,1+ &Elf32_auxv_t[AT_NULL@.a_type],crumb
add r0,r0,r3 @ ADRU+=crumb
sub r1,r1,r3 @ LENU-=crumb
#if DEBUG /*{*/
ldr r3,[r2,#4 -2*4] @ Elf32_auxv_t[AT_NULL@.a_type].a_val
ldr r4,[r3,#0] @ 1st instr
ldr r5,[r3,#4] @ 2nd instr
#define TRACE_REGS r0-r12,r14,r15
stmdb sp!,{TRACE_REGS}; mov r0,#4; bl trace
#endif /*}*/
mov r3,#0 @ clear registers: paranoia
mov r4,#0
mov r5,#0
@@ -108,6 +156,17 @@ SP_argc= 5*4
mov r9,#0
mov r10,#0
mov r11,#0
/* Heuristic cache flush: sweep contiguous range to force collisions and evictions. */
sub r12,sp,#(1<<19) @ limit: 1/2 MB more
sweep:
ldr r7,[sp],#-(1<<5) @ extend stack; read allocate 32 bytes
str r7,[sp] @ make it dirty
ldr r7,[sp] @ read alocate again in case dirtying caused COW split
cmp r12,sp; blo sweep
add sp,sp,#(1<<19) @ pop stack
#if defined(ARMEL_DARWIN) /*{*/
mov r7,#0
mov r12,#0xff & __NR_munmap
@@ -120,6 +179,12 @@ SP_argc= 5*4
#endif /*}*/
ldr pc,[r2,#4 -2*4] @ Elf32_auxv_t[AT_NULL@.a_type].a_val
space3eq:
.ascii " ="
proc_self_exe:
.asciz "/proc/self/exe"
.balign 4
f_unfilter: @ (char *ptr, uint len, uint cto, uint fid)
ptr .req r0
len .req r1
@@ -155,6 +220,57 @@ tst_unf:
bne top_unf
ret
#if DEBUG /*{*/
TRACE_BUFLEN=512
trace:
str lr,[sp,#(-1+ 15)*4] @ return pc; [remember: sp is not stored]
mov r4,sp @ &saved_r0
sub sp,sp,#TRACE_BUFLEN
mov r2,sp @ output string
mov r1,#'\n'; bl trace_hex @ In: r0 as label
mov r1,#'>'; strb r1,[r2],#1
mov r5,#3 @ rows to print
L600: @ each row
sub r0,r4,#TRACE_BUFLEN
sub r0,r0,sp
mov r0,r0,lsr #2; mov r1,#'\n'; bl trace_hex @ which block of 8
mov r6,#8 @ words per row
L610: @ each word
ldr r0,[r4],#4; mov r1,#' '; bl trace_hex @ next word
subs r6,r6,#1; bgt L610
subs r5,r5,#1; bgt L600
mov r0,#'\n'; strb r0,[r2],#1
sub r2,r2,sp @ count
mov r1,sp @ buf
mov r0,#2 @ FD_STDERR
#if defined(ARMEL_EABI4) /*{*/
mov r7,#__NR_write
swi 0
#else /*}{*/
swi __NR_write
#endif /*}*/
add sp,sp,#TRACE_BUFLEN
ldmia sp!,{TRACE_REGS}
trace_hex: // In: r0=val, r1=punctuation before, r2=ptr; Uses: r3, ip
strb r1,[r2],#1 @ punctuation
mov r3,#4*(8 -1) @ shift count
adr ip,hex
L620:
mov r1,r0,lsr r3
and r1,r1,#0xf
ldrb r1,[ip, r1]
strb r1,[r2],#1
subs r3,r3,#4; bge L620
ret
hex:
.ascii "0123456789abcdef"
#endif /*}*/
.unreq ptr
.unreq len
.unreq cto
@@ -165,12 +281,24 @@ __NR_read = 3 + __NR_SYSCALL_BASE
__NR_write = 4 + __NR_SYSCALL_BASE
__NR_open = 5 + __NR_SYSCALL_BASE
__NR_close = 6 + __NR_SYSCALL_BASE
__NR_unlink= 10 + __NR_SYSCALL_BASE
__NR_getpid= 20 + __NR_SYSCALL_BASE
__NR_brk = 45 + __NR_SYSCALL_BASE
__NR_readlink=85+ __NR_SYSCALL_BASE
__NR_mmap2 = 192 + __NR_SYSCALL_BASE
__NR_mprotect = 125 + __NR_SYSCALL_BASE
__NR_munmap = 91 + __NR_SYSCALL_BASE
__ARM_NR_BASE = 0x0f0000 + __NR_SYSCALL_BASE
__ARM_NR_cacheflush = 2 + __ARM_NR_BASE
.globl my_bkpt
my_bkpt:
bkpt
ret
.globl exit
exit:
do_sys __NR_exit
@@ -191,10 +319,22 @@ open:
close:
do_sys __NR_close; ret
.globl unlink
unlink:
do_sys __NR_unlink; ret
.globl getpid
getpid:
do_sys __NR_getpid; ret
.globl brk
brk:
do_sys __NR_brk; ret
.globl readlink
readlink:
do_sys __NR_readlink; ret
.globl munmap
munmap:
do_sys __NR_munmap; ret
@@ -203,6 +343,11 @@ munmap:
mprotect:
do_sys __NR_mprotect; ret
.globl __clear_cache
__clear_cache:
mov r2,#0
do_sys2 __ARM_NR_cacheflush; ret
.globl mmap
mmap:
str r5,[sp,#-4]!; ldr r5,[sp,#4+4]
@@ -224,10 +369,6 @@ mmap_privanon: .globl mmap_privanon
b mmap_do
#ifndef DEBUG /*{*/
#define DEBUG 0
#endif /*}*/
#if DEBUG /*{*/
div10: .globl div10
+11 -12
View File
@@ -48,20 +48,19 @@ section LINUX000
decompress_kernel: # (char *out, char *tmp, char *tmp_end, int arch_id)
lr= &indata; ip= retaddr # from arm-linux.kernel.vmlinux-head.S
*/
mov r1,r2 // tmp_end
mov r2,r0 // &outdata
mov r0,lr // &indata
str ip,[r1,#-4]! // push retaddr on new stack
str ip,[r2,#-4]! // push retaddr on new stack
stmdb r2!,{r0,r3,sp} // &outdata, arch_id, sp_in
sub r2,r2,#4 // space for outsize
loadcon8 3,METHOD // mov r3,#METHOD
stmdb r2!,{r3,lr} // METHOD, &indata
mov sp, r2 // method,&indata,space,&outdata,arch_id,sp_in,retaddr
// Value stored from r1 to memory will be overwritten by outsize.
stmdb r1!,{r0,r1,r2,r3,sp} // &indata, space, &outdata, arch_id, sp_in
loadcon8 3,METHOD // mov r3,#METHOD
mov sp,r1 // switch stacks to tmp_end area (64 KiB)
ldr r1,1f // insize
str r3,[sp,#-4]! // method
ldr r3,2f // outsize
str r3,[sp,#2*4] // outsize
add r3,sp, #2*4 // &outsize
str r3,[sp,#2*4] // outsize
add r3, sp,#2*4 // &outsize
mov r2,r0 // &outdata
ldr r1,1f // insize
mov r0,lr // &indata
bl decompressor // (&indata, insize, &outdata, &outsize, method)
b 3f
1:
+4 -4
View File
@@ -112,7 +112,7 @@ addaxds:
movsw
cld
section LONGSUB
subb [cs:si + addaxds + 4], 0x10
subb cs:[si + addaxds + 4], 0x10
section SHORTSUB
.byte 0x2e, 0x80, 0x6c, addaxds + 4, 0x10
section JNCDOCOPY
@@ -177,7 +177,7 @@ reloc_0:
xor ax, ax
reloc_1:
add di, ax
add [es:di], bp
add es:[di], bp
reloc_2:
lodsb
dec ax
@@ -188,9 +188,9 @@ section EXEREL9A
inc di
reloc_4:
inc di
cmpb [es:di], 0x9a
cmpb es:[di], 0x9a
jne reloc_4
cmp [es:di+3], dx
cmp es:[di+3], dx
ja reloc_4
mov al, 3
jmps reloc_1
+1
View File
@@ -202,5 +202,6 @@ L32:
pop edi // &auxtab
ret
.balign 4,0
// vi:ts=8:et:nowrap
+2
View File
@@ -55,4 +55,6 @@ fold_begin: // enter: %ebx= &Elf32_Ehdr of this program
.extern upx_main
call upx_main // Call the UPX main function
hlt // Crash if somehow upx_main does return
.balign 4,0
// vi:ts=8:et:nowrap
+2 -2
View File
@@ -209,8 +209,8 @@ dy_uncpr:
add esp, (5+1)*4 // (5+1) args to decompress
pop edx; pop eax # edx= old dst; eax= old &b_info
movzbl ecx,[1+ b_method + eax]; jecxz dy_uncpr; push ecx # ftid
movzbl ecx,[2+ b_method + eax]; push ecx # cto8
movzx ecx, byte ptr [1+ b_method + eax]; jecxz dy_uncpr; push ecx # ftid
movzx ecx, byte ptr [2+ b_method + eax]; push ecx # cto8
push [sz_unc + eax]
push edx # dst
lea eax,[2+ ebp]; call eax # f_unfilter(dst, dstlen, cto8, ftid)
+1
View File
@@ -135,6 +135,7 @@ read: .globl read
0:
ret
.balign 2,144
/*
vi:ts=8:et:nowrap
*/
+1
View File
@@ -257,5 +257,6 @@ mmap: .globl mmap
pop ebx
ret
.balign 4,0
// vi:ts=8:et:nowrap
+38 -6
View File
@@ -321,7 +321,7 @@ ERR_LAB
}
}
DEBUG_STRCON(STR_make_hatch, "make_hatch %%p %%x\\n");
DEBUG_STRCON(STR_make_hatch, "make_hatch %%p %%x %%x\\n");
#if defined(__i386__) /*{*/
// Create (or find) an escape hatch to use when munmapping ourselves the stub.
@@ -330,7 +330,7 @@ static void *
make_hatch_x86(Elf32_Phdr const *const phdr, unsigned const reloc)
{
unsigned *hatch = 0;
DPRINTF((STR_make_hatch(),phdr,reloc));
DPRINTF((STR_make_hatch(),phdr,reloc,0));
if (phdr->p_type==PT_LOAD && phdr->p_flags & PF_X) {
// The format of the 'if' is
// if ( ( (hatch = loc1), test_loc1 )
@@ -369,7 +369,7 @@ make_hatch_arm(
)
{
unsigned *hatch = 0;
DPRINTF((STR_make_hatch(),phdr,reloc));
DPRINTF((STR_make_hatch(),phdr,reloc,sys_munmap));
if (phdr->p_type==PT_LOAD && phdr->p_flags & PF_X) {
// The format of the 'if' is
// if ( ( (hatch = loc1), test_loc1 )
@@ -389,6 +389,7 @@ make_hatch_arm(
{
hatch[0]= sys_munmap; // syscall __NR_unmap
hatch[1]= 0xe1a0f00e; // mov pc,lr
__clear_cache(&hatch[0], &hatch[2]); // ? needed before mprotect()
}
else {
hatch = 0;
@@ -404,7 +405,7 @@ make_hatch_mips(
unsigned const frag_mask)
{
unsigned *hatch = 0;
DPRINTF((STR_make_hatch(),phdr,reloc));
DPRINTF((STR_make_hatch(),phdr,reloc,frag_mask));
if (phdr->p_type==PT_LOAD && phdr->p_flags & PF_X) {
// Try page fragmentation just beyond .text .
if ( ( (hatch = (void *)(phdr->p_memsz + phdr->p_vaddr + reloc)),
@@ -660,6 +661,18 @@ ERR_LAB
return ehdr->e_entry + reloc;
}
#if 0 && defined(__arm__) //{
static uint32_t ascii5(char *p, uint32_t v, unsigned n)
{
do {
unsigned char d = (0x1f & v) + 'A';
if ('Z' < d) d += '0' - (1+ 'Z');
*--p = d;
v >>= 5;
} while (--n > 0);
return v;
}
#endif //}
DEBUG_STRCON(STR_upx_main,
"upx_main av=%%p szc=%%x f_dec=%%p f_unf=%%p "
@@ -714,7 +727,7 @@ void *upx_main(
#if !defined(__mips__) /*{*/
Elf32_Ehdr *const ehdr = (Elf32_Ehdr *)(void *)xo.buf; // temp char[MAX_ELF_HDR+OVERHEAD]
#endif /*}*/
Elf32_Phdr const *phdr = (Elf32_Phdr const *)(1+ ehdr);
Elf32_Phdr const *phdr = (Elf32_Phdr const *)(1+ ehdr), *zhdr = phdr;
Elf32_Addr reloc;
Elf32_Addr entry;
@@ -757,7 +770,6 @@ void *upx_main(
auxv_up(av, AT_PHNUM , ehdr->e_phnum);
auxv_up(av, AT_PHENT , ehdr->e_phentsize);
{
Elf32_Phdr const *zhdr = phdr;
while (PT_LOAD!=zhdr->p_type) ++zhdr; // skip ARM PT_EXIDX and others
auxv_up(av, AT_PHDR , dynbase + (unsigned)(1+(Elf32_Ehdr *)zhdr->p_vaddr));
}
@@ -788,6 +800,26 @@ ERR_LAB
close(fdi);
break;
}
#if 0 && defined(__arm__) //{ Hack for__clear_cache() not working.
# define SET4(p, c0, c1, c2, c3) \
(p)[0] = c0, (p)[1] = c1, (p)[2] = c2, (p)[3] = c3
if (ehdr->e_phnum <= j) { // no PT_INTERP
extern unsigned getpid(void);
extern unsigned unlink(char const *);
char tmpname_buf[20], *p = tmpname_buf;
SET4(&p[0], '/', 't', 'm', 'p');
SET4(&p[4], '/', 'u', 'p', 'x');
p = &tmpname_buf[sizeof(tmpname_buf)]; *--p = '\0';
unsigned r = ascii5(p, (uint32_t)getpid(), 4); p -= 4;
Elf32_auxv_t *const avr = auxv_find(av, AT_RANDOM);
if (avr) r ^= *(unsigned const *)(~3&(3+avr->a_un.a_val));
ascii5(p, r, 7); p = &tmpname_buf[0];
int const fdo = open(p, O_WRONLY | O_CREAT | O_EXCL, 0700);
unlink(p);
write(fdo, dynbase + (void const *)zhdr->p_vaddr, zhdr->p_memsz);
close(fdo);
}
#endif //}
}
return (void *)entry;
@@ -68,4 +68,5 @@ mmap: .globl mmap
pop ebx
ret
.balign 4,0
// vi:ts=8:et:nowrap
@@ -125,5 +125,6 @@ mmap: .globl mmap
pop ebx
ret
.balign 4,0
// vi:ts=8:et:nowrap
+1
View File
@@ -172,5 +172,6 @@ mmap: .globl mmap
ret
.balign 4,0
// vi:ts=8:et:nowrap
+1 -1
View File
@@ -259,7 +259,7 @@ cmd_exp = 80 // allow kernel to expand command line "in place" by this much
cl_nbp202: // use < 2.02 method. in: ebp= real_mode_ptr
mov esi,ebp // absolute worst case default
cmpw [ebp+ BP_cmd_line_magic],0xA33F; jne cl_move // nothing at all
movzwl esi,[ebp+ BP_cmd_line_offset]
movzx esi, word ptr [ebp+ BP_cmd_line_offset]
add esi,ebp
jmp cl_move
cl_bp202: // try >= 2.02 method
+4 -4
View File
@@ -201,8 +201,8 @@ p_mprot= -5*4
sub eax,ebx // restore
add edi,ebx
movzbl ecx,[esi+b_method-4+1]; push ecx // ftid
movzbl ecx,[esi+b_method-4+2]; push ecx // cto8
movzx ecx, byte ptr [esi+b_method-4+1]; push ecx // ftid
movzx ecx, byte ptr [esi+b_method-4+2]; push ecx // cto8
push eax; mov ecx,esp // dstlen also for unfilter step 7
push edi // dst param for unfilter step 7
p_unflt= -9*4
@@ -248,12 +248,12 @@ supervise:
pop ecx // &dstlen
pop edx // discard method,filter,cto,junk
add eax,[ecx] // dst += dstlen
mov [dword ptr eax],0xc36180cd // "int 0x80; popa; ret"
mov dword ptr [eax],0xc36180cd // "int 0x80; popa; ret"
mov [esp + p_hatch - o_uncpr],eax // hatch at end of .text
//o_uncpr
pop eax // &decompress
//p_unflt
cmp [word ptr esp+3*4],0; je 0f // 0==ftid ==> no filter
cmp word ptr [esp+3*4],0; je 0f // 0==ftid ==> no filter
add eax,2; call eax // unfilter {i386 f_unf==(2+f_unc)}
0:
add esp,4*4
+1
View File
@@ -202,5 +202,6 @@ L32:
pop edi // &auxtab
ret
.balign 4,0
// vi:ts=8:et:nowrap
+2
View File
@@ -541,6 +541,7 @@ ssize_t read(int, void *, size_t);
ssize_t write(int, void const *, size_t);
#endif /*}*/
void __clear_cache(void *, void *);
/*************************************************************************
@@ -654,6 +655,7 @@ typedef struct
#define AT_PAGESZ 6
#define AT_BASE 7
#define AT_ENTRY 9
#define AT_RANDOM 25 /* Address of 16 random bytes. */
#define ET_EXEC 2
#define ET_DYN 3
+23 -10
View File
@@ -111,30 +111,35 @@ _=-1+_ // one less word on stack
#define lodslu bl get4u
section ELFMAINX
//D_INFO:
// .long offset(.) // detect relocation
// .long offset(user DT_INIT)
// .long offset(escape_hatch)
// .long offset({p_info; b_info; compressed data})
// .long offset({l_info; p_info; b_info; compressed data})
#define DEBUG 0
.code 16 //; .balign 4
.real_start_ofELFMAINX:
.thumb_func
_start: .globl _start
nop //; bkpt_th // for debugging
nop
#if DEBUG //{
bkpt_th // for debugging
#endif //}
push {r0,r1,r2,r3,r4,r5,r6,r7,lr}
_=9
o_uinit= 1 // lr
adr tmp,here; mov esi,#4*4 + here - _start
adr esi,here
sub esi,esi,#4*4 + 2*(4+ DEBUG) // D_INFO
here:
sub esi,tmp,esi
mov ecx,esi
ldr eax,[esi,#0*4]; sub ecx,eax; //str ecx,[SP(o_reloc)]
// reloc DT_INIT for step 12
ldr tmp,[esi,#1*4]; add tmp,ecx; str tmp,[SP(o_uinit)]
ldr edi,[esi,#3*4]; add edi,ecx // &p_info; also destination for decompress
ldr edi,[esi,#3*4]; add edi,ecx // &l_info; also destination for decompress
// reloc &hatch (thumb mode) for step 10
ldr tmp,[esi,#2*4]; add tmp,ecx; add tmp,#1
mov esi,#sz_p_info
ldr tmp,[esi,#2*4]; add tmp,ecx
mov esi,#sz_l_info+sz_p_info
add esi,edi // &b_info
push_ tmp
@@ -325,6 +330,13 @@ _=-5+_ // 22
blx eax // decompress
pop_ tmp // toss arg5
// Place the escape hatch
ldr edi,[SP(o_hatch)]
ldr tmp,hatch // the 2 instructions
str tmp,[edi]
add edi,#1 // thumb mode
str edi,[SP(o_hatch)]
//p_unflt // 21
pop {arg1,arg2,arg3,arg4, eax, r5} // r5= w_fragment [discard]
_=-6+_ // 15
@@ -352,9 +364,10 @@ _=-3+_ // 12
.endif
pop {arg1,arg2, pc} // goto hatch
_=-3+_ // 9
//hatch:
// swi 0 // 0xdf00; munmap
// pop {r0,r1,r2,r3,r4,r5,r6,r7,pc} // 0xbdff; goto user DT_INIT
.balign 4
hatch:
swi 0 // 0xdf00; munmap
pop {r0,r1,r2,r3,r4,r5,r6,r7,pc} // 0xbdff; goto user DT_INIT
.thumb_func
movsl_subr:
File diff suppressed because it is too large Load Diff
@@ -13,7 +13,7 @@ Idx Name Size VMA LMA File off Algn
8 LZMA_DEC30 00000014 0000000000000000 0000000000000000 000016f2 2**0 CONTENTS, READONLY
9 NRV_TAIL 00000000 0000000000000000 0000000000000000 00001706 2**0 CONTENTS, READONLY
10 MACHMAINY 00000011 0000000000000000 0000000000000000 00001706 2**0 CONTENTS, READONLY
11 MACHMAINZ 00000135 0000000000000000 0000000000000000 00001717 2**0 CONTENTS, RELOC, READONLY
11 MACHMAINZ 00000134 0000000000000000 0000000000000000 00001717 2**0 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
0000000000000000 l d MACHMAINX 0000000000000000 MACHMAINX
0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD
@@ -55,7 +55,7 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [MACHMAINZ]:
OFFSET TYPE VALUE
000000000000000f R_X86_64_32 MACHMAINZ+0x0000000000000135
000000000000000f R_X86_64_32 MACHMAINZ+0x0000000000000134
0000000000000014 R_X86_64_32 MACHMAINX+0x000000000000000d
0000000000000048 R_X86_64_32 MACHMAINZ+0x0000000000000135
0000000000000048 R_X86_64_32 MACHMAINZ+0x0000000000000134
000000000000004e R_X86_64_32 MACHMAINX+0x000000000000000d
@@ -13,7 +13,7 @@ Idx Name Size VMA LMA File off Algn
8 LZMA_DEC30 00000014 0000000000000000 0000000000000000 000016ea 2**0 CONTENTS, READONLY
9 NRV_TAIL 00000000 0000000000000000 0000000000000000 000016fe 2**0 CONTENTS, READONLY
10 MACHMAINY 00000011 0000000000000000 0000000000000000 000016fe 2**0 CONTENTS, READONLY
11 MACHMAINZ 00000042 0000000000000000 0000000000000000 0000170f 2**0 CONTENTS, READONLY
11 MACHMAINZ 00000041 0000000000000000 0000000000000000 0000170f 2**0 CONTENTS, READONLY
SYMBOL TABLE:
0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD
0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30
@@ -32,7 +32,7 @@ SYMBOL TABLE:
RELOCATION RECORDS FOR [MACHMAINX]:
OFFSET TYPE VALUE
0000000000000001 R_X86_64_PC32 MACHMAINZ+0x0000000000000038
0000000000000001 R_X86_64_PC32 MACHMAINZ+0x0000000000000037
RELOCATION RECORDS FOR [NRV2E]:
OFFSET TYPE VALUE
+260
View File
@@ -0,0 +1,260 @@
file format elf64-x86-64
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 START 00000000 0000000000000000 0000000000000000 00000040 2**0 CONTENTS, READONLY
1 PEISDLL0 0000000f 0000000000000000 0000000000000000 00000040 2**0 CONTENTS, READONLY
2 PEISDLL1 00000009 0000000000000000 0000000000000000 0000004f 2**0 CONTENTS, RELOC, READONLY
3 PEMAIN01 00000012 0000000000000000 0000000000000000 00000058 2**0 CONTENTS, RELOC, READONLY
4 PEICONS1 00000007 0000000000000000 0000000000000000 0000006a 2**0 CONTENTS, RELOC, READONLY
5 PEICONS2 00000009 0000000000000000 0000000000000000 00000071 2**0 CONTENTS, RELOC, READONLY
6 PETLSHAK 00000010 0000000000000000 0000000000000000 0000007a 2**0 CONTENTS, RELOC, READONLY
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 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 LZMA_HEAD 00000014 0000000000000000 0000000000000000 000002b5 2**0 CONTENTS, RELOC, READONLY
14 LZMA_ELF00 0000005a 0000000000000000 0000000000000000 000002c9 2**0 CONTENTS, READONLY
15 LZMA_DEC10 000009f7 0000000000000000 0000000000000000 00000323 2**0 CONTENTS, READONLY
16 LZMA_DEC20 000009f7 0000000000000000 0000000000000000 00000d1a 2**0 CONTENTS, READONLY
17 LZMA_DEC30 00000014 0000000000000000 0000000000000000 00001711 2**0 CONTENTS, READONLY
18 LZMA_TAIL 00000002 0000000000000000 0000000000000000 00001725 2**0 CONTENTS, READONLY
19 PEMAIN10 00000001 0000000000000000 0000000000000000 00001727 2**0 CONTENTS, READONLY
20 PETLSHAK2 00000004 0000000000000000 0000000000000000 00001728 2**0 CONTENTS, READONLY
21 PECTTPOS 00000007 0000000000000000 0000000000000000 0000172c 2**0 CONTENTS, RELOC, READONLY
22 PECTTNUL 00000003 0000000000000000 0000000000000000 00001733 2**0 CONTENTS, READONLY
23 PEFILTER49 0000004e 0000000000000000 0000000000000000 00001736 2**0 CONTENTS, RELOC, READONLY
24 PEIMPORT 00000034 0000000000000000 0000000000000000 00001784 2**0 CONTENTS, RELOC, READONLY
25 PEIBYORD 00000002 0000000000000000 0000000000000000 000017b8 2**0 CONTENTS, RELOC, READONLY
26 PEK32ORD 00000012 0000000000000000 0000000000000000 000017ba 2**0 CONTENTS, RELOC, READONLY
27 PEIMORD1 0000000a 0000000000000000 0000000000000000 000017cc 2**0 CONTENTS, RELOC, READONLY
28 PEIMPOR2 00000021 0000000000000000 0000000000000000 000017d6 2**0 CONTENTS, RELOC, READONLY
29 PEIERDLL 0000000b 0000000000000000 0000000000000000 000017f7 2**0 CONTENTS, READONLY
30 PEIEREXE 00000006 0000000000000000 0000000000000000 00001802 2**0 CONTENTS, RELOC, READONLY
31 PEIMDONE 00000004 0000000000000000 0000000000000000 00001808 2**0 CONTENTS, READONLY
32 PERELOC1 00000007 0000000000000000 0000000000000000 0000180c 2**0 CONTENTS, RELOC, READONLY
33 PERELOC2 00000004 0000000000000000 0000000000000000 00001813 2**0 CONTENTS, READONLY
34 PERELOC3 00000030 0000000000000000 0000000000000000 00001817 2**0 CONTENTS, RELOC, READONLY
35 REL64BIG 0000000a 0000000000000000 0000000000000000 00001847 2**0 CONTENTS, RELOC, READONLY
36 RELOC64J 00000002 0000000000000000 0000000000000000 00001851 2**0 CONTENTS, RELOC, READONLY
37 PERLOHI0 0000000a 0000000000000000 0000000000000000 00001853 2**0 CONTENTS, RELOC, READONLY
38 PERELLO0 0000000b 0000000000000000 0000000000000000 0000185d 2**0 CONTENTS, READONLY
39 PERELHI0 0000000e 0000000000000000 0000000000000000 00001868 2**0 CONTENTS, READONLY
40 PEDEPHAK 0000004b 0000000000000000 0000000000000000 00001876 2**0 CONTENTS, RELOC, READONLY
41 PETLSC 0000001b 0000000000000000 0000000000000000 000018c1 2**0 CONTENTS, RELOC, READONLY
42 PEMAIN20 00000004 0000000000000000 0000000000000000 000018dc 2**0 CONTENTS, READONLY
43 CLEARSTACK 00000010 0000000000000000 0000000000000000 000018e0 2**0 CONTENTS, READONLY
44 PEMAIN21 00000000 0000000000000000 0000000000000000 000018f0 2**0 CONTENTS, READONLY
45 PEISDLL9 0000000f 0000000000000000 0000000000000000 000018f0 2**0 CONTENTS, READONLY
46 PERETURN 00000004 0000000000000000 0000000000000000 000018ff 2**0 CONTENTS, READONLY
47 PEDOJUMP 00000005 0000000000000000 0000000000000000 00001903 2**0 CONTENTS, RELOC, READONLY
48 PETLSC2 00000026 0000000000000000 0000000000000000 00001908 2**0 CONTENTS, RELOC, READONLY
49 UPX1HEAD 00000020 0000000000000000 0000000000000000 0000192e 2**0 CONTENTS, READONLY
SYMBOL TABLE:
0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD
0000000000000000 l d PEMAIN10 0000000000000000 PEMAIN10
0000000000000000 l PEIMDONE 0000000000000000 imports_done
000000000000002b l PEIMPORT 0000000000000000 next_func
000000000000000a l PEIMORD1 0000000000000000 byname
0000000000000018 l PEIMPOR2 0000000000000000 next_imp
000000000000000a l PEIMPOR2 0000000000000000 first_imp
0000000000000002 l RELOC64J 0000000000000000 reloc_endx
0000000000000013 l PERELOC3 0000000000000000 reloc_add
0000000000000000 l d PETLSC2 0000000000000000 PETLSC2
0000000000000000 l d PEMAIN21 0000000000000000 PEMAIN21
0000000000000000 l d START 0000000000000000 START
0000000000000000 l d PEISDLL0 0000000000000000 PEISDLL0
0000000000000000 l d PEISDLL1 0000000000000000 PEISDLL1
0000000000000000 l d PEMAIN01 0000000000000000 PEMAIN01
0000000000000000 l d PEICONS1 0000000000000000 PEICONS1
0000000000000000 l d PEICONS2 0000000000000000 PEICONS2
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 LZMA_HEAD 0000000000000000 LZMA_HEAD
0000000000000000 l d LZMA_ELF00 0000000000000000 LZMA_ELF00
0000000000000000 l d LZMA_DEC10 0000000000000000 LZMA_DEC10
0000000000000000 l d LZMA_DEC20 0000000000000000 LZMA_DEC20
0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30
0000000000000000 l d LZMA_TAIL 0000000000000000 LZMA_TAIL
0000000000000000 l d PETLSHAK2 0000000000000000 PETLSHAK2
0000000000000000 l d PECTTPOS 0000000000000000 PECTTPOS
0000000000000000 l d PECTTNUL 0000000000000000 PECTTNUL
0000000000000000 l d PEFILTER49 0000000000000000 PEFILTER49
0000000000000000 l d PEIMPORT 0000000000000000 PEIMPORT
0000000000000000 l d PEIBYORD 0000000000000000 PEIBYORD
0000000000000000 l d PEK32ORD 0000000000000000 PEK32ORD
0000000000000000 l d PEIMORD1 0000000000000000 PEIMORD1
0000000000000000 l d PEIMPOR2 0000000000000000 PEIMPOR2
0000000000000000 l d PEIERDLL 0000000000000000 PEIERDLL
0000000000000000 l d PEIEREXE 0000000000000000 PEIEREXE
0000000000000000 l d PEIMDONE 0000000000000000 PEIMDONE
0000000000000000 l d PERELOC1 0000000000000000 PERELOC1
0000000000000000 l d PERELOC2 0000000000000000 PERELOC2
0000000000000000 l d PERELOC3 0000000000000000 PERELOC3
0000000000000000 l d REL64BIG 0000000000000000 REL64BIG
0000000000000000 l d RELOC64J 0000000000000000 RELOC64J
0000000000000000 l d PERLOHI0 0000000000000000 PERLOHI0
0000000000000000 l d PERELLO0 0000000000000000 PERELLO0
0000000000000000 l d PERELHI0 0000000000000000 PERELHI0
0000000000000000 l d PEDEPHAK 0000000000000000 PEDEPHAK
0000000000000000 l d PETLSC 0000000000000000 PETLSC
0000000000000000 l d PEMAIN20 0000000000000000 PEMAIN20
0000000000000000 l d CLEARSTACK 0000000000000000 CLEARSTACK
0000000000000000 l d PEISDLL9 0000000000000000 PEISDLL9
0000000000000000 l d PERETURN 0000000000000000 PERETURN
0000000000000000 l d PEDOJUMP 0000000000000000 PEDOJUMP
0000000000000000 l d UPX1HEAD 0000000000000000 UPX1HEAD
0000000000000000 *UND* 0000000000000000 start_of_compressed
0000000000000000 *UND* 0000000000000000 start_of_uncompressed
0000000000000000 *UND* 0000000000000000 icon_offset
0000000000000000 *UND* 0000000000000000 icon_delta
0000000000000000 *UND* 0000000000000000 tls_address
0000000000000000 *UND* 0000000000000000 tls_value
0000000000000000 *UND* 0000000000000000 lzma_u_len
0000000000000000 *UND* 0000000000000000 lzma_c_len
0000000000000000 *UND* 0000000000000000 filter_buffer_start
0000000000000000 *UND* 0000000000000000 filter_length
0000000000000000 *UND* 0000000000000000 filter_cto
0000000000000000 *UND* 0000000000000000 compressed_imports
0000000000000000 *UND* 0000000000000000 start_of_imports
0000000000000000 *UND* 0000000000000000 LoadLibraryA
0000000000000000 *UND* 0000000000000000 kernel32_ordinals
0000000000000000 *UND* 0000000000000000 GetProcAddress
0000000000000000 *UND* 0000000000000000 ExitProcess
0000000000000000 *UND* 0000000000000000 start_of_relocs
0000000000000000 *UND* 0000000000000000 reloc_delt
0000000000000000 *UND* 0000000000000000 VirtualProtect
0000000000000000 *UND* 0000000000000000 vp_base
0000000000000000 *UND* 0000000000000000 vp_size
0000000000000000 *UND* 0000000000000000 swri
0000000000000000 *UND* 0000000000000000 tls_module_base
0000000000000000 *UND* 0000000000000000 original_entry
0000000000000000 *UND* 0000000000000000 tls_callbacks_ptr
RELOCATION RECORDS FOR [PEISDLL1]:
OFFSET TYPE VALUE
0000000000000005 R_X86_64_PC32 PEMAIN21-0x0000000000000004
RELOCATION RECORDS FOR [PEMAIN01]:
OFFSET TYPE VALUE
0000000000000007 R_X86_64_PC32 start_of_compressed-0x0000000000000004
000000000000000e R_X86_64_32S start_of_uncompressed
RELOCATION RECORDS FOR [PEICONS1]:
OFFSET TYPE VALUE
0000000000000003 R_X86_64_32S icon_offset
RELOCATION RECORDS FOR [PEICONS2]:
OFFSET TYPE VALUE
0000000000000003 R_X86_64_32S icon_offset
0000000000000007 R_X86_64_16 icon_delta+0x0000000000008000
RELOCATION RECORDS FOR [PETLSHAK]:
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-0x0000000000000004
RELOCATION RECORDS FOR [NRV2D]:
OFFSET TYPE VALUE
000000000000008c R_X86_64_PC32 NRV_HEAD+0x000000000000001b
0000000000000052 R_X86_64_PC32 PEMAIN10-0x0000000000000004
RELOCATION RECORDS FOR [NRV2E]:
OFFSET TYPE VALUE
00000000000000a5 R_X86_64_PC32 NRV_HEAD+0x000000000000001b
0000000000000052 R_X86_64_PC32 PEMAIN10-0x0000000000000004
RELOCATION RECORDS FOR [LZMA_HEAD]:
OFFSET TYPE VALUE
0000000000000001 R_X86_64_32 lzma_u_len+0x0000000080000000
0000000000000010 R_X86_64_32 lzma_c_len+0x0000000080000000
RELOCATION RECORDS FOR [PECTTPOS]:
OFFSET TYPE VALUE
0000000000000003 R_X86_64_32S filter_buffer_start
RELOCATION RECORDS FOR [PEFILTER49]:
OFFSET TYPE VALUE
0000000000000001 R_X86_64_32 filter_length
0000000000000006 R_X86_64_8 filter_cto
RELOCATION RECORDS FOR [PEIMPORT]:
OFFSET TYPE VALUE
0000000000000007 R_X86_64_32S compressed_imports
0000000000000010 R_X86_64_PC8 imports_done
0000000000000018 R_X86_64_32S start_of_imports
0000000000000025 R_X86_64_32S LoadLibraryA
RELOCATION RECORDS FOR [PEIBYORD]:
OFFSET TYPE VALUE
0000000000000001 R_X86_64_PC8 byname
RELOCATION RECORDS FOR [PEK32ORD]:
OFFSET TYPE VALUE
000000000000000c R_X86_64_32S kernel32_ordinals
0000000000000011 R_X86_64_PC8 next_imp
RELOCATION RECORDS FOR [PEIMORD1]:
OFFSET TYPE VALUE
0000000000000009 R_X86_64_PC8 first_imp
RELOCATION RECORDS FOR [PEIMPOR2]:
OFFSET TYPE VALUE
000000000000000f R_X86_64_32S GetProcAddress
0000000000000020 R_X86_64_PC8 next_func
RELOCATION RECORDS FOR [PEIEREXE]:
OFFSET TYPE VALUE
0000000000000002 R_X86_64_32S ExitProcess
RELOCATION RECORDS FOR [PERELOC1]:
OFFSET TYPE VALUE
0000000000000003 R_X86_64_32S start_of_relocs
RELOCATION RECORDS FOR [PERELOC3]:
OFFSET TYPE VALUE
000000000000000e R_X86_64_PC8 reloc_endx
RELOCATION RECORDS FOR [REL64BIG]:
OFFSET TYPE VALUE
0000000000000003 R_X86_64_PC8 reloc_add
RELOCATION RECORDS FOR [RELOC64J]:
OFFSET TYPE VALUE
0000000000000001 R_X86_64_PC8 reloc_add
RELOCATION RECORDS FOR [PERLOHI0]:
OFFSET TYPE VALUE
0000000000000006 R_X86_64_32S reloc_delt
RELOCATION RECORDS FOR [PEDEPHAK]:
OFFSET TYPE VALUE
0000000000000003 R_X86_64_32S VirtualProtect
000000000000000a R_X86_64_32S vp_base
000000000000000f R_X86_64_32 vp_size+0x0000000080000000
000000000000002c R_X86_64_32S swri
RELOCATION RECORDS FOR [PETLSC]:
OFFSET TYPE VALUE
0000000000000002 R_X86_64_PC32 PETLSC2-0x0000000000000005
000000000000000a R_X86_64_32S tls_module_base
0000000000000016 R_X86_64_PC32 PETLSC2-0x0000000000000004
RELOCATION RECORDS FOR [PEDOJUMP]:
OFFSET TYPE VALUE
0000000000000001 R_X86_64_PC32 original_entry-0x0000000000000004
RELOCATION RECORDS FOR [PETLSC2]:
OFFSET TYPE VALUE
0000000000000005 R_X86_64_PC32 tls_callbacks_ptr-0x0000000000000004
@@ -47,7 +47,7 @@ SYMBOL TABLE:
RELOCATION RECORDS FOR [LINUX000]:
OFFSET TYPE VALUE
00000014 R_ARM_ABS32 METHOD
0000000c R_ARM_ABS32 METHOD
00000030 R_ARM_PC24 LINUX030
00000034 R_ARM_PC24 LINUX000
00000038 R_ARM_ABS32 COMPRESSED_LENGTH
@@ -47,7 +47,7 @@ SYMBOL TABLE:
RELOCATION RECORDS FOR [LINUX000]:
OFFSET TYPE VALUE
00000014 R_ARM_ABS32 METHOD
0000000c R_ARM_ABS32 METHOD
00000030 R_ARM_PC24 LINUX030
00000034 R_ARM_PC24 LINUX000
00000038 R_ARM_ABS32 COMPRESSED_LENGTH
@@ -47,7 +47,7 @@ SYMBOL TABLE:
RELOCATION RECORDS FOR [LINUX000]:
OFFSET TYPE VALUE
00000014 R_ARM_ABS32 METHOD
0000000c R_ARM_ABS32 METHOD
00000030 R_ARM_PC24 LINUX030
00000034 R_ARM_PC24 LINUX000
00000038 R_ARM_ABS32 COMPRESSED_LENGTH
+1 -2
View File
@@ -11,8 +11,7 @@ TARGET(elf32-i386)
.text 0x0000000000c01080 0x68c
*(.text)
.text 0x0000000000c01080 0xc2 tmp/i386-bsd.elf-fold.o
*fill* 0x0000000000c01142 0x2 00
.text 0x0000000000c01080 0xc4 tmp/i386-bsd.elf-fold.o
.text 0x0000000000c01144 0x558 tmp/i386-bsd.elf-main.o
0x0000000000c01564 upx_main
.text 0x0000000000c0169c 0x6d tmp/i386-bsd.syscall.o
@@ -2,18 +2,18 @@ file format elf32-littlearm
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINX 000000a0 00000000 00000000 00000034 2**2 CONTENTS, RELOC, READONLY
1 NRV_HEAD 00000000 00000000 00000000 000000d4 2**0 CONTENTS, READONLY
2 NRV_TAIL 00000000 00000000 00000000 000000d4 2**0 CONTENTS, READONLY
3 NRV2E 0000013c 00000000 00000000 000000d4 2**0 CONTENTS, RELOC, READONLY
4 NRV2D 00000128 00000000 00000000 00000210 2**0 CONTENTS, RELOC, READONLY
5 NRV2B 000000ec 00000000 00000000 00000338 2**0 CONTENTS, RELOC, READONLY
6 LZMA_ELF00 000000b8 00000000 00000000 00000424 2**0 CONTENTS, RELOC, READONLY
7 LZMA_DEC20 00000938 00000000 00000000 000004dc 2**0 CONTENTS, RELOC, READONLY
8 LZMA_DEC10 00000478 00000000 00000000 00000e14 2**0 CONTENTS, RELOC, READONLY
9 LZMA_DEC30 00000000 00000000 00000000 0000128c 2**0 CONTENTS, READONLY
10 ELFMAINY 0000003e 00000000 00000000 0000128c 2**0 CONTENTS, READONLY
11 ELFMAINZ 0000016c 00000000 00000000 000012cc 2**2 CONTENTS, RELOC, READONLY
0 ELFMAINX 0000009c 00000000 00000000 00000034 2**2 CONTENTS, RELOC, READONLY
1 NRV_HEAD 00000000 00000000 00000000 000000d0 2**0 CONTENTS, READONLY
2 NRV_TAIL 00000000 00000000 00000000 000000d0 2**0 CONTENTS, READONLY
3 NRV2E 0000013c 00000000 00000000 000000d0 2**0 CONTENTS, RELOC, READONLY
4 NRV2D 00000128 00000000 00000000 0000020c 2**0 CONTENTS, RELOC, READONLY
5 NRV2B 000000ec 00000000 00000000 00000334 2**0 CONTENTS, RELOC, READONLY
6 LZMA_ELF00 000000b8 00000000 00000000 00000420 2**0 CONTENTS, RELOC, READONLY
7 LZMA_DEC20 00000938 00000000 00000000 000004d8 2**0 CONTENTS, RELOC, READONLY
8 LZMA_DEC10 00000478 00000000 00000000 00000e10 2**0 CONTENTS, RELOC, READONLY
9 LZMA_DEC30 00000000 00000000 00000000 00001288 2**0 CONTENTS, READONLY
10 ELFMAINY 0000003e 00000000 00000000 00001288 2**0 CONTENTS, READONLY
11 ELFMAINZ 00000178 00000000 00000000 000012c8 2**2 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
00000000 l ELFMAINX 00000000 .real_start_ofELFMAINX
00000000 l d NRV2E 00000000 NRV2E
@@ -38,11 +38,11 @@ SYMBOL TABLE:
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
00000030 R_ARM_THM_CALL .real_start_ofELFMAINZ
00000048 R_ARM_THM_CALL .real_start_ofELFMAINX
00000090 R_ARM_THM_CALL .real_start_ofELFMAINZ
00000096 R_ARM_THM_CALL .real_start_ofELFMAINZ
0000009c R_ARM_THM_CALL .real_start_ofELFMAINZ
0000002c R_ARM_THM_CALL .real_start_ofELFMAINZ
00000044 R_ARM_THM_CALL .real_start_ofELFMAINX
0000008c R_ARM_THM_CALL .real_start_ofELFMAINZ
00000092 R_ARM_THM_CALL .real_start_ofELFMAINZ
00000098 R_ARM_THM_CALL .real_start_ofELFMAINZ
RELOCATION RECORDS FOR [NRV2E]:
OFFSET TYPE VALUE
@@ -255,12 +255,12 @@ OFFSET TYPE VALUE
00000028 R_ARM_THM_CALL .real_start_ofELFMAINZ
00000030 R_ARM_THM_CALL .real_start_ofELFMAINZ
00000050 R_ARM_THM_CALL .real_start_ofELFMAINZ
00000068 R_ARM_THM_CALL .real_start_ofELFMAINZ
00000082 R_ARM_THM_CALL .real_start_ofELFMAINZ
000000b4 R_ARM_PC24 ELFMAINZ
000000d2 R_ARM_THM_CALL .real_start_ofELFMAINZ
000000f8 R_ARM_THM_CALL .real_start_ofELFMAINZ
00000110 R_ARM_THM_CALL .real_start_ofELFMAINZ
0000011a R_ARM_THM_CALL .real_start_ofELFMAINZ
00000124 R_ARM_THM_CALL .real_start_ofELFMAINZ
0000012c R_ARM_THM_CALL .real_start_ofELFMAINZ
00000072 R_ARM_THM_CALL .real_start_ofELFMAINZ
00000090 R_ARM_THM_CALL .real_start_ofELFMAINZ
000000c0 R_ARM_PC24 ELFMAINZ
000000de R_ARM_THM_CALL .real_start_ofELFMAINZ
00000104 R_ARM_THM_CALL .real_start_ofELFMAINZ
0000011c R_ARM_THM_CALL .real_start_ofELFMAINZ
00000126 R_ARM_THM_CALL .real_start_ofELFMAINZ
00000130 R_ARM_THM_CALL .real_start_ofELFMAINZ
00000138 R_ARM_THM_CALL .real_start_ofELFMAINZ
+1 -1
View File
@@ -52,7 +52,7 @@ void *VirtualAlloc(void *address, unsigned size, unsigned type, unsigned protect
# define PAGE_EXECUTE_READWRITE 0x0040
#endif
typedef size_t acc_uintptr_t;
typedef size_t upx_uintptr_t;
typedef unsigned short LE16;
typedef unsigned int LE32;
#define get_le32(p) (* (const unsigned *) (p))
+11 -19
View File
@@ -88,8 +88,8 @@ int __acc_cdecl_qsort be32_compare(const void *e1, const void *e2)
int __acc_cdecl_qsort be64_compare(const void *e1, const void *e2)
{
const acc_uint64l_t d1 = get_be64(e1);
const acc_uint64l_t d2 = get_be64(e2);
const upx_uint64_t d1 = get_be64(e1);
const upx_uint64_t d2 = get_be64(e2);
return (d1 < d2) ? -1 : ((d1 > d2) ? 1 : 0);
}
@@ -116,8 +116,8 @@ int __acc_cdecl_qsort le32_compare(const void *e1, const void *e2)
int __acc_cdecl_qsort le64_compare(const void *e1, const void *e2)
{
const acc_uint64l_t d1 = get_le64(e1);
const acc_uint64l_t d2 = get_le64(e2);
const upx_uint64_t d1 = get_le64(e1);
const upx_uint64_t d2 = get_le64(e2);
return (d1 < d2) ? -1 : ((d1 > d2) ? 1 : 0);
}
@@ -145,8 +145,8 @@ int __acc_cdecl_qsort be32_compare_signed(const void *e1, const void *e2)
int __acc_cdecl_qsort be64_compare_signed(const void *e1, const void *e2)
{
const acc_int64l_t d1 = get_be64_signed(e1);
const acc_int64l_t d2 = get_be64_signed(e2);
const upx_int64_t d1 = get_be64_signed(e1);
const upx_int64_t d2 = get_be64_signed(e2);
return (d1 < d2) ? -1 : ((d1 > d2) ? 1 : 0);
}
@@ -173,8 +173,8 @@ int __acc_cdecl_qsort le32_compare_signed(const void *e1, const void *e2)
int __acc_cdecl_qsort le64_compare_signed(const void *e1, const void *e2)
{
const acc_int64l_t d1 = get_le64_signed(e1);
const acc_int64l_t d2 = get_le64_signed(e2);
const upx_int64_t d1 = get_le64_signed(e1);
const upx_int64_t d2 = get_le64_signed(e2);
return (d1 < d2) ? -1 : ((d1 > d2) ? 1 : 0);
}
@@ -217,7 +217,7 @@ int find_be32(const void *b, int blen, unsigned what)
}
int find_be64(const void *b, int blen, acc_uint64l_t what)
int find_be64(const void *b, int blen, upx_uint64_t what)
{
unsigned char w[8];
set_be64(w, what);
@@ -241,7 +241,7 @@ int find_le32(const void *b, int blen, unsigned what)
}
int find_le64(const void *b, int blen, acc_uint64l_t what)
int find_le64(const void *b, int blen, upx_uint64_t what)
{
unsigned char w[8];
set_le64(w, what);
@@ -562,15 +562,7 @@ unsigned get_ratio(unsigned u_len, unsigned c_len)
const unsigned n = 1000000;
if (u_len <= 0)
return c_len <= 0 ? 0 : n;
#if defined(acc_uint64l_t)
return (unsigned) ((c_len * (acc_uint64l_t)n) / u_len);
#else
# if 0
return (unsigned) acc_umuldiv32(c_len, n, u_len);
# else
return (unsigned) ((c_len * (double)n) / u_len);
# endif
#endif
return (unsigned) ((c_len * (upx_uint64_t)n) / u_len);
}
+2 -2
View File
@@ -53,10 +53,10 @@ void center_string(char *buf, size_t size, const char *s);
int find(const void *b, int blen, const void *what, int wlen);
int find_be16(const void *b, int blen, unsigned what);
int find_be32(const void *b, int blen, unsigned what);
int find_be64(const void *b, int blen, acc_uint64l_t what);
int find_be64(const void *b, int blen, upx_uint64_t what);
int find_le16(const void *b, int blen, unsigned what);
int find_le32(const void *b, int blen, unsigned what);
int find_le64(const void *b, int blen, acc_uint64l_t what);
int find_le64(const void *b, int blen, upx_uint64_t what);
int mem_replace(void *b, int blen, const void *what, int wlen, const void *r);
+5 -5
View File
@@ -1,6 +1,6 @@
#define UPX_VERSION_HEX 0x030900 /* 03.09.00 */
#define UPX_VERSION_STRING "3.09"
#define UPX_VERSION_STRING4 "3.09"
#define UPX_VERSION_DATE "Feb 18th 2013"
#define UPX_VERSION_DATE_ISO "2013-02-18"
#define UPX_VERSION_HEX 0x035b00 /* 03.91.00 */
#define UPX_VERSION_STRING "3.91"
#define UPX_VERSION_STRING4 "3.91"
#define UPX_VERSION_DATE "Sep 30th 2013"
#define UPX_VERSION_DATE_ISO "2013-09-30"
#define UPX_VERSION_YEAR "2013"