diff --git a/SDK/C/TitanEngine.h b/SDK/C/TitanEngine.h index 98022d8..02ef563 100644 --- a/SDK/C/TitanEngine.h +++ b/SDK/C/TitanEngine.h @@ -860,6 +860,7 @@ __declspec(dllexport) void TITCALL LibrarianEnumLibraryInfoW(void* EnumCallBack) __declspec(dllexport) long TITCALL GetActiveProcessId(char* szImageName); __declspec(dllexport) long TITCALL GetActiveProcessIdW(wchar_t* szImageName); __declspec(dllexport) void TITCALL EnumProcessesWithLibrary(char* szLibraryName, void* EnumFunction); +__declspec(dllexport) HANDLE TITCALL TitanOpenProcess(DWORD dwDesiredAccess, bool bInheritHandle, DWORD dwProcessId); // TitanEngine.TLSFixer.functions: __declspec(dllexport) bool TITCALL TLSBreakOnCallBack(LPVOID ArrayOfCallBacks, DWORD NumberOfCallBacks, LPVOID bpxCallBack); __declspec(dllexport) bool TITCALL TLSGrabCallBackData(char* szFileName, LPVOID ArrayOfCallBacks, LPDWORD NumberOfCallBacks); diff --git a/SDK/CPP/TitanEngine.h b/SDK/CPP/TitanEngine.h index 1cc06f8..7c5ca9b 100644 --- a/SDK/CPP/TitanEngine.h +++ b/SDK/CPP/TitanEngine.h @@ -860,6 +860,7 @@ __declspec(dllimport) void TITCALL LibrarianEnumLibraryInfoW(void* EnumCallBack) __declspec(dllimport) long TITCALL GetActiveProcessId(char* szImageName); __declspec(dllimport) long TITCALL GetActiveProcessIdW(wchar_t* szImageName); __declspec(dllimport) void TITCALL EnumProcessesWithLibrary(char* szLibraryName, void* EnumFunction); +__declspec(dllimport) HANDLE TITCALL TitanOpenProcess(DWORD dwDesiredAccess, bool bInheritHandle, DWORD dwProcessId); // TitanEngine.TLSFixer.functions: __declspec(dllimport) bool TITCALL TLSBreakOnCallBack(LPVOID ArrayOfCallBacks, DWORD NumberOfCallBacks, LPVOID bpxCallBack); __declspec(dllimport) bool TITCALL TLSGrabCallBackData(char* szFileName, LPVOID ArrayOfCallBacks, LPDWORD NumberOfCallBacks); diff --git a/SDK/CPP/TitanEngine.hpp b/SDK/CPP/TitanEngine.hpp index 42268af..1b52f9a 100644 --- a/SDK/CPP/TitanEngine.hpp +++ b/SDK/CPP/TitanEngine.hpp @@ -2262,6 +2262,11 @@ protected: { UE::EnumProcessesWithLibrary(szLibraryName, (void*)EnumFunction); } + + static HANDLE Open(DWORD dwDesiredAccess, bool bInheritHandle, DWORD dwProcessId) + { + return UE::TitanOpenProcess(dwDesiredAccess, bInheritHandle, dwProcessId); + } }; class ProcessA @@ -2293,6 +2298,7 @@ public: using ProcessA::GetActiveProcessId; using ProcessW::GetActiveProcessId; using ProcessX::EnumProcessesWithLibrary; + using ProcessX::Open; }; class TLSX diff --git a/TitanEngine/TitanEngine.Process.cpp b/TitanEngine/TitanEngine.Process.cpp index 89b8427..ebe1778 100644 --- a/TitanEngine/TitanEngine.Process.cpp +++ b/TitanEngine/TitanEngine.Process.cpp @@ -130,4 +130,9 @@ __declspec(dllexport) void TITCALL EnumProcessesWithLibrary(char* szLibraryName, } } } +} + +__declspec(dllexport) HANDLE TITCALL TitanOpenProcess(DWORD dwDesiredAccess, bool bInheritHandle, DWORD dwProcessId) +{ + return EngineOpenProcess(dwDesiredAccess, bInheritHandle, dwProcessId); } \ No newline at end of file diff --git a/TitanEngine/TitanEngine.def b/TitanEngine/TitanEngine.def index e4db0d0..a466769 100644 --- a/TitanEngine/TitanEngine.def +++ b/TitanEngine/TitanEngine.def @@ -384,6 +384,7 @@ FindOEPGenericallyW GetActiveProcessId GetActiveProcessIdW EnumProcessesWithLibrary +TitanOpenProcess EngineFakeMissingDependencies EngineDeleteCreatedDependencies EngineCreateMissingDependencies diff --git a/TitanEngine/definitions.h b/TitanEngine/definitions.h index 8485435..97553b1 100644 --- a/TitanEngine/definitions.h +++ b/TitanEngine/definitions.h @@ -343,6 +343,7 @@ __declspec(dllexport) void TITCALL LibrarianEnumLibraryInfoW(void* EnumCallBack) __declspec(dllexport) long TITCALL GetActiveProcessId(char* szImageName); __declspec(dllexport) long TITCALL GetActiveProcessIdW(wchar_t* szImageName); __declspec(dllexport) void TITCALL EnumProcessesWithLibrary(char* szLibraryName, void* EnumFunction); +__declspec(dllexport) HANDLE TITCALL TitanOpenProcess(DWORD dwDesiredAccess, bool bInheritHandle, DWORD dwProcessId); // TitanEngine.TLSFixer.functions: __declspec(dllexport) bool TITCALL TLSBreakOnCallBack(LPVOID ArrayOfCallBacks, DWORD NumberOfCallBacks, LPVOID bpxCallBack); __declspec(dllexport) bool TITCALL TLSGrabCallBackData(char* szFileName, LPVOID ArrayOfCallBacks, LPDWORD NumberOfCallBacks);