![]() |
PE-sieve
Scans all running processes. Recognizes and dumps a variety of potentially malicious implants (replaced/implanted PEs, shellcodes, hooks, in-memory patches).
|
#include <thread_scanner.h>

Public Member Functions | |
| ThreadScanner (HANDLE hProc, bool _isReflection, bool _isManaged, const util::thread_info &_info, ModulesInfo &_modulesInfo, peconv::ExportsMapper *_exportsMap, ProcessSymbolsManager *_symbols) | |
| virtual ThreadScanReport * | scanRemote () |
| Public Member Functions inherited from pesieve::ProcessFeatureScanner | |
| ProcessFeatureScanner (HANDLE _processHandle) | |
| virtual | ~ProcessFeatureScanner () |
Protected Member Functions | |
| void | initReport (ThreadScanReport &my_report) |
| void | reportResolvedCallstack (ThreadScanReport &my_report) |
| bool | scanRemoteThreadCtx (HANDLE hThread, ThreadScanReport &my_report) |
| bool | fetchThreadCtxDetails (IN HANDLE hProcess, IN HANDLE hThread, OUT ThreadScanReport &my_report) |
| bool | isAddrInNamedModule (ULONGLONG addr) |
| void | printThreadInfo (const util::thread_info &threadi) |
| std::string | resolveLowLevelFuncName (IN const ULONGLONG addr, OUT OPTIONAL size_t *disp=nullptr) |
| std::string | resolveAddrToString (IN ULONGLONG addr) |
| bool | printResolvedAddr (const ULONGLONG addr) |
| size_t | fillCallStackInfo (IN HANDLE hThread, const IN LPVOID ctx, IN OUT ctx_details &cDetails) |
| bool | fetchNativeThreadCtxDetails (IN HANDLE hProcess, IN HANDLE hThread, IN OUT ctx_details &cDetails) |
| size_t | analyzeCallStackInfo (IN OUT ThreadScanReport &my_report) |
| size_t | _analyzeCallStack (IN OUT ctx_details &cDetails, OUT IN std::set< ULONGLONG > &shcCandidates) |
| bool | checkReturnAddrIntegrity (IN const std::vector< ULONGLONG > &callStack, IN OUT ThreadScanReport &my_report) |
| bool | fillAreaStats (SuspAddrReport *my_report) |
| bool | reportSuspiciousAddr (ThreadScanReport *my_report, ULONGLONG susp_addr) |
| bool | filterDotNet (ThreadScanReport &my_report) |
| bool | assessIndicators (ThreadScanReport &my_report) |
Static Protected Member Functions | |
| static std::string | choosePreferredFunctionName (const std::string &dbgSymbol, const std::string &manualSymbol) |
Protected Attributes | |
| bool | isReflection |
| bool | isManaged |
| const util::thread_info & | info |
| ModulesInfo & | modulesInfo |
| peconv::ExportsMapper * | exportsMap |
| ProcessSymbolsManager * | symbols |
| Protected Attributes inherited from pesieve::ProcessFeatureScanner | |
| HANDLE | processHandle |
A scanner for threads Stack-scan inspired by the idea presented here: https://github.com/thefLink/Hunt-Sleeping-Beacons
Definition at line 402 of file thread_scanner.h.
|
inline |
|
protected |
|
protected |
|
protected |
|
protected |
|
staticprotected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Definition at line 729 of file thread_scanner.cpp.
|
protected |
Definition at line 837 of file thread_scanner.cpp.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
virtual |
Perform the scan on the remote process
Implements pesieve::ProcessFeatureScanner.
Definition at line 862 of file thread_scanner.cpp.

|
protected |
|
protected |
Definition at line 446 of file thread_scanner.h.
|
protected |
Definition at line 444 of file thread_scanner.h.
|
protected |
Definition at line 443 of file thread_scanner.h.
|
protected |
Definition at line 442 of file thread_scanner.h.
|
protected |
Definition at line 445 of file thread_scanner.h.
|
protected |
Definition at line 447 of file thread_scanner.h.