/
githubmirror
/
x64dbg
Обзор
Документация
Войти
/
githubmirror
/
x64dbg
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
development
src/dbg/addrinfo.cpp
55 строк
1 KB
Duncan Ogilvie
DBG: use export/import data from modules instead of from memory
01 июл 2018, 20:27
Не верифицирован
01 июл 2018, 20:27
73a5ffe
Код
Авторство
О чём код?
/** @file addrinfo.cpp @brief Implements the addrinfo class. */ #include "addrinfo.h" #include "debugger.h" #include "memory.h" #include "module.h" #include "value.h" ///api functions bool apienumexports(duint base, const EXPORTENUMCALLBACK & cbEnum) { SHARED_ACQUIRE(LockModules); auto modinfo = ModInfoFromAddr(base); if(!modinfo) return false; char modname[MAX_MODULE_SIZE] = ""; sprintf_s(modname, "%s%s", modinfo->name, modinfo->extension); for(auto & modExport : modinfo->exports) { if(modExport.forwarded) { duint remote_addr; if(valfromstring(modExport.forwardName.c_str(), &remote_addr)) cbEnum(base, modname, modExport.name.c_str(), remote_addr); } else { cbEnum(base, modname, modExport.name.c_str(), modExport.rva + base); } } return true; } bool apienumimports(duint base, const IMPORTENUMCALLBACK & cbEnum) { SHARED_ACQUIRE(LockModules); auto modinfo = ModInfoFromAddr(base); if(!modinfo) return false; char modname[MAX_MODULE_SIZE] = ""; sprintf_s(modname, "%s%s", modinfo->name, modinfo->extension); for(auto & modImport : modinfo->imports) { cbEnum(base, modImport.iatRva + base, modImport.name.c_str(), modinfo->importModules.at(modImport.moduleIndex).c_str()); } return true; }