retdec
upx_stub_signatures.h
Go to the documentation of this file.
1 
7 #ifndef UNPACKERTOOL_PLUGINS_UPX_UPX_STUB_SIGNATURES_H
8 #define UNPACKERTOOL_PLUGINS_UPX_UPX_STUB_SIGNATURES_H
9 
11 #include "retdec/loader/loader.h"
14 
15 using namespace retdec::utils;
16 
17 namespace retdec {
18 namespace unpackertool {
19 namespace upx {
20 
25 {
30  std::uint32_t size;
31  std::uint32_t searchDistance;
32 };
33 
53 {
54 public:
55  UpxStubSignatures() = delete;
57 
58  static const UpxStubData* matchSignatures(retdec::loader::Image* file, DynamicBuffer& captureData);
59  static const UpxStubData* matchSignatures(const DynamicBuffer& data, DynamicBuffer& captureData,
61 
62 private:
63  UpxStubSignatures& operator =(const UpxStubSignatures&);
64 
65  static std::vector<UpxStubData> allStubs;
66 };
67 
68 } // namespace upx
69 } // namespace unpackertool
70 } // namespace retdec
71 
72 #endif
Definition: image.h:22
Definition: signature.h:57
Definition: upx_stub_signatures.h:53
static std::vector< UpxStubData > allStubs
All supported unpacking stubs.
Definition: upx_stub_signatures.h:65
UpxStubSignatures(const UpxStubSignatures &)=delete
The class for dynamic buffered data manipulation taking the endianness of the data in account.
Definition: dynamic_buffer.h:36
Interface to fileformat library.
Interface to loader library.
Format
Definition: fftypes.h:44
Architecture
Definition: fftypes.h:59
UpxStubVersion
Definition: upx_stub.h:33
Definition: unpacking_stub.h:16
Definition: archive_wrapper.h:19
Definition: upx_stub_signatures.h:25
retdec::fileformat::Format format
File format this unpacking stub occures in.
Definition: upx_stub_signatures.h:27
std::uint32_t size
Size of the whole unpacking stub. Not used on ELF, only on PE.
Definition: upx_stub_signatures.h:30
retdec::fileformat::Architecture architecture
Architecture this unpacking stub occures on.
Definition: upx_stub_signatures.h:26
std::uint32_t searchDistance
In case of non-fixed position of the signature, this field is used for searching around EP offset wit...
Definition: upx_stub_signatures.h:31
UpxStubVersion version
Version this unpacking stub associates with.
Definition: upx_stub_signatures.h:29
retdec::unpacker::Signature * signature
Signature of this unpacking stub.
Definition: upx_stub_signatures.h:28
Declaration of class for matching signatures in executable files or buffers.
Declaration of abstract UPX stub class that represents the unpacking procedure itself.