retdec
Public Member Functions | List of all members
retdec::unpackertool::upx::DecompressorLzma Class Reference

#include <decompressor_lzma.h>

Inheritance diagram for retdec::unpackertool::upx::DecompressorLzma:
Inheritance graph
[legend]
Collaboration diagram for retdec::unpackertool::upx::DecompressorLzma:
Collaboration graph
[legend]

Public Member Functions

virtual void setupPackingMethod (ElfUpxStub< 32 > *stub, std::uint8_t packingMethod) override
 
virtual void decompress (ElfUpxStub< 32 > *stub, retdec::utils::DynamicBuffer &packedData, retdec::utils::DynamicBuffer &unpackedData) override
 
virtual void setupPackingMethod (ElfUpxStub< 64 > *stub, std::uint8_t packingMethod) override
 
virtual void decompress (ElfUpxStub< 64 > *stub, retdec::utils::DynamicBuffer &packedData, retdec::utils::DynamicBuffer &unpackedData) override
 
virtual void setupPackingMethod (MachOUpxStub< 32 > *stub, std::uint8_t packingMethod) override
 
virtual void decompress (MachOUpxStub< 32 > *stub, retdec::utils::DynamicBuffer &packedData, retdec::utils::DynamicBuffer &unpackedData) override
 
virtual void setupPackingMethod (MachOUpxStub< 64 > *stub, std::uint8_t packingMethod) override
 
virtual void decompress (MachOUpxStub< 64 > *stub, retdec::utils::DynamicBuffer &packedData, retdec::utils::DynamicBuffer &unpackedData) override
 
virtual void setupPackingMethod (PeUpxStub< 32 > *stub, std::uint8_t packingMethod) override
 
virtual void readUnpackingStub (PeUpxStub< 32 > *stub, retdec::utils::DynamicBuffer &unpackingStub) override
 
virtual void readPackedData (PeUpxStub< 32 > *stub, retdec::utils::DynamicBuffer &packedData, bool trustMetadata) override
 
virtual void decompress (PeUpxStub< 32 > *stub, retdec::utils::DynamicBuffer &packedData, retdec::utils::DynamicBuffer &unpackedData, bool trustMetadata) override
 
virtual void setupPackingMethod (PeUpxStub< 64 > *stub, std::uint8_t packingMethod) override
 
virtual void readUnpackingStub (PeUpxStub< 64 > *stub, retdec::utils::DynamicBuffer &unpackingStub) override
 
virtual void readPackedData (PeUpxStub< 64 > *stub, retdec::utils::DynamicBuffer &packedData, bool trustMetadata) override
 
virtual void decompress (PeUpxStub< 64 > *stub, retdec::utils::DynamicBuffer &packedData, retdec::utils::DynamicBuffer &unpackedData, bool trustMetadata) override
 
- Public Member Functions inherited from retdec::unpackertool::upx::Decompressor
virtual ~Decompressor ()=default
 

Additional Inherited Members

- Protected Member Functions inherited from retdec::unpackertool::upx::Decompressor
void performDecompression (const std::weak_ptr< retdec::unpacker::CompressedData > &compressedDataWptr, retdec::utils::DynamicBuffer &unpackedData)
 

Detailed Description

Visitor-like decompressor for LZMA decompression.

Member Function Documentation

◆ decompress() [1/6]

void retdec::unpackertool::upx::DecompressorLzma::decompress ( ElfUpxStub< 32 > *  stub,
retdec::utils::DynamicBuffer packedData,
retdec::utils::DynamicBuffer unpackedData 
)
overridevirtual

Performs decompression of packed data and place it into another buffer.

Parameters
stubThe ELF32 UPX unpacking stub object.
packedDataThe compressed packed data.
unpackedDataThe buffer where to decompress data.

Implements retdec::unpackertool::upx::Decompressor.

◆ decompress() [2/6]

void retdec::unpackertool::upx::DecompressorLzma::decompress ( ElfUpxStub< 64 > *  stub,
retdec::utils::DynamicBuffer packedData,
retdec::utils::DynamicBuffer unpackedData 
)
overridevirtual

Performs decompression of packed data and place it into another buffer.

Parameters
stubThe ELF64 UPX unpacking stub object.
packedDataThe compressed packed data.
unpackedDataThe buffer where to decompress data.

Implements retdec::unpackertool::upx::Decompressor.

◆ decompress() [3/6]

void retdec::unpackertool::upx::DecompressorLzma::decompress ( MachOUpxStub< 32 > *  stub,
retdec::utils::DynamicBuffer packedData,
retdec::utils::DynamicBuffer unpackedData 
)
overridevirtual

Performs decompression of packed data and place it into another buffer.

Parameters
stubThe Mach-O 32-bit UPX unpacking stub object.
packedDataThe compressed packed data.
unpackedDataThe buffer where to decompress data.

Implements retdec::unpackertool::upx::Decompressor.

◆ decompress() [4/6]

void retdec::unpackertool::upx::DecompressorLzma::decompress ( MachOUpxStub< 64 > *  stub,
retdec::utils::DynamicBuffer packedData,
retdec::utils::DynamicBuffer unpackedData 
)
overridevirtual

Performs decompression of packed data and place it into another buffer.

Parameters
stubThe Mach-O 64-bit UPX unpacking stub object.
packedDataThe compressed packed data.
unpackedDataThe buffer where to decompress data.

Implements retdec::unpackertool::upx::Decompressor.

◆ decompress() [5/6]

void retdec::unpackertool::upx::DecompressorLzma::decompress ( PeUpxStub< 32 > *  stub,
retdec::utils::DynamicBuffer packedData,
retdec::utils::DynamicBuffer unpackedData,
bool  trustMetadata 
)
overridevirtual

Performs decompression of packed data and place it into another buffer.

Parameters
stubThe PE32 UPX unpacking stub object.
packedDataThe compressed packed data.
unpackedDataThe buffer where to decompress data.
trustMetadataTrue if UPX metadata are trusted, otherwise false.

Implements retdec::unpackertool::upx::Decompressor.

◆ decompress() [6/6]

void retdec::unpackertool::upx::DecompressorLzma::decompress ( PeUpxStub< 64 > *  stub,
retdec::utils::DynamicBuffer packedData,
retdec::utils::DynamicBuffer unpackedData,
bool  trustMetadata 
)
overridevirtual

Performs decompression of packed data and place it into another buffer.

Parameters
stubThe PE64 UPX unpacking stub object.
packedDataThe compressed packed data.
unpackedDataThe buffer where to decompress data.
trustMetadataTrue if UPX metadata are trusted, otherwise false.

Implements retdec::unpackertool::upx::Decompressor.

◆ readPackedData() [1/2]

void retdec::unpackertool::upx::DecompressorLzma::readPackedData ( PeUpxStub< 32 > *  stub,
retdec::utils::DynamicBuffer packedData,
bool  trustMetadata 
)
overridevirtual

Reads the packed data from the input file.

Parameters
stubThe PE32 UPX unpacking stub object.
packedDataBuffer where to read packed data.
trustMetadataTrue if UPX metadata are trusted, otherwise false.

Implements retdec::unpackertool::upx::Decompressor.

◆ readPackedData() [2/2]

void retdec::unpackertool::upx::DecompressorLzma::readPackedData ( PeUpxStub< 64 > *  stub,
retdec::utils::DynamicBuffer packedData,
bool  trustMetadata 
)
overridevirtual

Reads the packed data from the input file.

Parameters
stubThe PE64 UPX unpacking stub object.
packedDataBuffer where to read packed data.
trustMetadataTrue if UPX metadata are trusted, otherwise false.

Implements retdec::unpackertool::upx::Decompressor.

◆ readUnpackingStub() [1/2]

void retdec::unpackertool::upx::DecompressorLzma::readUnpackingStub ( PeUpxStub< 32 > *  stub,
retdec::utils::DynamicBuffer unpackingStub 
)
overridevirtual

Reads the unpacking stub into buffer.

Parameters
stubThe PE32 UPX unpacking stub object.
unpackingStubBuffer where to place unpacking stub.

Implements retdec::unpackertool::upx::Decompressor.

◆ readUnpackingStub() [2/2]

void retdec::unpackertool::upx::DecompressorLzma::readUnpackingStub ( PeUpxStub< 64 > *  stub,
retdec::utils::DynamicBuffer unpackingStub 
)
overridevirtual

Reads the unpacking stub into buffer.

Parameters
stubThe PE64 UPX unpacking stub object.
unpackingStubBuffer where to place unpacking stub.

Implements retdec::unpackertool::upx::Decompressor.

◆ setupPackingMethod() [1/6]

void retdec::unpackertool::upx::DecompressorLzma::setupPackingMethod ( ElfUpxStub< 32 > *  stub,
std::uint8_t  packingMethod 
)
overridevirtual

Checks whether the provided packing method is valid.

Parameters
stubThe ELF32 UPX unpacking stub object.
packingMethodThe packing method to setup.

Implements retdec::unpackertool::upx::Decompressor.

◆ setupPackingMethod() [2/6]

void retdec::unpackertool::upx::DecompressorLzma::setupPackingMethod ( ElfUpxStub< 64 > *  stub,
std::uint8_t  packingMethod 
)
overridevirtual

Checks whether the provided packing method is valid.

Parameters
stubThe ELF64 UPX unpacking stub object.
packingMethodThe packing method to setup.

Implements retdec::unpackertool::upx::Decompressor.

◆ setupPackingMethod() [3/6]

void retdec::unpackertool::upx::DecompressorLzma::setupPackingMethod ( MachOUpxStub< 32 > *  stub,
std::uint8_t  packingMethod 
)
overridevirtual

Checks whether the provided packing method is valid.

Parameters
stubThe Mach-O 32-bit UPX unpacking stub object.
packingMethodThe packing method to setup.

Implements retdec::unpackertool::upx::Decompressor.

◆ setupPackingMethod() [4/6]

void retdec::unpackertool::upx::DecompressorLzma::setupPackingMethod ( MachOUpxStub< 64 > *  stub,
std::uint8_t  packingMethod 
)
overridevirtual

Checks whether the provided packing method is valid.

Parameters
stubThe Mach-O 64-bit UPX unpacking stub object.
packingMethodThe packing method to setup.

Implements retdec::unpackertool::upx::Decompressor.

◆ setupPackingMethod() [5/6]

void retdec::unpackertool::upx::DecompressorLzma::setupPackingMethod ( PeUpxStub< 32 > *  stub,
std::uint8_t  packingMethod 
)
overridevirtual

Checks whether the provided packing method is valid.

Parameters
stubThe PE32 UPX unpacking stub object.
packingMethodThe packing method to setup.

Implements retdec::unpackertool::upx::Decompressor.

◆ setupPackingMethod() [6/6]

void retdec::unpackertool::upx::DecompressorLzma::setupPackingMethod ( PeUpxStub< 64 > *  stub,
std::uint8_t  packingMethod 
)
overridevirtual

Checks whether the provided packing method is valid.

Parameters
stubThe PE64 UPX unpacking stub object.
packingMethodThe packing method to setup.

Implements retdec::unpackertool::upx::Decompressor.


The documentation for this class was generated from the following files: