LIEF: Library to Instrument Executable Formats Version 0.17.0
Loading...
Searching...
No Matches
LIEF::DEX::Hash Class Reference

Class which implements a visitor to compute a deterministic hash for LIEF DEX objects. More...

#include <hash.hpp>

Inheritance diagram for LIEF::DEX::Hash:
Collaboration diagram for LIEF::DEX::Hash:

Public Member Functions

void visit (const File &file) override
 Method to visit a LIEF::DEX::File.
 
void visit (const Header &header) override
 Method to visit a LIEF::DEX::Header.
 
void visit (const Class &cls) override
 Method to visit a LIEF::DEX::Class.
 
void visit (const Field &field) override
 Method to visit a LIEF::DEX::Field.
 
void visit (const Method &method) override
 Method to visit a LIEF::DEX::Method.
 
void visit (const CodeInfo &code_info) override
 Method to visit a LIEF::DEX::CodeInfo.
 
void visit (const Type &type) override
 Method to visit a LIEF::DEX::Type.
 
void visit (const Prototype &type) override
 Method to visit a LIEF::DEX:Prototype:
 
void visit (const MapItem &item) override
 Method to visit a LIEF::DEX:MapItem:
 
void visit (const MapList &list) override
 Method to visit a LIEF::DEX:MapList:
 
 ~Hash () override
 
 Hash ()
 
 Hash (value_type init_value)
 
- Public Member Functions inherited from LIEF::Hash
 Hash ()
 
 Hash (value_type init_value)
 
virtual Hashprocess (const Object &obj)
 
virtual Hashprocess (size_t integer)
 
virtual Hashprocess (const std::string &str)
 
virtual Hashprocess (const std::u16string &str)
 
virtual Hashprocess (const std::vector< uint8_t > &raw)
 
virtual Hashprocess (span< const uint8_t > raw)
 
template<class T , typename = typename std::enable_if<std::is_enum<T>::value>::type>
Hashprocess (T v)
 
template<class It >
Hashprocess (typename It::iterator v)
 
template<class T , size_t N>
Hashprocess (const std::array< T, N > &array)
 
template<class T >
Hashprocess (const std::vector< T > &vector)
 
template<class T >
Hashprocess (const std::set< T > &set)
 
template<class U , class V >
Hashprocess (const std::pair< U, V > &p)
 
template<class InputIt >
Hashprocess (InputIt begin, InputIt end)
 
value_type value () const
 
 ~Hash () override
 
virtual void visit (const Object &)
 
virtual void visit (const Binary &)
 Method to visit a LIEF::Binary.
 
virtual void visit (const Header &)
 Method to visit a LIEF::Header.
 
virtual void visit (const Section &)
 Method to visit a LIEF::Section.
 
virtual void visit (const Symbol &)
 Method to visit a LIEF::Symbol.
 
virtual void visit (const Relocation &)
 Method to visit a LIEF::Relocation.
 
virtual void visit (const Function &)
 Method to visit a LIEF::Function.
 
virtual void visit (const ELF::Binary &)
 
virtual void visit (const ELF::Header &)
 
virtual void visit (const ELF::Section &)
 
virtual void visit (const ELF::Segment &)
 
virtual void visit (const ELF::DynamicEntry &)
 
virtual void visit (const ELF::DynamicEntryArray &)
 
virtual void visit (const ELF::DynamicEntryLibrary &)
 
virtual void visit (const ELF::DynamicSharedObject &)
 
virtual void visit (const ELF::DynamicEntryRunPath &)
 
virtual void visit (const ELF::DynamicEntryRpath &)
 
virtual void visit (const ELF::DynamicEntryFlags &)
 
virtual void visit (const ELF::Symbol &)
 
virtual void visit (const ELF::Relocation &)
 
virtual void visit (const ELF::SymbolVersion &)
 
virtual void visit (const ELF::SymbolVersionRequirement &)
 
virtual void visit (const ELF::SymbolVersionDefinition &)
 
virtual void visit (const ELF::SymbolVersionAux &)
 
virtual void visit (const ELF::SymbolVersionAuxRequirement &)
 
virtual void visit (const ELF::Note &)
 
virtual void visit (const ELF::AndroidIdent &)
 
virtual void visit (const ELF::QNXStack &)
 
virtual void visit (const ELF::NoteAbi &)
 
virtual void visit (const ELF::NoteGnuProperty &)
 
virtual void visit (const ELF::CorePrPsInfo &)
 
virtual void visit (const ELF::CorePrStatus &)
 
virtual void visit (const ELF::CoreAuxv &)
 
virtual void visit (const ELF::CoreSigInfo &)
 
virtual void visit (const ELF::CoreFile &)
 
virtual void visit (const ELF::GnuHash &)
 
virtual void visit (const ELF::SysvHash &)
 
virtual void visit (const PE::Binary &)
 Method to visit a LIEF::PE::Binary.
 
virtual void visit (const PE::DosHeader &)
 Method to visit a LIEF::PE::DosHeader.
 
virtual void visit (const PE::RichHeader &)
 Method to visit a LIEF::PE:RichHeader.
 
virtual void visit (const PE::RichEntry &)
 Method to visit a LIEF::PE:RichEntry.
 
virtual void visit (const PE::Header &)
 Method to visit a LIEF::PE::Header.
 
virtual void visit (const PE::OptionalHeader &)
 Method to visit a LIEF::PE::OptionalHeader.
 
virtual void visit (const PE::DataDirectory &)
 Method to visit a LIEF::PE::DataDirectory.
 
virtual void visit (const PE::TLS &)
 Method to visit a LIEF::PE::TLS.
 
virtual void visit (const PE::Symbol &)
 Method to visit a LIEF::PE::Symbol.
 
virtual void visit (const PE::Section &)
 Method to visit a LIEF::PE::Section.
 
virtual void visit (const PE::Relocation &)
 Method to visit a LIEF::PE::Relocation.
 
virtual void visit (const PE::RelocationEntry &)
 Method to visit a LIEF::PE::RelocationEntry.
 
virtual void visit (const PE::Export &)
 Method to visit a LIEF::PE::Export.
 
virtual void visit (const PE::ExportEntry &)
 Method to visit a LIEF::PE::ExportEntry.
 
virtual void visit (const PE::Debug &)
 Method to visit a LIEF::PE::Debug.
 
virtual void visit (const PE::CodeView &)
 Method to visit a LIEF::PE::CodeView.
 
virtual void visit (const PE::CodeViewPDB &)
 Method to visit a LIEF::PE::CodeViewPDB.
 
virtual void visit (const PE::Import &)
 Method to visit a LIEF::PE::Import.
 
virtual void visit (const PE::ImportEntry &)
 Method to visit a LIEF::PE::ImportEntry.
 
virtual void visit (const PE::DelayImport &)
 Method to visit a LIEF::PE::DelayImport.
 
virtual void visit (const PE::DelayImportEntry &)
 Method to visit a LIEF::PE::DelayImportEntry.
 
virtual void visit (const PE::ResourceNode &)
 Method to visit a LIEF::PE::ResourceNode.
 
virtual void visit (const PE::ResourceData &)
 Method to visit a LIEF::PE::ResourceData.
 
virtual void visit (const PE::ResourceDirectory &)
 Method to visit a LIEF::PE::ResourceDirectory.
 
virtual void visit (const PE::ResourcesManager &)
 Method to visit a LIEF::PE::ResourceVersion.
 
virtual void visit (const PE::ResourceVersion &)
 Method to visit a LIEF::PE::ResourceVersion.
 
virtual void visit (const PE::ResourceStringFileInfo &)
 Method to visit a LIEF::PE::ResourceStringFileInfo.
 
virtual void visit (const PE::ResourceFixedFileInfo &)
 Method to visit a LIEF::PE::ResourceFixedFileInfo.
 
