#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: