From 66c06075b5da6bf3569bdb94987b75adb6050337 Mon Sep 17 00:00:00 2001 From: Duncan Ogilvie Date: Thu, 28 Dec 2017 23:30:10 +0100 Subject: [PATCH] support TLS callbacks in GetPE32Data --- TitanEngineEmulator/Emulator.h | 10 ++++------ TitanEngineEmulator/TitanEngineEmulator.cpp | 5 ----- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/TitanEngineEmulator/Emulator.h b/TitanEngineEmulator/Emulator.h index b1c6a6d..034419e 100644 --- a/TitanEngineEmulator/Emulator.h +++ b/TitanEngineEmulator/Emulator.h @@ -823,6 +823,10 @@ public: return headers->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress; case UE_RELOCATIONTABLESIZE: return headers->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size; + case UE_TLSTABLEADDRESS: + return headers->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress; + case UE_TLSTABLESIZE: + return headers->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].Size; default: __debugbreak(); } @@ -864,12 +868,6 @@ public: return (GetPE32DataW(szFileName, NULL, UE_CHARACTERISTICS) & IMAGE_FILE_DLL) == IMAGE_FILE_DLL; } - bool TLSGrabCallBackDataW(const wchar_t* szFileName, LPVOID ArrayOfCallBacks, LPDWORD NumberOfCallBacks) - { - //TODO - return false; - } - //Software Breakpoints bool SetBPX(ULONG_PTR bpxAddress, DWORD bpxType, LPVOID bpxCallBack) { diff --git a/TitanEngineEmulator/TitanEngineEmulator.cpp b/TitanEngineEmulator/TitanEngineEmulator.cpp index 45bd063..f54d14e 100644 --- a/TitanEngineEmulator/TitanEngineEmulator.cpp +++ b/TitanEngineEmulator/TitanEngineEmulator.cpp @@ -174,11 +174,6 @@ __declspec(dllexport) bool TITCALL IsFileDLLW(const wchar_t* szFileName, ULONG_P return emu.IsFileDLLW(szFileName, FileMapVA); } -__declspec(dllexport) bool TITCALL TLSGrabCallBackDataW(const wchar_t* szFileName, LPVOID ArrayOfCallBacks, LPDWORD NumberOfCallBacks) -{ - return emu.TLSGrabCallBackDataW(szFileName, ArrayOfCallBacks, NumberOfCallBacks); -} - //Software Breakpoints __declspec(dllexport) bool TITCALL SetBPX(ULONG_PTR bpxAddress, DWORD bpxType, LPVOID bpxCallBack) {