virtual void visit (const PE::ResourceVarFileInfo &)
 Method to visit a LIEF::PE::ResourceVarFileInfo.
 
virtual void visit (const PE::ResourceStringTable &)
 Method to visit a LIEF::PE::ResourceStringTable.
 
virtual void visit (const PE::ResourceAccelerator &)
 Method to visit a LIEF::PE::ResourceAccelerator.
 
virtual void visit (const PE::LangCodeItem &)
 Method to visit a LIEF::PE::LangCodeItem.
 
virtual void visit (const PE::ResourceIcon &)
 Method to visit a LIEF::PE::ResourceIcon.
 
virtual void visit (const PE::ResourceDialog &)
 Method to visit a LIEF::PE::ResourceDialog.
 
virtual void visit (const PE::ResourceDialogItem &)
 Method to visit a LIEF::PE::ResourceDialogItem.
 
virtual void visit (const PE::Signature &)
 Method to visit a LIEF::PE::Signature.
 
virtual void visit (const PE::x509 &)
 Method to visit a LIEF::PE::x509.
 
virtual void visit (const PE::SignerInfo &)
 Method to visit a LIEF::PE::SignerInfo.
 
virtual void visit (const PE::ContentInfo &)
 Method to visit a LIEF::PE::ContentInfo.
 
virtual void visit (const PE::Attribute &)
 Method to visit a LIEF::PE::Attribute.
 
virtual void visit (const PE::ContentType &)
 Method to visit a LIEF::PE::ContentType.
 
virtual void visit (const PE::GenericContent &)
 Method to visit a LIEF::PE::GenericContent.
 
virtual void visit (const PE::SpcIndirectData &)
 Method to visit a LIEF::PE::SpcIndirectData.
 
virtual void visit (const PE::GenericType &)
 Method to visit a LIEF::PE::GenericType.
 
virtual void visit (const PE::MsCounterSign &)
 Method to visit a LIEF::PE::MsCounterSign.
 
virtual void visit (const PE::MsManifestBinaryID &)
 Method to visit a LIEF::PE::MsManifestBinaryID.
 
virtual void visit (const PE::MsSpcNestedSignature &)
 Method to visit a LIEF::PE::MsSpcNestedSignature.
 
virtual void visit (const PE::MsSpcStatementType &)
 Method to visit a LIEF::PE::MsSpcStatementType.
 
virtual void visit (const PE::PKCS9AtSequenceNumber &)
 Method to visit a LIEF::PE::PKCS9AtSequenceNumber.
 
virtual void visit (const PE::PKCS9CounterSignature &)
 Method to visit a LIEF::PE::PKCS9CounterSignature.
 
virtual void visit (const PE::PKCS9MessageDigest &)
 Method to visit a LIEF::PE::PKCS9MessageDigest.
 
virtual void visit (const PE::PKCS9SigningTime &)
 Method to visit a LIEF::PE::PKCS9SigningTime.
 
virtual void visit (const PE::SpcSpOpusInfo &)
 Method to visit a LIEF::PE::SpcSpOpusInfo.
 
virtual void visit (const PE::SpcRelaxedPeMarkerCheck &)
 Method to visit a LIEF::PE::SpcRelaxedPeMarkerCheck.
 
virtual void visit (const PE::SigningCertificateV2 &)
 Method to visit a LIEF::PE::SigningCertificateV2.
 
virtual void visit (const PE::LoadConfiguration &)
 Method to visit a LIEF::PE::LoadConfiguration.
 
virtual void visit (const PE::LoadConfigurationV0 &)
 Method to visit a LIEF::PE::LoadConfigurationV0.
 
virtual void visit (const PE::LoadConfigurationV1 &)
 Method to visit a LIEF::PE::LoadConfigurationV1.
 
virtual void visit (const PE::LoadConfigurationV2 &)
 Method to visit a LIEF::PE::LoadConfigurationV2.
 
virtual void visit (const PE::LoadConfigurationV3 &)
 Method to visit a LIEF::PE::LoadConfigurationV3.
 
