diff --git a/TitanEngineEmulator/Emulator.h b/TitanEngineEmulator/Emulator.h index bac0f6a..b06fca8 100644 --- a/TitanEngineEmulator/Emulator.h +++ b/TitanEngineEmulator/Emulator.h @@ -385,12 +385,42 @@ public: ULONG_PTR GetPE32DataFromMappedFile(ULONG_PTR FileMapVA, DWORD WhichSection, DWORD WhichData) { //TODO + switch(WhichData) + { + case UE_PE_OFFSET: + break; + case UE_IMPORTTABLEADDRESS: + break; + case UE_IMPORTTABLESIZE: + break; + case UE_CHARACTERISTICS: + break; + case UE_DLLCHARACTERISTICS: + break; + case UE_OEP: + break; + case UE_SECTIONNUMBER: + break; + case UE_SECTIONVIRTUALOFFSET: //WhichSection: IMAGE_DIRECTORY_ENTRY_EXCEPTION + break; + case UE_SECTIONVIRTUALSIZE: //WhichSection: IMAGE_DIRECTORY_ENTRY_EXCEPTION + break; + case UE_SECTIONNAME: + break; + } return 0; } ULONG_PTR GetPE32DataW(const wchar_t* szFileName, DWORD WhichSection, DWORD WhichData) { //TODO + switch(WhichData) + { + case UE_IMAGEBASE: + break; + case UE_OEP: + break; + } return 0; } @@ -400,12 +430,6 @@ public: return false; } - long GetPE32SectionNumberFromVA(ULONG_PTR FileMapVA, ULONG_PTR AddressToConvert) - { - //TODO - return 0; - } - bool TLSGrabCallBackDataW(const wchar_t* szFileName, LPVOID ArrayOfCallBacks, LPDWORD NumberOfCallBacks) { //TODO @@ -511,7 +535,12 @@ public: //Generic Breakpoints bool RemoveAllBreakPoints(DWORD RemoveOption) { - //TODO + for(auto & it : mProcesses) + { + auto breakpoints = it.second.breakpoints; //explicit copy + for(const auto & jt : breakpoints) + it.second.DeleteGenericBreakpoint(jt.second); + } return false; } diff --git a/TitanEngineEmulator/TitanEngine.h b/TitanEngineEmulator/TitanEngine.h index fb49a54..0a44c83 100644 --- a/TitanEngineEmulator/TitanEngine.h +++ b/TitanEngineEmulator/TitanEngine.h @@ -109,6 +109,7 @@ #define UE_NUMBEROFRVAANDSIZES 22 #define UE_BASEOFCODE 23 #define UE_BASEOFDATA 24 +#define UE_DLLCHARACTERISTICS 25 //leaving some enum space here for future additions #define UE_SECTIONNAME 40 #define UE_SECTIONVIRTUALOFFSET 41 diff --git a/TitanEngineEmulator/TitanEngineEmulator.cpp b/TitanEngineEmulator/TitanEngineEmulator.cpp index 0ee8759..8c910d1 100644 --- a/TitanEngineEmulator/TitanEngineEmulator.cpp +++ b/TitanEngineEmulator/TitanEngineEmulator.cpp @@ -204,11 +204,6 @@ __declspec(dllexport) bool TITCALL IsFileDLLW(const wchar_t* szFileName, ULONG_P return emu.IsFileDLLW(szFileName, FileMapVA); } -__declspec(dllexport) long TITCALL GetPE32SectionNumberFromVA(ULONG_PTR FileMapVA, ULONG_PTR AddressToConvert) -{ - return emu.GetPE32SectionNumberFromVA(FileMapVA, AddressToConvert); -} - __declspec(dllexport) bool TITCALL TLSGrabCallBackDataW(const wchar_t* szFileName, LPVOID ArrayOfCallBacks, LPDWORD NumberOfCallBacks) { return emu.TLSGrabCallBackDataW(szFileName, ArrayOfCallBacks, NumberOfCallBacks);