LIEF: Library to Instrument Executable Formats
Version 0.17.4
Toggle main menu visibility
Loading...
Searching...
No Matches
install
linux
x86_64
sdk
static
include
LIEF
COFF
AuxiliarySymbols
AuxiliaryFile.hpp
Go to the documentation of this file.
1
/* Copyright 2017 - 2025 R. Thomas
2
* Copyright 2017 - 2025 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
33
class
LIEF_API
AuxiliaryFile
:
public
AuxiliarySymbol
{
34
public
:
35
LIEF_LOCAL
static
std::unique_ptr<AuxiliaryFile>
36
parse
(
const
std::vector<uint8_t>&
payload
);
37
38
AuxiliaryFile
() :
39
AuxiliarySymbol
(
AuxiliarySymbol
::
TYPE
::FILE)
40
{}
41
42
AuxiliaryFile
(std::string file) :
43
AuxiliarySymbol
(
AuxiliarySymbol
::
TYPE
::FILE),
44
filename_(std::move(file))
45
{}
46
47
AuxiliaryFile
(
const
AuxiliaryFile
&) =
default
;
48
AuxiliaryFile
&
operator=
(
const
AuxiliaryFile
&) =
default
;
49
50
AuxiliaryFile
(
AuxiliaryFile
&&) =
default
;
51
AuxiliaryFile
&
operator=
(
AuxiliaryFile
&&) =
default
;
52
53
std::unique_ptr<AuxiliarySymbol>
clone
()
const override
{
54
return
std::unique_ptr<AuxiliaryFile>(
new
AuxiliaryFile
{*
this
});
55
}
56
58
const
std::string&
filename
()
const
{
59
return
filename_;
60
}
61
62
AuxiliaryFile
&
filename
(std::string file) {
63
filename_ = std::move(file);
64
return
*
this
;
65
}
66
67
std::string
to_string
()
const override
{
68
std::string out =
"AuxiliaryFile {\n"
;
69
out +=
" "
+ filename_ +
"\n}"
;
70
return
out;
71
}
72
73
~AuxiliaryFile
()
override
=
default
;
74
75
static
bool
classof
(
const
AuxiliarySymbol
* sym) {
76
return
sym->
type
() ==
AuxiliarySymbol::TYPE::FILE
;
77
}
78
79
protected
:
80
std::string filename_;
81
};
82
83
}
84
}
85
#endif
AuxiliarySymbol.hpp
LIEF::COFF::AuxiliaryFile::filename
AuxiliaryFile & filename(std::string file)
Definition
AuxiliaryFile.hpp:62
LIEF::COFF::AuxiliaryFile::to_string
std::string to_string() const override
Definition
AuxiliaryFile.hpp:67
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:58
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:53
LIEF::COFF::AuxiliaryFile::AuxiliaryFile
AuxiliaryFile()
Definition
AuxiliaryFile.hpp:38
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:75
LIEF::COFF::AuxiliarySymbol::payload
span< const uint8_t > payload() const
For unknown type only, return the raw representation of this symbol.
Definition
AuxiliarySymbol.hpp:83
LIEF::COFF::AuxiliarySymbol::AuxiliarySymbol
AuxiliarySymbol()=default
LIEF::COFF::AuxiliarySymbol::type
TYPE type() const
Definition
AuxiliarySymbol.hpp:78
LIEF::COFF::AuxiliarySymbol::TYPE
TYPE
Type discriminator for the subclasses.
Definition
AuxiliarySymbol.hpp:57
LIEF::COFF::AuxiliarySymbol::TYPE::FILE
@ FILE
Auxiliary Format 4: Files from the PE-COFF documentation.
Definition
AuxiliarySymbol.hpp:67
LIEF::COFF
Definition
AuxiliarySymbol.hpp:29
LIEF
LIEF namespace.
Definition
Abstract/Binary.hpp:40
visibility.h
LIEF_API
#define LIEF_API
Definition
visibility.h:41
LIEF_LOCAL
#define LIEF_LOCAL
Definition
visibility.h:42
Generated by
1.17.0