diff --git a/SDK/C/TitanEngine.h b/SDK/C/TitanEngine.h index 769c484..9776233 100644 --- a/SDK/C/TitanEngine.h +++ b/SDK/C/TitanEngine.h @@ -13,6 +13,20 @@ // Global.Constant.Structure.Declaration: // Engine.External: +#define UE_STRUCT_PE32STRUCT 1 +#define UE_STRUCT_PE64STRUCT 2 +#define UE_STRUCT_PESTRUCT 3 +#define UE_STRUCT_IMPORTENUMDATA 4 +#define UE_STRUCT_THREAD_ITEM_DATA 5 +#define UE_STRUCT_LIBRARY_ITEM_DATA 6 +#define UE_STRUCT_LIBRARY_ITEM_DATAW 7 +#define UE_STRUCT_PROCESS_ITEM_DATA 8 +#define UE_STRUCT_HANDLERARRAY 9 +#define UE_STRUCT_PLUGININFORMATION 10 +#define UE_STRUCT_HOOK_ENTRY 11 +#define UE_STRUCT_FILE_STATUS_INFO 12 +#define UE_STRUCT_FILE_FIX_INFO 13 + #define UE_ACCESS_READ 0 #define UE_ACCESS_WRITE 1 #define UE_ACCESS_ALL 2 @@ -927,6 +941,7 @@ __declspec(dllexport) bool TITCALL EngineFakeMissingDependencies(HANDLE hProcess __declspec(dllexport) bool TITCALL EngineDeleteCreatedDependencies(); __declspec(dllexport) bool TITCALL EngineCreateUnpackerWindow(char* WindowUnpackerTitle, char* WindowUnpackerLongTitle, char* WindowUnpackerName, char* WindowUnpackerAuthor, void* StartUnpackingCallBack); __declspec(dllexport) void TITCALL EngineAddUnpackerWindowLogMessage(char* szLogMessage); +__declspec(dllexport) bool TITCALL EngineCheckStructAlignment(DWORD StructureType, ULONG_PTR StructureSize); // Global.Engine.Extension.Functions: __declspec(dllexport) bool TITCALL ExtensionManagerIsPluginLoaded(char* szPluginName); __declspec(dllexport) bool TITCALL ExtensionManagerIsPluginEnabled(char* szPluginName); diff --git a/SDK/CPP/TitanEngine.h b/SDK/CPP/TitanEngine.h index 3e18c29..ae6d57a 100644 --- a/SDK/CPP/TitanEngine.h +++ b/SDK/CPP/TitanEngine.h @@ -13,6 +13,20 @@ // Global.Constant.Structure.Declaration: // Engine.External: +const BYTE UE_STRUCT_PE32STRUCT = 1; +const BYTE UE_STRUCT_PE64STRUCT = 2; +const BYTE UE_STRUCT_PESTRUCT = 3; +const BYTE UE_STRUCT_IMPORTENUMDATA = 4; +const BYTE UE_STRUCT_THREAD_ITEM_DATA = 5; +const BYTE UE_STRUCT_LIBRARY_ITEM_DATA = 6; +const BYTE UE_STRUCT_LIBRARY_ITEM_DATAW = 7; +const BYTE UE_STRUCT_PROCESS_ITEM_DATA = 8; +const BYTE UE_STRUCT_HANDLERARRAY = 9; +const BYTE UE_STRUCT_PLUGININFORMATION = 10; +const BYTE UE_STRUCT_HOOK_ENTRY = 11; +const BYTE UE_STRUCT_FILE_STATUS_INFO = 12; +const BYTE UE_STRUCT_FILE_FIX_INFO = 13; + const BYTE UE_ACCESS_READ = 0; const BYTE UE_ACCESS_WRITE = 1; const BYTE UE_ACCESS_ALL = 2; @@ -921,6 +935,7 @@ __declspec(dllimport) bool TITCALL EngineFakeMissingDependencies(HANDLE hProcess __declspec(dllimport) bool TITCALL EngineDeleteCreatedDependencies(); __declspec(dllimport) bool TITCALL EngineCreateUnpackerWindow(char* WindowUnpackerTitle, char* WindowUnpackerLongTitle, char* WindowUnpackerName, char* WindowUnpackerAuthor, void* StartUnpackingCallBack); __declspec(dllimport) void TITCALL EngineAddUnpackerWindowLogMessage(char* szLogMessage); +__declspec(dllimport) bool TITCALL EngineCheckStructAlignment(DWORD StructureType, ULONG_PTR StructureSize); // Global.Engine.Extension.Functions: __declspec(dllimport) bool TITCALL ExtensionManagerIsPluginLoaded(char* szPluginName); __declspec(dllimport) bool TITCALL ExtensionManagerIsPluginEnabled(char* szPluginName); diff --git a/SDK/CPP/TitanEngine.hpp b/SDK/CPP/TitanEngine.hpp index a8f8ecf..48148b6 100644 --- a/SDK/CPP/TitanEngine.hpp +++ b/SDK/CPP/TitanEngine.hpp @@ -23,6 +23,23 @@ namespace UE // ---- +enum eStructType : DWORD +{ + UE_STRUCT_PE32STRUCT = UE::UE_STRUCT_PE32STRUCT, + UE_STRUCT_PE64STRUCT = UE::UE_STRUCT_PE64STRUCT, + UE_STRUCT_PESTRUCT = UE::UE_STRUCT_PESTRUCT, + UE_STRUCT_IMPORTENUMDATA = UE::UE_STRUCT_IMPORTENUMDATA, + UE_STRUCT_THREAD_ITEM_DATA = UE::UE_STRUCT_THREAD_ITEM_DATA, + UE_STRUCT_LIBRARY_ITEM_DATA = UE::UE_STRUCT_LIBRARY_ITEM_DATA, + UE_STRUCT_LIBRARY_ITEM_DATAW = UE::UE_STRUCT_LIBRARY_ITEM_DATAW, + UE_STRUCT_PROCESS_ITEM_DATA = UE::UE_STRUCT_PROCESS_ITEM_DATA, + UE_STRUCT_HANDLERARRAY = UE::UE_STRUCT_HANDLERARRAY, + UE_STRUCT_PLUGININFORMATION = UE::UE_STRUCT_PLUGININFORMATION, + UE_STRUCT_HOOK_ENTRY = UE::UE_STRUCT_HOOK_ENTRY, + UE_STRUCT_FILE_STATUS_INFO = UE::UE_STRUCT_FILE_STATUS_INFO, + UE_STRUCT_FILE_FIX_INFO = UE::UE_STRUCT_FILE_FIX_INFO +}; + enum eHideLevel : DWORD { UE_HIDE_PEBONLY = UE::UE_HIDE_PEBONLY, @@ -709,6 +726,8 @@ public: using DumperX::ConvertVAtoFileOffsetEx; using DumperX::ConvertFileOffsetToVA; using DumperX::ConvertFileOffsetToVAEx; + using DumperX::MemoryReadSafe; + using DumperX::MemoryWriteSafe; }; class RealignerA; @@ -2740,6 +2759,10 @@ protected: { return UE::EngineAddUnpackerWindowLogMessage(szLogMessage); } + static bool EngineCheckStructAlignment(DWORD StructureType, ULONG_PTR StructureSize) + { + return UE::EngineCheckStructAlignment(StructureType, StructureSize); + } }; class EngineA @@ -2773,6 +2796,7 @@ public: using EngineX::DeleteCreatedDependencies; using EngineX::CreateUnpackerWindow; using EngineX::AddUnpackerWindowLogMessage; + using EngineX::EngineCheckStructAlignment; }; class ExtensionManager