LIEF: Library to Instrument Executable Formats
Version 2.0.0
Toggle main menu visibility
Loading...
Searching...
No Matches
lief-install
x86_64
static
include
LIEF
runtime
windows
windows/Module.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_RUNTIME_WIN_MODULE_H
17
#define LIEF_RUNTIME_WIN_MODULE_H
18
19
#include "
LIEF/runtime/Module.hpp
"
20
#include "
LIEF/runtime/utils.hpp
"
21
22
namespace
LIEF
{
23
24
namespace
PE
{
25
class
Binary
;
26
struct
ParserConfig
;
27
}
28
29
30
namespace
runtime::windows
{
31
33
class
LIEF_API
Module
:
public
runtime::Module
{
34
public
:
35
using
runtime::Module::Module
;
36
37
static
std::unique_ptr<Module>
from_handle
(
void
* H);
38
42
void
*
handle
()
const
;
43
45
void
*
dlsym
(
const
std::string&
name
)
const
;
46
48
std::unique_ptr<PE::Binary>
parse_from_path
()
const
;
49
52
std::unique_ptr<PE::Binary>
53
parse_from_path
(
const
PE::ParserConfig
& config)
const
;
54
56
std::unique_ptr<PE::Binary>
57
parse_from_memory
(
const
PE::ParserConfig
& config)
const
;
58
60
std::unique_ptr<PE::Binary>
parse_from_memory
()
const
;
61
62
~Module
()
override
=
default
;
63
64
static
constexpr
bool
classof
(
const
runtime::Module
*) {
65
return
platform() ==
PLATFORMS::WINDOWS
;
66
}
67
};
68
70
LIEF_API
std::unique_ptr<Module>
dlopen
(
const
std::string& name);
71
85
LIEF_API
std::unique_ptr<Module>
find_module
(
const
std::string& name);
86
87
}
88
}
89
#endif
Module.hpp
LIEF::PE::Binary
Class which represents a PE binary This is the main interface to manage and modify a PE executable.
Definition
PE/Binary.hpp:58
LIEF::runtime::Module
This class represents an in-memory module which can be an executable or a library.
Definition
Module.hpp:42
LIEF::runtime::Module::Module
Module()=delete
LIEF::runtime::Module::name
std::string name() const
Name of the module (e.g. libc.so.6, kernel32.dll, libsystem_c.dylib).
LIEF::runtime::windows::Module::parse_from_memory
std::unique_ptr< PE::Binary > parse_from_memory() const
Parse the PE module from memory.
LIEF::runtime::windows::Module::Module
Module()=delete
LIEF::runtime::windows::Module::parse_from_path
std::unique_ptr< PE::Binary > parse_from_path() const
Parse the PE module from its path on the filesystem.
LIEF::runtime::windows::Module::parse_from_memory
std::unique_ptr< PE::Binary > parse_from_memory(const PE::ParserConfig &config) const
Parse the PE module from memory with the given configuration.
LIEF::runtime::windows::Module::~Module
~Module() override=default
LIEF::runtime::windows::Module::from_handle
static std::unique_ptr< Module > from_handle(void *H)
LIEF::runtime::windows::Module::handle
void * handle() const
Return the HMODULE handle as an opaque pointer.
LIEF::runtime::windows::Module::classof
static constexpr bool classof(const runtime::Module *)
Definition
windows/Module.hpp:64
LIEF::runtime::windows::Module::parse_from_path
std::unique_ptr< PE::Binary > parse_from_path(const PE::ParserConfig &config) const
Parse the PE module from its path on the filesystem and given the parser configuration.
LIEF::runtime::windows::Module::dlsym
void * dlsym(const std::string &name) const
Resolve the symbol with the given name for the current module.
LIEF::PE
Namespace related to the LIEF's PE module.
Definition
Abstract/Header.hpp:32
LIEF::runtime::windows
Definition
windows/Host.hpp:24
LIEF::runtime::windows::find_module
std::unique_ptr< Module > find_module(const std::string &name)
Try to get the Module with the given name.
LIEF::runtime::windows::dlopen
std::unique_ptr< Module > dlopen(const std::string &name)
Load the windows library with the given path or name.
LIEF::runtime::PLATFORMS::WINDOWS
@ WINDOWS
Definition
runtime/utils.hpp:31
LIEF
LIEF namespace.
Definition
Abstract/Binary.hpp:41
utils.hpp
LIEF::PE::ParserConfig
This structure is used to configure the behavior of the PE Parser (PE::Parser).
Definition
PE/ParserConfig.hpp:28
LIEF_API
#define LIEF_API
Definition
visibility.h:45
Generated by
1.18.0