retdec
|
#include <decompressor_nrv.h>
Public Member Functions | |
DecompressorNrv (std::unique_ptr< retdec::unpacker::BitParser > bitParser=nullptr) | |
virtual void | setupPackingMethod (ElfUpxStub< 32 > *stub, std::uint8_t packingMethod) override |
virtual void | decompress (ElfUpxStub< 32 > *stub, DynamicBuffer &packedData, DynamicBuffer &unpackedData) override |
virtual void | setupPackingMethod (ElfUpxStub< 64 > *stub, std::uint8_t packingMethod) override |
virtual void | decompress (ElfUpxStub< 64 > *stub, DynamicBuffer &packedData, DynamicBuffer &unpackedData) override |
virtual void | setupPackingMethod (MachOUpxStub< 32 > *stub, std::uint8_t packingMethod) override |
virtual void | decompress (MachOUpxStub< 32 > *stub, DynamicBuffer &packedData, DynamicBuffer &unpackedData) override |
virtual void | setupPackingMethod (MachOUpxStub< 64 > *stub, std::uint8_t packingMethod) override |
virtual void | decompress (MachOUpxStub< 64 > *stub, DynamicBuffer &packedData, DynamicBuffer &unpackedData) override |
virtual void | setupPackingMethod (PeUpxStub< 32 > *stub, std::uint8_t packingMethod) override |
virtual void | readUnpackingStub (PeUpxStub< 32 > *stub, DynamicBuffer &unpackingStub) override |
virtual void | readPackedData (PeUpxStub< 32 > *stub, DynamicBuffer &packedData, bool trustMetadata) override |
virtual void | decompress (PeUpxStub< 32 > *stub, DynamicBuffer &packedData, DynamicBuffer &unpackedData, bool trustMetadata) override |
virtual void | setupPackingMethod (PeUpxStub< 64 > *stub, std::uint8_t packingMethod) override |
virtual void | readUnpackingStub (PeUpxStub< 64 > *stub, DynamicBuffer &unpackingStub) override |
virtual void | readPackedData (PeUpxStub< 64 > *stub, DynamicBuffer &packedData, bool trustMetadata) override |
virtual void | decompress (PeUpxStub< 64 > *stub, DynamicBuffer &packedData, DynamicBuffer &unpackedData, bool trustMetadata) override |
![]() | |
virtual | ~Decompressor ()=default |
Protected Member Functions | |
void | setupPackingMethod (std::uint8_t packingMethod) |
void | decompress (DynamicBuffer &packedData, DynamicBuffer &unpackedData) |
![]() | |
void | performDecompression (const std::weak_ptr< retdec::unpacker::CompressedData > &compressedDataWptr, retdec::utils::DynamicBuffer &unpackedData) |
Private Attributes | |
char | _nrvVersion |
std::unique_ptr< retdec::unpacker::BitParser > | _bitParser |
Visitor-like decompressor for LZMA decompression.
|
explicit |
Constructor.
|
protected |
|
overridevirtual |
Performs decompression of packed data and place it into another buffer.
stub | The ELF32 UPX unpacking stub object. |
packedData | The compressed packed data. |
unpackedData | The buffer where to decompress data. |
Implements retdec::unpackertool::upx::Decompressor.
|
overridevirtual |
Performs decompression of packed data and place it into another buffer.
stub | The ELF64 UPX unpacking stub object. |
packedData | The compressed packed data. |
unpackedData | The buffer where to decompress data. |
Implements retdec::unpackertool::upx::Decompressor.
|
overridevirtual |
Performs decompression of packed data and place it into another buffer.
stub | The Mach-O 32-bit UPX unpacking stub object. |
packedData | The compressed packed data. |
unpackedData | The buffer where to decompress data. |
Implements retdec::unpackertool::upx::Decompressor.
|
overridevirtual |
Performs decompression of packed data and place it into another buffer.
stub | The Mach-O 64-bit UPX unpacking stub object. |
packedData | The compressed packed data. |
unpackedData | The buffer where to decompress data. |
Implements retdec::unpackertool::upx::Decompressor.
|
overridevirtual |
Performs decompression of packed data and place it into another buffer.
stub | The PE32 UPX unpacking stub object. |
packedData | The compressed packed data. |
unpackedData | The buffer where to decompress data. |
trustMetadata | True if UPX metadata are trusted, otherwise false. |
Implements retdec::unpackertool::upx::Decompressor.
|
overridevirtual |
Performs decompression of packed data and place it into another buffer.
stub | The PE64 UPX unpacking stub object. |
packedData | The compressed packed data. |
unpackedData | The buffer where to decompress data. |
trustMetadata | True if UPX metadata are trusted, otherwise false. |
Implements retdec::unpackertool::upx::Decompressor.
|
overridevirtual |
Reads the packed data from the input file.
stub | The PE32 UPX unpacking stub object. |
packedData | Buffer where to read packed data. |
trustMetadata | True if UPX metadata are trusted, otherwise false. |
Implements retdec::unpackertool::upx::Decompressor.
|
overridevirtual |
Reads the packed data from the input file.
stub | The PE64 UPX unpacking stub object. |
packedData | Buffer where to read packed data. |
trustMetadata | True if UPX metadata are trusted, otherwise false. |
Implements retdec::unpackertool::upx::Decompressor.
|
overridevirtual |
Reads the unpacking stub into buffer.
stub | The PE32 UPX unpacking stub object. |
unpackingStub | Buffer where to place unpacking stub. |
Implements retdec::unpackertool::upx::Decompressor.
|
overridevirtual |
Reads the unpacking stub into buffer.
stub | The PE64 UPX unpacking stub object. |
unpackingStub | Buffer where to place unpacking stub. |
Implements retdec::unpackertool::upx::Decompressor.
|
overridevirtual |
Checks whether the provided packing method is valid.
stub | The ELF32 UPX unpacking stub object. |
packingMethod | The packing method to setup. |
Implements retdec::unpackertool::upx::Decompressor.
|
overridevirtual |
Checks whether the provided packing method is valid.
stub | The ELF64 UPX unpacking stub object. |
packingMethod | The packing method to setup. |
Implements retdec::unpackertool::upx::Decompressor.
|
overridevirtual |
Checks whether the provided packing method is valid.
stub | The Mach-O 32-bit UPX unpacking stub object. |
packingMethod | The packing method to setup. |
Implements retdec::unpackertool::upx::Decompressor.
|
overridevirtual |
Checks whether the provided packing method is valid.
stub | The Mach-O 64-bit UPX unpacking stub object. |
packingMethod | The packing method to setup. |
Implements retdec::unpackertool::upx::Decompressor.
|
overridevirtual |
Checks whether the provided packing method is valid.
stub | The PE32 UPX unpacking stub object. |
packingMethod | The packing method to setup. |
Implements retdec::unpackertool::upx::Decompressor.
|
overridevirtual |
Checks whether the provided packing method is valid.
stub | The PE64 UPX unpacking stub object. |
packingMethod | The packing method to setup. |
Implements retdec::unpackertool::upx::Decompressor.
|
protected |
|
private |
|
private |