/
githubmirror
/
x64dbg
Обзор
Документация
Войти
/
githubmirror
/
x64dbg
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
development
src/dbg/analysis/exceptiondirectoryanalysis.cpp
46 строк
1 KB
Duncan Ogilvie
Start reducing TitanEngine.h
28 авг 2025, 18:56
28 авг 2025, 18:56
e1e954b
Код
Авторство
О чём код?
#include "exceptiondirectoryanalysis.h" #include "module.h" #include "TitanEngine/TitanEngine.h" #include "memory.h" #include "console.h" #include "function.h" ExceptionDirectoryAnalysis::ExceptionDirectoryAnalysis(duint base, duint size) : Analysis(base, size) { #ifdef _WIN64 SHARED_ACQUIRE(LockModules); auto modInfo = ModInfoFromAddr(base); if(modInfo == nullptr) return; mModuleBase = modInfo->base; mRuntimeFunctions = modInfo->runtimeFunctions; #endif // _WIN64 } void ExceptionDirectoryAnalysis::Analyse() { #ifdef _WIN64 for(const auto & Function : mRuntimeFunctions) { auto funcAddr = mModuleBase + Function.BeginAddress; auto funcEnd = mModuleBase + Function.EndAddress - 1; // If within limits... if(inRange(funcAddr) && inRange(funcEnd) && funcAddr <= funcEnd) mFunctions.push_back({ funcAddr, funcEnd }); }; dprintf(QT_TRANSLATE_NOOP("DBG", "%u functions discovered!\n"), DWORD(mFunctions.size())); #else //x32 dputs(QT_TRANSLATE_NOOP("DBG", "This kind of analysis doesn't work on x32 executables...\n")); #endif // _WIN64 } void ExceptionDirectoryAnalysis::SetMarkers() { FunctionDelRange(mBase, mBase + mSize - 1, false); for(const auto & function : mFunctions) FunctionAdd(function.first, function.second, false); }