#include <thread_scanner.h>
|
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 hProcess, IN HANDLE hThread, IN LPVOID ctx, IN OUT ThreadScanReport &my_report) |
|
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 (ThreadScanReport *my_report) |
|
bool | reportSuspiciousAddr (ThreadScanReport *my_report, ULONGLONG susp_addr) |
|
bool | filterDotNet (ThreadScanReport &my_report) |
|
A scanner for threads Stack-scan inspired by the idea presented here: https://github.com/thefLink/Hunt-Sleeping-Beacons
Definition at line 262 of file thread_scanner.h.
◆ ThreadScanner()
◆ _analyzeCallStack()
size_t pesieve::ThreadScanner::_analyzeCallStack |
( |
IN OUT ctx_details & | cDetails, |
|
|
OUT IN std::set< ULONGLONG > & | shcCandidates ) |
|
protected |
◆ analyzeCallStackInfo()
size_t pesieve::ThreadScanner::analyzeCallStackInfo |
( |
IN OUT ThreadScanReport & | my_report | ) |
|
|
protected |
◆ checkReturnAddrIntegrity()
bool pesieve::ThreadScanner::checkReturnAddrIntegrity |
( |
IN const std::vector< ULONGLONG > & | callStack, |
|
|
IN OUT ThreadScanReport & | my_report ) |
|
protected |
◆ choosePreferredFunctionName()
std::string pesieve::ThreadScanner::choosePreferredFunctionName |
( |
const std::string & | dbgSymbol, |
|
|
const std::string & | manualSymbol ) |
|
staticprotected |
◆ fetchThreadCtxDetails()
bool pesieve::ThreadScanner::fetchThreadCtxDetails |
( |
IN HANDLE | hProcess, |
|
|
IN HANDLE | hThread, |
|
|
OUT ThreadScanReport & | my_report ) |
|
protected |
◆ fillAreaStats()
◆ fillCallStackInfo()
size_t pesieve::ThreadScanner::fillCallStackInfo |
( |
IN HANDLE | hProcess, |
|
|
IN HANDLE | hThread, |
|
|
IN LPVOID | ctx, |
|
|
IN OUT ThreadScanReport & | my_report ) |
|
protected |
◆ filterDotNet()
◆ initReport()
◆ isAddrInNamedModule()
bool pesieve::ThreadScanner::isAddrInNamedModule |
( |
ULONGLONG | addr | ) |
|
|
protected |
◆ printResolvedAddr()
bool pesieve::ThreadScanner::printResolvedAddr |
( |
const ULONGLONG | addr | ) |
|
|
protected |
◆ printThreadInfo()
◆ reportResolvedCallstack()
void pesieve::ThreadScanner::reportResolvedCallstack |
( |
ThreadScanReport & | my_report | ) |
|
|
protected |
◆ reportSuspiciousAddr()
bool pesieve::ThreadScanner::reportSuspiciousAddr |
( |
ThreadScanReport * | my_report, |
|
|
ULONGLONG | susp_addr ) |
|
protected |
◆ resolveAddrToString()
std::string pesieve::ThreadScanner::resolveAddrToString |
( |
IN ULONGLONG | addr | ) |
|
|
protected |
◆ resolveLowLevelFuncName()
std::string pesieve::ThreadScanner::resolveLowLevelFuncName |
( |
IN const ULONGLONG | addr, |
|
|
OUT OPTIONAL size_t * | disp = nullptr ) |
|
protected |
◆ scanRemote()
◆ scanRemoteThreadCtx()
◆ exportsMap
peconv::ExportsMapper* pesieve::ThreadScanner::exportsMap |
|
protected |
◆ info
◆ isManaged
bool pesieve::ThreadScanner::isManaged |
|
protected |
◆ isReflection
bool pesieve::ThreadScanner::isReflection |
|
protected |
◆ modulesInfo
◆ symbols
The documentation for this class was generated from the following files: