From 5bc2e682e96c032a679b7f06fb03ebede9574b5b Mon Sep 17 00:00:00 2001 From: Duncan Ogilvie Date: Thu, 12 Nov 2020 04:05:45 +0100 Subject: [PATCH] Implement some more missing APIs --- TitanEngineEmulator/Emulator.h | 8 ++++++++ TitanEngineEmulator/TitanEngineEmulator.cpp | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/TitanEngineEmulator/Emulator.h b/TitanEngineEmulator/Emulator.h index af290d8..a13c8be 100644 --- a/TitanEngineEmulator/Emulator.h +++ b/TitanEngineEmulator/Emulator.h @@ -300,6 +300,14 @@ public: return &mMainProcess; } + ULONG_PTR GetDebuggedFileBaseAddress() + { + auto itr = mProcesses.find(mMainProcess.dwProcessId); + if (itr != mProcesses.end()) + return (ULONG_PTR)itr->second->createProcessInfo.lpBaseOfImage; + return 0; + } + //Stepping void StepOver(LPVOID CallBack) { diff --git a/TitanEngineEmulator/TitanEngineEmulator.cpp b/TitanEngineEmulator/TitanEngineEmulator.cpp index d6dd248..2bcd5c4 100644 --- a/TitanEngineEmulator/TitanEngineEmulator.cpp +++ b/TitanEngineEmulator/TitanEngineEmulator.cpp @@ -135,6 +135,17 @@ __declspec(dllexport) ULONG_PTR TITCALL ImporterGetRemoteAPIAddressEx(const char return 0; } +__declspec(dllexport) ULONG_PTR TITCALL GetDebuggedFileBaseAddress() +{ + return emu.GetDebuggedFileBaseAddress(); +} + +__declspec(dllexport) bool TITCALL DumpProcess(HANDLE hProcess, LPVOID ImageBase, const char* szDumpFileName, ULONG_PTR EntryPoint) +{ + // Just fails https://github.com/x64dbg/testplugin/blob/4ceae85ca8e8b63ff155495311c2c4b92febce99/test.cpp#L289, so not worth implementing + return false; +} + //Registers __declspec(dllexport) ULONG_PTR TITCALL GetContextDataEx(HANDLE hActiveThread, DWORD IndexOfRegister) {