virtual void visit (const PE::LoadConfigurationV4 &)
 Method to visit a LIEF::PE::LoadConfigurationV4.
 
virtual void visit (const PE::LoadConfigurationV5 &)
 Method to visit a LIEF::PE::LoadConfigurationV5.
 
virtual void visit (const PE::LoadConfigurationV6 &)
 Method to visit a LIEF::PE::LoadConfigurationV6.
 
virtual void visit (const PE::LoadConfigurationV7 &)
 Method to visit a LIEF::PE::LoadConfigurationV7.
 
virtual void visit (const PE::LoadConfigurationV8 &)
 Method to visit a LIEF::PE::LoadConfigurationV8.
 
virtual void visit (const PE::LoadConfigurationV9 &)
 Method to visit a LIEF::PE::LoadConfigurationV9.
 
virtual void visit (const PE::LoadConfigurationV10 &)
 Method to visit a LIEF::PE::LoadConfigurationV10.
 
virtual void visit (const PE::LoadConfigurationV11 &)
 Method to visit a LIEF::PE::LoadConfigurationV11.
 
virtual void visit (const PE::CodeIntegrity &)
 Method to visit a LIEF::PE::CodeIntegrity.
 
virtual void visit (const PE::Pogo &)
 Method to visit a LIEF::PE::Pogo.
 
virtual void visit (const PE::PogoEntry &)
 Method to visit a LIEF::PE::PogoEntry.
 
virtual void visit (const PE::Repro &)
 Method to visit a LIEF::PE::Repro.
 
virtual void visit (const MachO::Binary &)
 Method to visit a LIEF::MachO::Binary.
 
virtual void visit (const MachO::Header &)
 Method to visit a LIEF::MachO::Header.
 
virtual void visit (const MachO::LoadCommand &)
 Method to visit a LIEF::MachO::LoadCommand.
 
virtual void visit (const MachO::UUIDCommand &)
 Method to visit a LIEF::MachO::UUIDCommand.
 
virtual void visit (const MachO::SymbolCommand &)
 Method to visit a LIEF::MachO::SymbolCommand.
 
virtual void visit (const MachO::SegmentCommand &)
 Method to visit a LIEF::MachO::SegmentCommand.
 
virtual void visit (const MachO::Section &)
 Method to visit a LIEF::MachO::Section.
 
virtual void visit (const MachO::MainCommand &)
 Method to visit a LIEF::MachO::MainCommand.
 
virtual void visit (const MachO::DynamicSymbolCommand &)
 Method to visit a LIEF::MachO::DynamicSymbolCommand.
 
virtual void visit (const MachO::DylinkerCommand &)
 Method to visit a LIEF::MachO::DylinkerCommand.
 
virtual void visit (const MachO::DylibCommand &)
 Method to visit a LIEF::MachO::DylibCommand.
 
virtual void visit (const MachO::ThreadCommand &)
 Method to visit a LIEF::MachO::ThreadCommand.
 
virtual void visit (const MachO::RPathCommand &)
 Method to visit a LIEF::MachO::RPathCommand.
 
virtual void visit (const MachO::Symbol &)
 Method to visit a LIEF::MachO::Symbol.
 
virtual void visit (const MachO::Relocation &)
 Method to visit a LIEF::MachO::Relocation.
 
virtual void visit (const MachO::RelocationObject &)
 Method to visit a LIEF::MachO::RelocationObject.
 
virtual void visit (const MachO::RelocationDyld &)
 Method to visit a LIEF::MachO::RelocationDyld.
 
virtual void visit (const MachO::RelocationFixup &)
 Method to visit a LIEF::MachO::RelocationFixup.
 
virtual void visit (const MachO::BindingInfo &)
 Method to visit a LIEF::MachO::BindingInfo.
 
virtual void visit (const MachO::DyldBindingInfo &)
 Method to visit a LIEF::MachO::DyldBindingInfo.
 
