retdec
Classes | Enumerations | Variables
retdec::unpackertool::upx Namespace Reference

UPX unpacker. More...

Classes

class  ElfUpxStub
 
class  MachOUpxStub
 
class  PeUpxStub
 
class  Decompressor
 
class  DecompressorDirectJump
 
class  DecompressorLzma
 
class  DecompressorNrv
 
class  DecompressorScrambler
 
class  DecompressorUpxshit
 
struct  ElfUpxStubTraits
 
struct  ElfUpxStubTraits< 32 >
 
struct  ElfUpxStubTraits< 64 >
 
struct  MachOUpxStubTraits
 
struct  MachOUpxStubTraits< 32 >
 
struct  MachOUpxStubTraits< 64 >
 
struct  UnfilterSignatureData
 
class  UpxExtraData
 
struct  Unfilter
 
struct  Unfilter11
 
struct  Unfilter16
 
struct  Unfilter24
 
struct  Unfilter26_46
 
struct  Unfilter49
 
struct  Unfilter50
 
struct  UnfilterD0
 
class  UpxPlugin
 
class  InvalidBlockException
 
class  UnsupportedPackingMethodException
 
class  UnsupportedFilterException
 
class  OriginalHeaderNotFoundException
 
class  OriginalHeaderCorruptedException
 
class  InvalidDataDirectoryException
 
class  ImportNamesNotFoundException
 
class  FileMemoryDumpedException
 
class  FirstBlockNotFoundException
 
class  NotPackedWithUpxException
 
class  UpxMetadata
 
class  UpxStub
 
struct  UpxStubData
 
class  UpxStubSignatures
 

Enumerations

enum  Filters {
  FILTER_NONE = 0x0 , FILTER_11 = 0x11 , FILTER_16 = 0x16 , FILTER_24 = 0x24 ,
  FILTER_26 = 0x26 , FILTER_46 = 0x46 , FILTER_49 = 0x49 , FILTER_50 = 0x50 ,
  FILTER_D0 = 0xD0 , FILTER_UNKNOWN = 0xFF
}
 
enum class  UpxStubVersion {
  LZMA , NRV2B , NRV2D , NRV2E ,
  UPXSHIT , DIRECT_JUMP , UNIVERSAL , UNKNOWN
}
 
enum  UpxPackingMethod {
  UPX_PACKING_METHOD_NRV2B_LE32 = 0x2 , UPX_PACKING_METHOD_NRV2B_8 = 0x3 , UPX_PACKING_METHOD_NRV2D_LE32 = 0x5 , UPX_PACKING_METHOD_NRV2D_8 = 0x6 ,
  UPX_PACKING_METHOD_NRV2E_LE32 = 0x8 , UPX_PACKING_METHOD_NRV2E_8 = 0x9 , UPX_PACKING_METHOD_LZMA = 0xE
}
 

Variables

Signature secondStubSignature
 

Detailed Description

UPX unpacker.

Enumeration Type Documentation

◆ Filters

Enumeration of all supported filters.

Enumerator
FILTER_NONE 
FILTER_11 
FILTER_16 
FILTER_24 
FILTER_26 
FILTER_46 
FILTER_49 
FILTER_50 
FILTER_D0 
FILTER_UNKNOWN 

◆ UpxPackingMethod

UPX packing method. Distinguishes between used bit parsers. This field is written in the packed block header for ELF file format. PE always uses 32-bit parsers.

Enumerator
UPX_PACKING_METHOD_NRV2B_LE32 
UPX_PACKING_METHOD_NRV2B_8 
UPX_PACKING_METHOD_NRV2D_LE32 
UPX_PACKING_METHOD_NRV2D_8 
UPX_PACKING_METHOD_NRV2E_LE32 
UPX_PACKING_METHOD_NRV2E_8 
UPX_PACKING_METHOD_LZMA 

◆ UpxStubVersion

Version of the UPX unpacking stub.

Enumerator
LZMA 
NRV2B 
NRV2D 
NRV2E 
UPXSHIT 
DIRECT_JUMP 
UNIVERSAL 
UNKNOWN 

Variable Documentation

◆ secondStubSignature

Signature retdec::unpackertool::upx::secondStubSignature
Initial value:
=
{
0xB8, CAP, CAP, CAP, CAP,
0xB9, CAP, CAP, CAP, CAP,
0x80, 0x34, 0x08, CAP,
0xE2, 0xFA,
0xFF, 0xE0
}
#define CAP
Definition: signature.h:28