LIEF: Library to Instrument Executable Formats
Version 1.0.0
Toggle main menu visibility
Loading...
Searching...
No Matches
lief-install
x86_64
static
include
LIEF
COFF
AuxiliarySymbols
AuxiliaryFile.hpp
Go to the documentation of this file.
1
/* Copyright 2017 - 2026 R. Thomas
2
* Copyright 2017 - 2026 Quarkslab
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
16
#ifndef LIEF_PE_AUXILIARY_FILE_H
17
#define LIEF_PE_AUXILIARY_FILE_H
18
19
#include <memory>
20
21
#include "
LIEF/visibility.h
"
22
#include "
LIEF/COFF/AuxiliarySymbol.hpp
"
23
24
namespace
LIEF
{
25
namespace
COFF
{
26
34
class
LIEF_API
AuxiliaryFile
:
public
AuxiliarySymbol
{
35
public
:
36
LIEF_LOCAL
static
std::unique_ptr<AuxiliaryFile>
37
parse
(
const
std::vector<uint8_t>&
payload
);
38
39
AuxiliaryFile
() :
40
AuxiliarySymbol
(
AuxiliarySymbol
::
TYPE
::FILE) {}
41
42
AuxiliaryFile
(std::string file) :
43
AuxiliarySymbol
(
AuxiliarySymbol
::
TYPE
::FILE),
44
filename_(
std
::move(file)) {}
45
46
AuxiliaryFile
(
const
AuxiliaryFile
&) =
default
;
47
AuxiliaryFile
&
operator=
(
const
AuxiliaryFile
&) =
default
;
48
49
AuxiliaryFile
(
AuxiliaryFile
&&) =
default
;
50
AuxiliaryFile
&
operator=
(
AuxiliaryFile
&&) =
default
;
51
52
std::unique_ptr<AuxiliarySymbol>
clone
()
const override
{
53
return
std::unique_ptr<AuxiliaryFile>(
new
AuxiliaryFile
{*
this
});
54
}
55
57
const
std::string&
filename
()
const
{
58
return
filename_;
59
}
60
61
AuxiliaryFile
&
filename
(std::string file) {
62
filename_ = std::move(file);
63
return
*
this
;
64
}
65
66
std::string
to_string
()
const override
{
67
std::string out =
"AuxiliaryFile {\n"
;
68
out +=
" "
+ filename_ +
"\n}"
;
69
return
out;
70
}
71
72
~AuxiliaryFile
()
override
=
default
;
73
74
static
bool
classof
(
const
AuxiliarySymbol
* sym) {
75
return
sym->
type
() ==
AuxiliarySymbol::TYPE::FILE
;
76
}
77
78
protected
:
79
std::string filename_;
80
};
81
82
}
83
}
84
#endif
AuxiliarySymbol.hpp
LIEF::COFF::AuxiliaryFile::filename
AuxiliaryFile & filename(std::string file)
Definition
AuxiliaryFile.hpp:61
LIEF::COFF::AuxiliaryFile::to_string
std::string to_string() const override
Definition
AuxiliaryFile.hpp:66
LIEF::COFF::AuxiliaryFile::AuxiliaryFile
AuxiliaryFile(std::string file)
Definition
AuxiliaryFile.hpp:42
LIEF::COFF::AuxiliaryFile::AuxiliaryFile
AuxiliaryFile(const AuxiliaryFile &)=default
LIEF::COFF::AuxiliaryFile::filename
const std::string & filename() const
The associated filename.
Definition
AuxiliaryFile.hpp:57
LIEF::COFF::AuxiliaryFile::operator=
AuxiliaryFile & operator=(AuxiliaryFile &&)=default
LIEF::COFF::AuxiliaryFile::AuxiliaryFile
AuxiliaryFile(AuxiliaryFile &&)=default
LIEF::COFF::AuxiliaryFile::clone
std::unique_ptr< AuxiliarySymbol > clone() const override
Definition
AuxiliaryFile.hpp:52
LIEF::COFF::AuxiliaryFile::AuxiliaryFile
AuxiliaryFile()
Definition
AuxiliaryFile.hpp:39
LIEF::COFF::AuxiliaryFile::parse
static std::unique_ptr< AuxiliaryFile > parse(const std::vector< uint8_t > &payload)
LIEF::COFF::AuxiliaryFile::operator=
AuxiliaryFile & operator=(const AuxiliaryFile &)=default
LIEF::COFF::AuxiliaryFile::~AuxiliaryFile
~AuxiliaryFile() override=default
LIEF::COFF::AuxiliaryFile::classof
static bool classof(const AuxiliarySymbol *sym)
Definition
AuxiliaryFile.hpp:74
LIEF::COFF::AuxiliarySymbol::payload
span< const uint8_t > payload() const
For unknown type only, return the raw representation of this symbol.
Definition
AuxiliarySymbol.hpp:81
LIEF::COFF::AuxiliarySymbol::AuxiliarySymbol
AuxiliarySymbol()=default
LIEF::COFF::AuxiliarySymbol::type
TYPE type() const
Definition
AuxiliarySymbol.hpp:76
LIEF::COFF::AuxiliarySymbol::TYPE
TYPE
Type discriminator for the subclasses.
Definition
AuxiliarySymbol.hpp:56
LIEF::COFF::AuxiliarySymbol::TYPE::FILE
@ FILE
Auxiliary Format 4: Files from the PE-COFF documentation.
Definition
AuxiliarySymbol.hpp:66
LIEF::COFF
Definition
AuxiliarySymbol.hpp:29
LIEF
LIEF namespace.
Definition
Abstract/Binary.hpp:40
std
Definition
string.h:155
visibility.h
LIEF_API
#define LIEF_API
Definition
visibility.h:43
LIEF_LOCAL
#define LIEF_LOCAL
Definition
visibility.h:44
Generated by
1.17.0