remove some TitanEngine calls
This commit is contained in:
parent
9394b06c4d
commit
2fd5cedd0d
|
@ -13,16 +13,15 @@
|
|||
///api functions
|
||||
bool apienumexports(duint base, const EXPORTENUMCALLBACK & cbEnum)
|
||||
{
|
||||
duint size;
|
||||
base = MemFindBaseAddr(base, &size);
|
||||
if(!base || !size)
|
||||
return false;
|
||||
Memory<void*> buffer(size, "apienumexports:buffer");
|
||||
if(!MemRead(base, buffer(), size))
|
||||
return false;
|
||||
IMAGE_NT_HEADERS* pnth = (IMAGE_NT_HEADERS*)((duint)buffer() + GetPE32DataFromMappedFile((ULONG_PTR)buffer(), 0, UE_PE_OFFSET));
|
||||
duint export_dir_rva = pnth->OptionalHeader.DataDirectory[0].VirtualAddress;
|
||||
duint export_dir_size = pnth->OptionalHeader.DataDirectory[0].Size;
|
||||
duint export_dir_rva, export_dir_size;
|
||||
{
|
||||
SHARED_ACQUIRE(LockModules);
|
||||
auto modinfo = ModInfoFromAddr(base);
|
||||
if(!modinfo)
|
||||
return false;
|
||||
export_dir_rva = GetPE32DataFromMappedFile(modinfo->fileMapVA, 0, UE_EXPORTTABLEADDRESS);
|
||||
export_dir_size = GetPE32DataFromMappedFile(modinfo->fileMapVA, 0, UE_EXPORTTABLESIZE);
|
||||
}
|
||||
IMAGE_EXPORT_DIRECTORY export_dir;
|
||||
memset(&export_dir, 0, sizeof(export_dir));
|
||||
MemRead((export_dir_rva + base), &export_dir, sizeof(export_dir));
|
||||
|
@ -69,32 +68,26 @@ bool apienumexports(duint base, const EXPORTENUMCALLBACK & cbEnum)
|
|||
|
||||
bool apienumimports(duint base, const IMPORTENUMCALLBACK & cbEnum)
|
||||
{
|
||||
ULONG_PTR importTableRva, importTableSize;
|
||||
{
|
||||
SHARED_ACQUIRE(LockModules);
|
||||
auto modinfo = ModInfoFromAddr(base);
|
||||
if(!modinfo)
|
||||
return false;
|
||||
importTableRva = GetPE32DataFromMappedFile(modinfo->fileMapVA, 0, UE_IMPORTTABLEADDRESS);
|
||||
importTableSize = GetPE32DataFromMappedFile(modinfo->fileMapVA, 0, UE_IMPORTTABLESIZE);
|
||||
}
|
||||
// Variables
|
||||
bool readSuccess;
|
||||
Memory<char*> importName(MAX_IMPORT_SIZE + 1, "apienumimports:buffer");
|
||||
char importModuleName[MAX_MODULE_SIZE + 1] = "";
|
||||
duint regionSize;
|
||||
ULONG_PTR importTableRva, importTableSize;
|
||||
PIMAGE_IMPORT_DESCRIPTOR importTableVa;
|
||||
IMAGE_IMPORT_DESCRIPTOR importDescriptor;
|
||||
PIMAGE_THUNK_DATA imageIATVa, imageINTVa;
|
||||
IMAGE_THUNK_DATA imageOftThunkData, imageFtThunkData;
|
||||
PIMAGE_IMPORT_BY_NAME pImageImportByNameVa;
|
||||
|
||||
// Get page size
|
||||
base = MemFindBaseAddr(base, ®ionSize);
|
||||
if(!base || !regionSize)
|
||||
return false;
|
||||
Memory<void*> buffer(regionSize, "apienumimports:buffer");
|
||||
|
||||
// Read first page into buffer
|
||||
if(!MemRead(base, buffer(), regionSize))
|
||||
return false;
|
||||
|
||||
// Import Table address and size
|
||||
importTableRva = GetPE32DataFromMappedFile((duint)buffer(), 0, UE_IMPORTTABLEADDRESS);
|
||||
importTableSize = GetPE32DataFromMappedFile((duint)buffer(), 0, UE_IMPORTTABLESIZE);
|
||||
|
||||
// Return if no imports
|
||||
if(!importTableSize)
|
||||
return false;
|
||||
|
|
|
@ -224,35 +224,27 @@ bool cbDebugDownloadSymbol(int argc, char* argv[])
|
|||
|
||||
bool cbInstrImageinfo(int argc, char* argv[])
|
||||
{
|
||||
duint mod;
|
||||
SHARED_ACQUIRE(LockModules);
|
||||
MODINFO* info;
|
||||
duint address;
|
||||
if(argc < 2)
|
||||
address = GetContextDataEx(hActiveThread, UE_CIP);
|
||||
else
|
||||
else if(!valfromstring(argv[1], &address))
|
||||
{
|
||||
if(!valfromstring(argv[1], &address))
|
||||
dputs(QT_TRANSLATE_NOOP("DBG", "Invalid argument"));
|
||||
return false;
|
||||
}
|
||||
duint c, dllc, mod;
|
||||
{
|
||||
SHARED_ACQUIRE(LockModules);
|
||||
auto modinfo = ModInfoFromAddr(address);
|
||||
if(!modinfo)
|
||||
{
|
||||
dputs(QT_TRANSLATE_NOOP("DBG", "Invalid argument"));
|
||||
return false;
|
||||
}
|
||||
c = GetPE32DataFromMappedFile(modinfo->fileMapVA, 0, UE_CHARACTERISTICS);
|
||||
dllc = GetPE32DataFromMappedFile(modinfo->fileMapVA, 0, UE_DLLCHARACTERISTICS);
|
||||
mod = modinfo->base;
|
||||
}
|
||||
mod = MemFindBaseAddr(address, nullptr);
|
||||
if(mod == 0)
|
||||
{
|
||||
dputs(QT_TRANSLATE_NOOP("DBG", "Invalid argument"));
|
||||
return false;
|
||||
}
|
||||
info = ModInfoFromAddr(mod);
|
||||
if(info == nullptr)
|
||||
{
|
||||
dputs(QT_TRANSLATE_NOOP("DBG", "Invalid argument"));
|
||||
return false;
|
||||
}
|
||||
auto c = GetPE32DataFromMappedFile(info->fileMapVA, 0, UE_CHARACTERISTICS);
|
||||
auto dllc = GetPE32DataFromMappedFile(info->fileMapVA, 0, UE_DLLCHARACTERISTICS);
|
||||
SHARED_RELEASE();
|
||||
|
||||
auto pFlag = [](ULONG_PTR value, ULONG_PTR flag, const char* name)
|
||||
{
|
||||
|
|
|
@ -2844,6 +2844,7 @@ static void debugLoopFunction(void* lpParameter, bool attach)
|
|||
pDebuggedBase = 0;
|
||||
pCreateProcessBase = 0;
|
||||
isDetachedByUser = false;
|
||||
hActiveThread = nullptr;
|
||||
if(!gDllLoader.empty()) //Delete the DLL loader (#1496)
|
||||
{
|
||||
DeleteFileW(gDllLoader.c_str());
|
||||
|
|
Loading…
Reference in New Issue