HollowsHunter
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
hh_scanner.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <windows.h>
4
#include <psapi.h>
5
#pragma comment(lib,"psapi.lib")
6
7
#include <string>
8
#include <vector>
9
#include <set>
10
11
#include "
hh_params.h
"
12
#include "
hh_report.h
"
13
14
15
typedef
enum
single_status
{
16
SSCAN_ERROR1
= (-2),
17
SSCAN_ERROR0
= (-1),
18
SSCAN_NOT_MATCH
= 0,
19
SSCAN_IGNORED
= 1,
20
SSCAN_SUCCESS
= 2,
21
SSCAN_READY
= 3
22
}
t_single_scan_status
;
23
24
class
HHScanner
{
25
public
:
26
// is the scanner best suited for the OS bitness
27
static
bool
isScannerCompatibile
();
28
static
t_single_scan_status
shouldScanProcess
(
const
hh_params
&
hh_args
,
const
time_t hh_initTime,
const
DWORD pid,
const
WCHAR* exe_file);
29
30
HHScanner
(
t_hh_params
& _args, time_t _initTime = 0);
31
32
HHScanReport
*
scan
();
33
bool
writeToLog
(
HHScanReport
* hh_report);
34
void
summarizeScan
(
HHScanReport
* hh_report,
const
pesieve::t_results_filter rfilter);
35
36
protected
:
37
void
printScanRoundStats
(
size_t
found,
size_t
ignored_count,
size_t
not_matched_count);
38
size_t
scanProcesses
(
HHScanReport
&my_report);
39
void
printSingleReport
(pesieve::t_report& report);
40
41
t_single_scan_status
scanNextProcess
(DWORD pid, WCHAR* image_buf,
HHScanReport
&report);
42
void
initOutDir
(time_t scan_time, pesieve::t_params &pesieve_args);
43
44
t_hh_params
&
hh_args
;
45
std::string
outDir
;
46
47
// time when HollowsHunter was initialized
48
time_t
initTime
;
49
bool
isScannerWow64
;
50
};
51
52
53
// Global arguments
54
extern
t_hh_params
g_hh_args
;
HHScanReport
Definition
hh_report.h:13
HHScanner::printScanRoundStats
void printScanRoundStats(size_t found, size_t ignored_count, size_t not_matched_count)
Definition
hh_scanner.cpp:154
HHScanner::writeToLog
bool writeToLog(HHScanReport *hh_report)
Definition
hh_scanner.cpp:384
HHScanner::outDir
std::string outDir
Definition
hh_scanner.h:45
HHScanner::summarizeScan
void summarizeScan(HHScanReport *hh_report, const pesieve::t_results_filter rfilter)
Definition
hh_scanner.cpp:398
HHScanner::scanNextProcess
t_single_scan_status scanNextProcess(DWORD pid, WCHAR *image_buf, HHScanReport &report)
Definition
hh_scanner.cpp:336
HHScanner::isScannerWow64
bool isScannerWow64
Definition
hh_scanner.h:49
HHScanner::shouldScanProcess
static t_single_scan_status shouldScanProcess(const hh_params &hh_args, const time_t hh_initTime, const DWORD pid, const WCHAR *exe_file)
Definition
hh_scanner.cpp:303
HHScanner::scanProcesses
size_t scanProcesses(HHScanReport &my_report)
Definition
hh_scanner.cpp:186
HHScanner::initTime
time_t initTime
Definition
hh_scanner.h:48
HHScanner::hh_args
t_hh_params & hh_args
Definition
hh_scanner.h:44
HHScanner::scan
HHScanReport * scan()
Definition
hh_scanner.cpp:371
HHScanner::initOutDir
void initOutDir(time_t scan_time, pesieve::t_params &pesieve_args)
Definition
hh_scanner.cpp:141
HHScanner::HHScanner
HHScanner(t_hh_params &_args, time_t _initTime=0)
Definition
hh_scanner.cpp:122
HHScanner::isScannerCompatibile
static bool isScannerCompatibile()
Definition
hh_scanner.cpp:131
HHScanner::printSingleReport
void printSingleReport(pesieve::t_report &report)
Definition
hh_scanner.cpp:232
hh_params.h
t_hh_params
struct hh_params t_hh_params
hh_report.h
g_hh_args
t_hh_params g_hh_args
Definition
main.cpp:29
single_status
single_status
Definition
hh_scanner.h:15
SSCAN_NOT_MATCH
@ SSCAN_NOT_MATCH
Definition
hh_scanner.h:18
SSCAN_IGNORED
@ SSCAN_IGNORED
Definition
hh_scanner.h:19
SSCAN_READY
@ SSCAN_READY
Definition
hh_scanner.h:21
SSCAN_ERROR1
@ SSCAN_ERROR1
Definition
hh_scanner.h:16
SSCAN_ERROR0
@ SSCAN_ERROR0
Definition
hh_scanner.h:17
SSCAN_SUCCESS
@ SSCAN_SUCCESS
Definition
hh_scanner.h:20
t_single_scan_status
enum single_status t_single_scan_status
hh_params
Definition
hh_params.h:27
Generated by
1.17.0