virtual void visit (const MachO::ChainedBindingInfo &)
 Method to visit a LIEF::MachO::ChainedBindingInfo.
 
virtual void visit (const MachO::DyldExportsTrie &)
 Method to visit a LIEF::MachO::DyldExportsTrie.
 
virtual void visit (const MachO::ExportInfo &)
 Method to visit a LIEF::MachO::ExportInfo.
 
virtual void visit (const MachO::FunctionStarts &)
 Method to visit a LIEF::MachO::FunctionStarts.
 
virtual void visit (const MachO::CodeSignature &)
 Method to visit a LIEF::MachO::CodeSignature.
 
virtual void visit (const MachO::DataInCode &)
 Method to visit a LIEF::MachO::DataInCode.
 
virtual void visit (const MachO::DataCodeEntry &)
 Method to visit a LIEF::MachO::DataCodeEntry.
 
virtual void visit (const MachO::SourceVersion &)
 Method to visit a LIEF::MachO::SourceVersion.
 
virtual void visit (const MachO::VersionMin &)
 Method to visit a LIEF::MachO::VersionMin.
 
virtual void visit (const MachO::SegmentSplitInfo &)
 Method to visit a LIEF::MachO::SegmentSplitInfo.
 
virtual void visit (const MachO::SubFramework &)
 Method to visit a LIEF::MachO::SubFramework.
 
virtual void visit (const MachO::Routine &)
 Method to visit a LIEF::MachO::Routine.
 
virtual void visit (const MachO::DyldEnvironment &)
 Method to visit a LIEF::MachO::DyldEnvironment.
 
virtual void visit (const MachO::EncryptionInfo &)
 Method to visit a LIEF::MachO::DyldEnvironment.
 
virtual void visit (const MachO::BuildVersion &)
 Method to visit a LIEF::MachO:BuildVersion:
 
virtual void visit (const MachO::BuildToolVersion &)
 Method to visit a LIEF::MachO:BuildToolVersion:
 
virtual void visit (const MachO::FilesetCommand &)
 Method to visit a LIEF::MachO:BuildToolVersion:
 
virtual void visit (const MachO::CodeSignatureDir &)
 Method to visit a LIEF::MachO::CodeSignatureDir.
 
virtual void visit (const MachO::TwoLevelHints &)
 Method to visit a LIEF::MachO::TwoLevelHints.
 
virtual void visit (const MachO::LinkerOptHint &)
 Method to visit a LIEF::MachO::LinkerOptHint.
 
virtual void visit (const MachO::UnknownCommand &)
 Method to visit a LIEF::MachO::UnknownCommand.
 
virtual void visit (const OAT::Binary &)
 Method to visit a LIEF::OAT::Binary.
 
virtual void visit (const OAT::Header &)
 Method to visit a LIEF::OAT::Header.
 
virtual void visit (const OAT::DexFile &)
 Method to visit a LIEF::OAT::DexFile.
 
virtual void visit (const OAT::Class &)
 Method to visit a LIEF::OAT::Class.
 
virtual void visit (const OAT::Method &)
 Method to visit a LIEF::OAT::Method.
 
virtual void visit (const DEX::File &)
 Method to visit a LIEF::DEX::File.
 
virtual void visit (const DEX::Field &)
 Method to visit a LIEF::DEX::Field.
 
virtual void visit (const DEX::Method &)
 Method to visit a LIEF::DEX::Method.
 
virtual void visit (const DEX::Header &)
 Method to visit a LIEF::DEX::Header.
 
virtual void visit (const DEX::Class &)
 Method to visit a LIEF::DEX::Class.
 
virtual void visit (const DEX::CodeInfo &)
 Method to visit a LIEF::DEX::CodeInfo.
 
virtual void visit (const DEX::Type &)
 Method to visit a LIEF::DEX::Type.
 
virtual void visit (const DEX::Prototype &)
 Method to visit a LIEF::DEX:Prototype:
 
virtual void visit (const DEX::MapList &)
 Method to visit a LIEF::DEX:MapList:
 
