PE-sieve
Scans all running processes. Recognizes and dumps a variety of potentially malicious implants (replaced/implanted PEs, shellcodes, hooks, in-memory patches).
Toggle main menu visibility
Loading...
Searching...
No Matches
scanners
scanned_modules.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <windows.h>
4
5
#include <map>
6
#include <string>
7
#include <iostream>
8
9
#include "
module_scan_report.h
"
10
11
namespace
pesieve
{
12
14
class
ScannedModule
{
15
16
public
:
17
18
ULONGLONG
getStart
()
const
19
{
20
return
start
;
21
}
22
23
ULONGLONG
getEnd
()
const
24
{
25
return
moduleSize +
start
;
26
}
27
28
size_t
getSize
()
29
{
30
return
moduleSize;
31
}
32
33
bool
isSuspicious
()
const
34
{
35
return
this->is_suspicious;
36
}
37
38
std::string
getModName
()
const
39
{
40
return
this->moduleName;
41
}
42
43
protected
:
44
ScannedModule
(ULONGLONG _start,
size_t
_moduleSize)
45
:
start
(_start), moduleSize(_moduleSize),
46
is_suspicious(false)
47
{
48
}
49
50
~ScannedModule
()
51
{
52
}
53
54
bool
operator<
(
ScannedModule
other)
const
55
{
56
return
this->
start
< other.
start
;
57
}
58
59
void
setSuspicious
(
bool
_is_suspicious) {
60
this->is_suspicious = _is_suspicious;
61
}
62
63
bool
resize
(
size_t
newSize)
64
{
65
if
(moduleSize < newSize) {
66
//std::cout << "Resizing module from: " << std::hex << moduleSize << " to: " << newSize << "\n";
67
moduleSize = newSize;
68
return
true
;
69
}
70
return
false
;
71
}
72
73
const
ULONGLONG
start
;
74
75
private
:
76
size_t
moduleSize;
77
bool
is_suspicious;
78
std::string moduleName;
79
80
friend
class
ModulesInfo
;
81
};
82
84
class
ModulesInfo
{
85
86
public
:
87
ModulesInfo
(DWORD _pid)
88
: process_id(_pid)
89
{
90
}
91
92
~ModulesInfo
()
93
{
94
deleteAll
();
95
}
96
97
bool
appendToModulesList
(
ModuleScanReport
*
report
);
98
99
size_t
count
() {
return
modulesMap.size(); }
100
101
size_t
getScannedSize
(ULONGLONG start_address)
const
;
102
ScannedModule
*
findModuleContaining
(ULONGLONG address,
size_t
size = 0)
const
;
103
ScannedModule
*
getModuleAt
(ULONGLONG address)
const
;
104
105
protected
:
106
bool
appendModule
(
ScannedModule
* module);
107
void
deleteAll
();
108
109
private
:
110
std::map<ULONGLONG, ScannedModule*> modulesMap;
111
const
DWORD process_id;
112
};
113
114
};
//namespace pesieve
115
pesieve::ModuleScanReport
A base class of all the reports detailing on the output of the performed module's scan.
Definition
module_scan_report.h:56
pesieve::ModulesInfo::findModuleContaining
ScannedModule * findModuleContaining(ULONGLONG address, size_t size=0) const
Definition
scanned_modules.cpp:53
pesieve::ModulesInfo::getScannedSize
size_t getScannedSize(ULONGLONG start_address) const
Definition
scanned_modules.cpp:83
pesieve::ModulesInfo::ModulesInfo
ModulesInfo(DWORD _pid)
Definition
scanned_modules.h:87
pesieve::ModulesInfo::deleteAll
void deleteAll()
Definition
scanned_modules.cpp:73
pesieve::ModulesInfo::~ModulesInfo
~ModulesInfo()
Definition
scanned_modules.h:92
pesieve::ModulesInfo::appendToModulesList
bool appendToModulesList(ModuleScanReport *report)
Definition
scanned_modules.cpp:24
pesieve::ModulesInfo::count
size_t count()
Definition
scanned_modules.h:99
pesieve::ModulesInfo::appendModule
bool appendModule(ScannedModule *module)
Definition
scanned_modules.cpp:10
pesieve::ModulesInfo::getModuleAt
ScannedModule * getModuleAt(ULONGLONG address) const
Definition
scanned_modules.cpp:103
pesieve::ScannedModule
Represents a basic info about the scanned module, such as its base offset, size, and the status.
Definition
scanned_modules.h:14
pesieve::ScannedModule::getModName
std::string getModName() const
Definition
scanned_modules.h:38
pesieve::ScannedModule::isSuspicious
bool isSuspicious() const
Definition
scanned_modules.h:33
pesieve::ScannedModule::start
const ULONGLONG start
Definition
scanned_modules.h:73
pesieve::ScannedModule::getStart
ULONGLONG getStart() const
Definition
scanned_modules.h:18
pesieve::ScannedModule::setSuspicious
void setSuspicious(bool _is_suspicious)
Definition
scanned_modules.h:59
pesieve::ScannedModule::operator<
bool operator<(ScannedModule other) const
Definition
scanned_modules.h:54
pesieve::ScannedModule::~ScannedModule
~ScannedModule()
Definition
scanned_modules.h:50
pesieve::ScannedModule::getEnd
ULONGLONG getEnd() const
Definition
scanned_modules.h:23
pesieve::ScannedModule::getSize
size_t getSize()
Definition
scanned_modules.h:28
pesieve::ScannedModule::resize
bool resize(size_t newSize)
Definition
scanned_modules.h:63
pesieve::ScannedModule::ScannedModule
ScannedModule(ULONGLONG _start, size_t _moduleSize)
Definition
scanned_modules.h:44
pesieve::ScannedModule::ModulesInfo
friend class ModulesInfo
Definition
scanned_modules.h:80
module_scan_report.h
pesieve
Definition
pesieve.py:1
report
Final summary about the scanned process.
Definition
pe_sieve_types.h:151
Generated by
1.17.0