virtual void visit (const DEX::MapItem &)
 Method to visit a LIEF::DEX:MapItem:
 
virtual void visit (const VDEX::File &)
 Method to visit a LIEF::VDEX::File.
 
virtual void visit (const VDEX::Header &)
 Method to visit a LIEF::VDEX::Header.
 
virtual void visit (const ART::File &)
 Method to visit a LIEF::ART::File.
 
virtual void visit (const ART::Header &)
 Method to visit a LIEF::ART::Header.
 
- Public Member Functions inherited from LIEF::Visitor
 Visitor ()
 
virtual ~Visitor ()
 
virtual void operator() ()
 
template<typename Arg1 , typename... Args>
void operator() (Arg1 &&arg1, Args &&... args)
 
template<class T >
void dispatch (const T &obj)
 

Static Public Member Functions

static LIEF::Hash::value_type hash (const Object &obj)
 
- Static Public Member Functions inherited from LIEF::Hash
template<class H = Hash>
static value_type hash (const Object &obj)
 
static value_type hash (const std::vector< uint8_t > &raw)
 
static value_type hash (span< const uint8_t > raw)
 
static value_type hash (const void *raw, size_t size)
 
template<typename U = value_type>
static value_type combine (value_type lhs, U rhs)
 

Additional Inherited Members

- Public Types inherited from LIEF::Hash
using value_type = size_t
 

Detailed Description

Class which implements a visitor to compute a deterministic hash for LIEF DEX objects.

Constructor & Destructor Documentation

◆ ~Hash()

LIEF::DEX::Hash::~Hash ( )
override

◆ Hash() [1/2]

LIEF::Hash::Hash ( )

◆ Hash() [2/2]

LIEF::Hash::Hash ( value_type init_value)

Member Function Documentation

◆ hash()

static LIEF::Hash::value_type LIEF::DEX::Hash::hash ( const Object & obj)
static

◆ visit() [1/10]

void LIEF::DEX::Hash::visit ( const Class & )
overridevirtual

Method to visit a LIEF::DEX::Class.

Reimplemented from LIEF::Visitor.

◆ visit() [2/10]

void LIEF::DEX::Hash::visit ( const CodeInfo & )
overridevirtual

Method to visit a LIEF::DEX::CodeInfo.

Reimplemented from LIEF::Visitor.

◆ visit() [3/10]

void LIEF::DEX::Hash::visit ( const Field & )
overridevirtual

Method to visit a LIEF::DEX::Field.

Reimplemented from LIEF::Visitor.

◆ visit() [4/10]

void LIEF::DEX::Hash::visit ( const File & )
overridevirtual

Method to visit a LIEF::DEX::File.

Reimplemented from LIEF::Visitor.

◆ visit() [5/10]

void LIEF::DEX::Hash::visit ( const Header & )
overridevirtual

Method to visit a LIEF::DEX::Header.

Reimplemented from LIEF::Visitor.

◆ visit() [6/10]

void LIEF::DEX::Hash::visit ( const MapItem & )
overridevirtual

Method to visit a LIEF::DEX:MapItem:

Reimplemented from LIEF::Visitor.

◆ visit() [7/10]

void LIEF::DEX::Hash::visit ( const MapList & )
overridevirtual

Method to visit a LIEF::DEX:MapList:

Reimplemented from LIEF::Visitor.

◆ visit() [8/10]

void LIEF::DEX::Hash::visit ( const Method & )
overridevirtual

Method to visit a LIEF::DEX::Method.

Reimplemented from LIEF::Visitor.

◆ visit() [9/10]

void LIEF::DEX::Hash::visit ( const Prototype & )
overridevirtual

Method to visit a LIEF::DEX:Prototype:

Reimplemented from LIEF::Visitor.

◆ visit() [10/10]

void LIEF::DEX::Hash::visit ( const Type & )
overridevirtual

Method to visit a LIEF::DEX::Type.

Reimplemented from LIEF::Visitor.


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