- removed SetBPXEx (condentional breakpoints are removed now)

- no more static breakpoint list
- huge refactoring
- bugs fixed in TitanEngine.Breakpoints
This commit is contained in:
mr.exodia 2014-03-04 21:02:52 +01:00
parent ef9ed7ae1f
commit 92451cfe42
46 changed files with 1406 additions and 2000 deletions

View File

@ -675,12 +675,11 @@ __declspec(dllexport) bool TITCALL IsBPXEnabled(ULONG_PTR bpxAddress);
__declspec(dllexport) bool TITCALL EnableBPX(ULONG_PTR bpxAddress); __declspec(dllexport) bool TITCALL EnableBPX(ULONG_PTR bpxAddress);
__declspec(dllexport) bool TITCALL DisableBPX(ULONG_PTR bpxAddress); __declspec(dllexport) bool TITCALL DisableBPX(ULONG_PTR bpxAddress);
__declspec(dllexport) bool TITCALL SetBPX(ULONG_PTR bpxAddress, DWORD bpxType, LPVOID bpxCallBack); __declspec(dllexport) bool TITCALL SetBPX(ULONG_PTR bpxAddress, DWORD bpxType, LPVOID bpxCallBack);
__declspec(dllexport) bool TITCALL SetBPXEx(ULONG_PTR bpxAddress, DWORD bpxType, DWORD NumberOfExecution, DWORD CmpRegister, DWORD CmpCondition, ULONG_PTR CmpValue, LPVOID bpxCallBack, LPVOID bpxCompareCallBack, LPVOID bpxRemoveCallBack);
__declspec(dllexport) bool TITCALL DeleteBPX(ULONG_PTR bpxAddress); __declspec(dllexport) bool TITCALL DeleteBPX(ULONG_PTR bpxAddress);
__declspec(dllexport) bool TITCALL SafeDeleteBPX(ULONG_PTR bpxAddress); __declspec(dllexport) bool TITCALL SafeDeleteBPX(ULONG_PTR bpxAddress);
__declspec(dllexport) bool TITCALL SetAPIBreakPoint(char* szDLLName, char* szAPIName, DWORD bpxType, DWORD bpxPlace, LPVOID bpxCallBack); __declspec(dllexport) bool TITCALL SetAPIBreakPoint(const char* szDLLName, const char* szAPIName, DWORD bpxType, DWORD bpxPlace, LPVOID bpxCallBack);
__declspec(dllexport) bool TITCALL DeleteAPIBreakPoint(char* szDLLName, char* szAPIName, DWORD bpxPlace); __declspec(dllexport) bool TITCALL DeleteAPIBreakPoint(const char* szDLLName, const char* szAPIName, DWORD bpxPlace);
__declspec(dllexport) bool TITCALL SafeDeleteAPIBreakPoint(char* szDLLName, char* szAPIName, DWORD bpxPlace); __declspec(dllexport) bool TITCALL SafeDeleteAPIBreakPoint(const char* szDLLName, const char* szAPIName, DWORD bpxPlace);
__declspec(dllexport) bool TITCALL SetMemoryBPX(ULONG_PTR MemoryStart, SIZE_T SizeOfMemory, LPVOID bpxCallBack); __declspec(dllexport) bool TITCALL SetMemoryBPX(ULONG_PTR MemoryStart, SIZE_T SizeOfMemory, LPVOID bpxCallBack);
__declspec(dllexport) bool TITCALL SetMemoryBPXEx(ULONG_PTR MemoryStart, SIZE_T SizeOfMemory, DWORD BreakPointType, bool RestoreOnHit, LPVOID bpxCallBack); __declspec(dllexport) bool TITCALL SetMemoryBPXEx(ULONG_PTR MemoryStart, SIZE_T SizeOfMemory, DWORD BreakPointType, bool RestoreOnHit, LPVOID bpxCallBack);
__declspec(dllexport) bool TITCALL RemoveMemoryBPX(ULONG_PTR MemoryStart, SIZE_T SizeOfMemory); __declspec(dllexport) bool TITCALL RemoveMemoryBPX(ULONG_PTR MemoryStart, SIZE_T SizeOfMemory);

View File

@ -674,12 +674,11 @@ __declspec(dllimport) bool TITCALL IsBPXEnabled(ULONG_PTR bpxAddress);
__declspec(dllimport) bool TITCALL EnableBPX(ULONG_PTR bpxAddress); __declspec(dllimport) bool TITCALL EnableBPX(ULONG_PTR bpxAddress);
__declspec(dllimport) bool TITCALL DisableBPX(ULONG_PTR bpxAddress); __declspec(dllimport) bool TITCALL DisableBPX(ULONG_PTR bpxAddress);
__declspec(dllimport) bool TITCALL SetBPX(ULONG_PTR bpxAddress, DWORD bpxType, LPVOID bpxCallBack); __declspec(dllimport) bool TITCALL SetBPX(ULONG_PTR bpxAddress, DWORD bpxType, LPVOID bpxCallBack);
__declspec(dllimport) bool TITCALL SetBPXEx(ULONG_PTR bpxAddress, DWORD bpxType, DWORD NumberOfExecution, DWORD CmpRegister, DWORD CmpCondition, ULONG_PTR CmpValue, LPVOID bpxCallBack, LPVOID bpxCompareCallBack, LPVOID bpxRemoveCallBack);
__declspec(dllimport) bool TITCALL DeleteBPX(ULONG_PTR bpxAddress); __declspec(dllimport) bool TITCALL DeleteBPX(ULONG_PTR bpxAddress);
__declspec(dllimport) bool TITCALL SafeDeleteBPX(ULONG_PTR bpxAddress); __declspec(dllimport) bool TITCALL SafeDeleteBPX(ULONG_PTR bpxAddress);
__declspec(dllimport) bool TITCALL SetAPIBreakPoint(char* szDLLName, char* szAPIName, DWORD bpxType, DWORD bpxPlace, LPVOID bpxCallBack); __declspec(dllimport) bool TITCALL SetAPIBreakPoint(const char* szDLLName, const char* szAPIName, DWORD bpxType, DWORD bpxPlace, LPVOID bpxCallBack);
__declspec(dllimport) bool TITCALL DeleteAPIBreakPoint(char* szDLLName, char* szAPIName, DWORD bpxPlace); __declspec(dllimport) bool TITCALL DeleteAPIBreakPoint(const char* szDLLName, const char* szAPIName, DWORD bpxPlace);
__declspec(dllimport) bool TITCALL SafeDeleteAPIBreakPoint(char* szDLLName, char* szAPIName, DWORD bpxPlace); __declspec(dllimport) bool TITCALL SafeDeleteAPIBreakPoint(const char* szDLLName, const char* szAPIName, DWORD bpxPlace);
__declspec(dllimport) bool TITCALL SetMemoryBPX(ULONG_PTR MemoryStart, SIZE_T SizeOfMemory, LPVOID bpxCallBack); __declspec(dllimport) bool TITCALL SetMemoryBPX(ULONG_PTR MemoryStart, SIZE_T SizeOfMemory, LPVOID bpxCallBack);
__declspec(dllimport) bool TITCALL SetMemoryBPXEx(ULONG_PTR MemoryStart, SIZE_T SizeOfMemory, DWORD BreakPointType, bool RestoreOnHit, LPVOID bpxCallBack); __declspec(dllimport) bool TITCALL SetMemoryBPXEx(ULONG_PTR MemoryStart, SIZE_T SizeOfMemory, DWORD BreakPointType, bool RestoreOnHit, LPVOID bpxCallBack);
__declspec(dllimport) bool TITCALL RemoveMemoryBPX(ULONG_PTR MemoryStart, SIZE_T SizeOfMemory); __declspec(dllimport) bool TITCALL RemoveMemoryBPX(ULONG_PTR MemoryStart, SIZE_T SizeOfMemory);

View File

@ -1213,10 +1213,6 @@ protected:
{ {
return UE::SetBPX(bpxAddress, bpxType, (void*)bpxCallBack); return UE::SetBPX(bpxAddress, bpxType, (void*)bpxCallBack);
} }
static bool SetBPXEx(ULONG_PTR bpxAddress, eBPType bpxType, DWORD NumberOfExecution, eContextData CmpRegister, eCompareCondition CmpCondition, ULONG_PTR CmpValue, fBreakPointCallback bpxCallBack, fBreakPointCallback bpxCompareCallBack, fBreakPointCallback bpxRemoveCallBack)
{
return UE::SetBPXEx(bpxAddress, bpxType, NumberOfExecution, CmpRegister, CmpCondition, CmpValue, (void*)bpxCallBack, (void*)bpxCompareCallBack, (void*)bpxRemoveCallBack);
}
static bool DeleteBPX(ULONG_PTR bpxAddress) static bool DeleteBPX(ULONG_PTR bpxAddress)
{ {
return UE::DeleteBPX(bpxAddress); return UE::DeleteBPX(bpxAddress);
@ -1227,15 +1223,15 @@ protected:
} }
static bool SetAPIBreakPoint(const char* szDLLName, const char* szAPIName, eBPType bpxType, eBPPlace bpxPlace, fBreakPointCallback bpxCallBack) static bool SetAPIBreakPoint(const char* szDLLName, const char* szAPIName, eBPType bpxType, eBPPlace bpxPlace, fBreakPointCallback bpxCallBack)
{ {
return UE::SetAPIBreakPoint((char*)szDLLName, (char*)szAPIName, bpxType, bpxPlace, (void*)bpxCallBack); return UE::SetAPIBreakPoint(szDLLName, szAPIName, bpxType, bpxPlace, (void*)bpxCallBack);
} }
static bool DeleteAPIBreakPoint(const char* szDLLName, const char* szAPIName, eBPPlace bpxPlace) static bool DeleteAPIBreakPoint(const char* szDLLName, const char* szAPIName, eBPPlace bpxPlace)
{ {
return UE::DeleteAPIBreakPoint((char*)szDLLName, (char*)szAPIName, bpxPlace); return UE::DeleteAPIBreakPoint(szDLLName, szAPIName, bpxPlace);
} }
static bool SafeDeleteAPIBreakPoint(const char* szDLLName, const char* szAPIName, eBPPlace bpxPlace) static bool SafeDeleteAPIBreakPoint(const char* szDLLName, const char* szAPIName, eBPPlace bpxPlace)
{ {
return UE::SafeDeleteAPIBreakPoint((char*)szDLLName, (char*)szAPIName, bpxPlace); return UE::SafeDeleteAPIBreakPoint(szDLLName, szAPIName, bpxPlace);
} }
static bool SetMemoryBPX(ULONG_PTR MemoryStart, SIZE_T SizeOfMemory, fBreakPointCallback bpxCallBack) static bool SetMemoryBPX(ULONG_PTR MemoryStart, SIZE_T SizeOfMemory, fBreakPointCallback bpxCallBack)
{ {
@ -1529,7 +1525,6 @@ public:
using DebuggerX::EnableBPX; using DebuggerX::EnableBPX;
using DebuggerX::DisableBPX; using DebuggerX::DisableBPX;
using DebuggerX::SetBPX; using DebuggerX::SetBPX;
using DebuggerX::SetBPXEx;
using DebuggerX::DeleteBPX; using DebuggerX::DeleteBPX;
using DebuggerX::SafeDeleteBPX; using DebuggerX::SafeDeleteBPX;
using DebuggerX::SetAPIBreakPoint; using DebuggerX::SetAPIBreakPoint;

View File

@ -533,7 +533,6 @@ const
function EnableBPX(bpxAddress:LongInt): boolean; stdcall; external 'TitanEngine.dll' name 'EnableBPX'; function EnableBPX(bpxAddress:LongInt): boolean; stdcall; external 'TitanEngine.dll' name 'EnableBPX';
function DisableBPX(bpxAddress:LongInt): boolean; stdcall; external 'TitanEngine.dll' name 'DisableBPX'; function DisableBPX(bpxAddress:LongInt): boolean; stdcall; external 'TitanEngine.dll' name 'DisableBPX';
function SetBPX(bpxAddress,bpxType:LongInt; bpxCallBack:Pointer): boolean; stdcall; external 'TitanEngine.dll' name 'SetBPX'; function SetBPX(bpxAddress,bpxType:LongInt; bpxCallBack:Pointer): boolean; stdcall; external 'TitanEngine.dll' name 'SetBPX';
function SetBPXEx(bpxAddress,bpxType,NumberOfExecution,CmpRegister,CmpCondition,CmpValue:LongInt; bpxCallBack,bpxCompareCallBack,bpxRemoveCallBack:Pointer): boolean; stdcall; external 'TitanEngine.dll' name 'SetBPXEx';
function DeleteBPX(bpxAddress:LongInt): boolean; stdcall; external 'TitanEngine.dll' name 'DeleteBPX'; function DeleteBPX(bpxAddress:LongInt): boolean; stdcall; external 'TitanEngine.dll' name 'DeleteBPX';
function SafeDeleteBPX(bpxAddress:LongInt): boolean; stdcall; external 'TitanEngine.dll' name 'SafeDeleteBPX'; function SafeDeleteBPX(bpxAddress:LongInt): boolean; stdcall; external 'TitanEngine.dll' name 'SafeDeleteBPX';
function SetAPIBreakPoint(szDLLName,szAPIName:PAnsiChar; bpxType,bpxPlace:LongInt; bpxCallBack:Pointer):boolean; stdcall; external 'TitanEngine.dll' name 'SetAPIBreakPoint'; function SetAPIBreakPoint(szDLLName,szAPIName:PAnsiChar; bpxType,bpxPlace:LongInt; bpxCallBack:Pointer):boolean; stdcall; external 'TitanEngine.dll' name 'SetAPIBreakPoint';

View File

@ -821,9 +821,6 @@ PROCESS_INFORMATION = alien.defstruct{
-- __declspec(dllexport) bool __stdcall SetBPX(ULONG_PTR bpxAddress, DWORD bpxType, LPVOID bpxCallBack); -- __declspec(dllexport) bool __stdcall SetBPX(ULONG_PTR bpxAddress, DWORD bpxType, LPVOID bpxCallBack);
TitanEngine.SetBPX:types {"long","long","callback",abi="stdcall",ret="byte"} TitanEngine.SetBPX:types {"long","long","callback",abi="stdcall",ret="byte"}
TE_SetBPX = TitanEngine.SetBPX TE_SetBPX = TitanEngine.SetBPX
-- __declspec(dllexport) bool __stdcall SetBPXEx(ULONG_PTR bpxAddress, DWORD bpxType, DWORD NumberOfExecution, DWORD CmpRegister, DWORD CmpCondition, ULONG_PTR CmpValue, LPVOID bpxCallBack, LPVOID bpxCompareCallBack, LPVOID bpxRemoveCallBack);
TitanEngine.SetBPXEx:types {"long","long","long","long","long","long","callback","callback","callback",abi="stdcall",ret="byte"}
TE_SetBPXEx = TitanEngine.SetBPXEx
-- __declspec(dllexport) bool __stdcall DeleteBPX(ULONG_PTR bpxAddress); -- __declspec(dllexport) bool __stdcall DeleteBPX(ULONG_PTR bpxAddress);
TitanEngine.DeleteBPX:types {"long",abi="stdcall",ret="byte"} TitanEngine.DeleteBPX:types {"long",abi="stdcall",ret="byte"}
TE_DeleteBPX = TitanEngine.DeleteBPX TE_DeleteBPX = TitanEngine.DeleteBPX

View File

@ -583,7 +583,6 @@ IsBPXEnabled proto stdcall :DWORD
EnableBPX proto stdcall :DWORD EnableBPX proto stdcall :DWORD
DisableBPX proto stdcall :DWORD DisableBPX proto stdcall :DWORD
SetBPX proto stdcall :DWORD, :DWORD, :LPVOID SetBPX proto stdcall :DWORD, :DWORD, :LPVOID
SetBPXEx proto stdcall :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :LPVOID, :LPVOID, :LPVOID
DeleteBPX proto stdcall :DWORD DeleteBPX proto stdcall :DWORD
SafeDeleteBPX proto stdcall :DWORD SafeDeleteBPX proto stdcall :DWORD
SetAPIBreakPoint proto stdcall :ptr SBYTE, :ptr SBYTE, :DWORD, :DWORD, :LPVOID SetAPIBreakPoint proto stdcall :ptr SBYTE, :ptr SBYTE, :DWORD, :DWORD, :LPVOID

View File

@ -2,8 +2,7 @@
#include "definitions.h" #include "definitions.h"
#include "Global.Breakpoints.h" #include "Global.Breakpoints.h"
int BreakPointSetCount = 0; std::vector<BreakPointDetail> BreakPointBuffer;
extern BreakPointDetail BreakPointBuffer[MAXIMUM_BREAKPOINTS] = {};
ULONG_PTR dr7uint(DR7* dr7) ULONG_PTR dr7uint(DR7* dr7)
{ {

View File

@ -1,8 +1,9 @@
#ifndef _GLOBAL_BREAKPOINTS_H #ifndef _GLOBAL_BREAKPOINTS_H
#define _GLOBAL_BREAKPOINTS_H #define _GLOBAL_BREAKPOINTS_H
extern int BreakPointSetCount; #include <vector>
extern BreakPointDetail BreakPointBuffer[MAXIMUM_BREAKPOINTS];
extern std::vector<BreakPointDetail> BreakPointBuffer;
void uintdr7(ULONG_PTR dr7, DR7* ret); void uintdr7(ULONG_PTR dr7, DR7* ret);
ULONG_PTR dr7uint(DR7* dr7); ULONG_PTR dr7uint(DR7* dr7);

View File

@ -168,10 +168,10 @@ __declspec(dllexport) bool TITCALL ExtensionManagerIsPluginLoaded(char* szPlugin
{ {
if(lstrcmpiA(Plugin[i].PluginName, szPluginName) == NULL) if(lstrcmpiA(Plugin[i].PluginName, szPluginName) == NULL)
{ {
return(true); return true;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL ExtensionManagerIsPluginEnabled(char* szPluginName) __declspec(dllexport) bool TITCALL ExtensionManagerIsPluginEnabled(char* szPluginName)
@ -183,15 +183,15 @@ __declspec(dllexport) bool TITCALL ExtensionManagerIsPluginEnabled(char* szPlugi
{ {
if(!Plugin[i].PluginDisabled) if(!Plugin[i].PluginDisabled)
{ {
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL ExtensionManagerDisableAllPlugins() __declspec(dllexport) bool TITCALL ExtensionManagerDisableAllPlugins()
@ -201,7 +201,7 @@ __declspec(dllexport) bool TITCALL ExtensionManagerDisableAllPlugins()
{ {
Plugin[i].PluginDisabled = true; Plugin[i].PluginDisabled = true;
} }
return(true); return true;
} }
__declspec(dllexport) bool TITCALL ExtensionManagerDisablePlugin(char* szPluginName) __declspec(dllexport) bool TITCALL ExtensionManagerDisablePlugin(char* szPluginName)
@ -212,10 +212,10 @@ __declspec(dllexport) bool TITCALL ExtensionManagerDisablePlugin(char* szPluginN
if(lstrcmpiA(Plugin[i].PluginName, szPluginName) == NULL) if(lstrcmpiA(Plugin[i].PluginName, szPluginName) == NULL)
{ {
Plugin[i].PluginDisabled = true; Plugin[i].PluginDisabled = true;
return(true); return true;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL ExtensionManagerEnableAllPlugins() __declspec(dllexport) bool TITCALL ExtensionManagerEnableAllPlugins()
@ -225,7 +225,7 @@ __declspec(dllexport) bool TITCALL ExtensionManagerEnableAllPlugins()
{ {
Plugin[i].PluginDisabled = false; Plugin[i].PluginDisabled = false;
} }
return(true); return true;
} }
__declspec(dllexport) bool TITCALL ExtensionManagerEnablePlugin(char* szPluginName) __declspec(dllexport) bool TITCALL ExtensionManagerEnablePlugin(char* szPluginName)
@ -236,10 +236,10 @@ __declspec(dllexport) bool TITCALL ExtensionManagerEnablePlugin(char* szPluginNa
if(lstrcmpiA(Plugin[i].PluginName, szPluginName) == NULL) if(lstrcmpiA(Plugin[i].PluginName, szPluginName) == NULL)
{ {
Plugin[i].PluginDisabled = false; Plugin[i].PluginDisabled = false;
return(true); return true;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL ExtensionManagerUnloadAllPlugins() __declspec(dllexport) bool TITCALL ExtensionManagerUnloadAllPlugins()
@ -252,7 +252,7 @@ __declspec(dllexport) bool TITCALL ExtensionManagerUnloadAllPlugins()
Plugin.erase(Plugin.begin() + i); Plugin.erase(Plugin.begin() + i);
} }
} }
return(true); return true;
} }
__declspec(dllexport) bool TITCALL ExtensionManagerUnloadPlugin(char* szPluginName) __declspec(dllexport) bool TITCALL ExtensionManagerUnloadPlugin(char* szPluginName)
@ -274,7 +274,7 @@ __declspec(dllexport) bool TITCALL ExtensionManagerUnloadPlugin(char* szPluginNa
if(FreeLibrary(Plugin[i].PluginBaseAddress)) if(FreeLibrary(Plugin[i].PluginBaseAddress))
{ {
Plugin.erase(Plugin.begin() + i); Plugin.erase(Plugin.begin() + i);
return(true); return true;
} }
} }
} }
@ -283,12 +283,12 @@ __declspec(dllexport) bool TITCALL ExtensionManagerUnloadPlugin(char* szPluginNa
if(FreeLibrary(Plugin[i].PluginBaseAddress)) if(FreeLibrary(Plugin[i].PluginBaseAddress))
{ {
Plugin.erase(Plugin.begin() + i); Plugin.erase(Plugin.begin() + i);
return(true); return true;
} }
} }
} }
} }
return(false); return false;
} }
__declspec(dllexport) void* TITCALL ExtensionManagerGetPluginInfo(char* szPluginName) __declspec(dllexport) void* TITCALL ExtensionManagerGetPluginInfo(char* szPluginName)

View File

@ -35,11 +35,11 @@ bool EngineGetFileDialog(char* GlobalBuffer)
if(!GetOpenFileNameA(&sOpenFileName)) if(!GetOpenFileNameA(&sOpenFileName))
{ {
RtlZeroMemory(&GlobalBuffer[0], 1024); RtlZeroMemory(&GlobalBuffer[0], 1024);
return(false); return false;
} }
else else
{ {
return(true); return true;
} }
} }

View File

@ -11,7 +11,8 @@ MutexLocker::MutexLocker(const char* name)
MutexLocker::~MutexLocker() MutexLocker::~MutexLocker()
{ {
ReleaseMutex(gMutex); if(!bUnlocked)
ReleaseMutex(gMutex);
} }
void MutexLocker::relock() void MutexLocker::relock()

View File

@ -65,7 +65,7 @@ bool EngineIsThereFreeHardwareBreakSlot(LPDWORD FreeRegister)
{ {
*FreeRegister = UE_DR0; *FreeRegister = UE_DR0;
} }
return(true); return true;
} }
else if(DebugRegister[1].DrxEnabled == false) else if(DebugRegister[1].DrxEnabled == false)
{ {
@ -73,7 +73,7 @@ bool EngineIsThereFreeHardwareBreakSlot(LPDWORD FreeRegister)
{ {
*FreeRegister = UE_DR1; *FreeRegister = UE_DR1;
} }
return(true); return true;
} }
else if(DebugRegister[2].DrxEnabled == false) else if(DebugRegister[2].DrxEnabled == false)
{ {
@ -81,7 +81,7 @@ bool EngineIsThereFreeHardwareBreakSlot(LPDWORD FreeRegister)
{ {
*FreeRegister = UE_DR2; *FreeRegister = UE_DR2;
} }
return(true); return true;
} }
else if(DebugRegister[3].DrxEnabled == false) else if(DebugRegister[3].DrxEnabled == false)
{ {
@ -89,9 +89,9 @@ bool EngineIsThereFreeHardwareBreakSlot(LPDWORD FreeRegister)
{ {
*FreeRegister = UE_DR3; *FreeRegister = UE_DR3;
} }
return(true); return true;
} }
return(false); return false;
} }
bool EngineFileExists(char* szFileName) bool EngineFileExists(char* szFileName)
@ -101,11 +101,11 @@ bool EngineFileExists(char* szFileName)
if(hFile != INVALID_HANDLE_VALUE) if(hFile != INVALID_HANDLE_VALUE)
{ {
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
@ -187,7 +187,7 @@ bool EngineCreatePathForFile(char* szFileName)
} }
} }
} }
return(true); return true;
} }
bool EngineCreatePathForFileW(wchar_t* szFileName) bool EngineCreatePathForFileW(wchar_t* szFileName)
@ -225,7 +225,7 @@ bool EngineCreatePathForFileW(wchar_t* szFileName)
} }
} }
} }
return(true); return true;
} }
wchar_t* EngineExtractFileNameW(wchar_t* szFileName) wchar_t* EngineExtractFileNameW(wchar_t* szFileName)
@ -304,10 +304,10 @@ bool EngineIsPointedMemoryString(ULONG_PTR PossibleStringPtr)
} }
if(StringIsValid == true && MaxDisassmSize - i > 4) if(StringIsValid == true && MaxDisassmSize - i > 4)
{ {
return(true); return true;
} }
} }
return(false); return false;
} }
int EnginePointedMemoryStringLength(ULONG_PTR PossibleStringPtr) int EnginePointedMemoryStringLength(ULONG_PTR PossibleStringPtr)
@ -366,9 +366,9 @@ bool EngineCompareResourceString(wchar_t* String1, wchar_t* String2)
RtlMoveMemory(&StringCmp[0], &String1[0], memData->Array.wArrayEntry[0] * 2); RtlMoveMemory(&StringCmp[0], &String1[0], memData->Array.wArrayEntry[0] * 2);
if(lstrcmpiW(StringCmp, String2) == NULL) if(lstrcmpiW(StringCmp, String2) == NULL)
{ {
return(true); return true;
} }
return(false); return false;
} }
long long EngineEstimateNewSectionRVA(ULONG_PTR FileMapVA) long long EngineEstimateNewSectionRVA(ULONG_PTR FileMapVA)
@ -459,7 +459,7 @@ bool EngineExtractForwarderData(ULONG_PTR PossibleStringPtr, LPVOID szFwdDLLName
} }
if(TestChar == 0x00) if(TestChar == 0x00)
{ {
return(false); return false;
} }
PossibleStringPtr--; PossibleStringPtr--;
RtlCopyMemory(szFwdDLLName, lpPossibleStringPtr, PossibleStringPtr - (ULONG_PTR)lpPossibleStringPtr); RtlCopyMemory(szFwdDLLName, lpPossibleStringPtr, PossibleStringPtr - (ULONG_PTR)lpPossibleStringPtr);
@ -477,11 +477,11 @@ bool EngineExtractForwarderData(ULONG_PTR PossibleStringPtr, LPVOID szFwdDLLName
PossibleStringPtr++; PossibleStringPtr++;
} }
RtlCopyMemory(szFwdAPIName, lpPossibleStringPtr, PossibleStringPtr - (ULONG_PTR)lpPossibleStringPtr); RtlCopyMemory(szFwdAPIName, lpPossibleStringPtr, PossibleStringPtr - (ULONG_PTR)lpPossibleStringPtr);
return(true); return true;
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
return(false); return false;
} }
} }
@ -522,13 +522,13 @@ bool EngineExtractResource(char* szResourceName, wchar_t* szExtractedFileName)
} }
else else
{ {
return(false); return false;
} }
} }
} }
return(true); return true;
} }
return(false); return false;
} }
bool EngineIsDependencyPresent(char* szFileName, char* szDependencyForFile, char* szPresentInFolder) bool EngineIsDependencyPresent(char* szFileName, char* szDependencyForFile, char* szPresentInFolder)
@ -549,7 +549,7 @@ bool EngineIsDependencyPresent(char* szFileName, char* szDependencyForFile, char
if(hFile != INVALID_HANDLE_VALUE) if(hFile != INVALID_HANDLE_VALUE)
{ {
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
return(true); return true;
} }
} }
@ -559,7 +559,7 @@ bool EngineIsDependencyPresent(char* szFileName, char* szDependencyForFile, char
if(hFile != INVALID_HANDLE_VALUE) if(hFile != INVALID_HANDLE_VALUE)
{ {
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
return(true); return true;
} }
if(GetSystemDirectoryA(szTryFileName, 512) > NULL) if(GetSystemDirectoryA(szTryFileName, 512) > NULL)
{ {
@ -569,7 +569,7 @@ bool EngineIsDependencyPresent(char* szFileName, char* szDependencyForFile, char
if(hFile != INVALID_HANDLE_VALUE) if(hFile != INVALID_HANDLE_VALUE)
{ {
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
return(true); return true;
} }
} }
if(GetWindowsDirectoryA(szTryFileName, 512) > NULL) if(GetWindowsDirectoryA(szTryFileName, 512) > NULL)
@ -580,7 +580,7 @@ bool EngineIsDependencyPresent(char* szFileName, char* szDependencyForFile, char
if(hFile != INVALID_HANDLE_VALUE) if(hFile != INVALID_HANDLE_VALUE)
{ {
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
return(true); return true;
} }
} }
if(szDependencyForFile != NULL) if(szDependencyForFile != NULL)
@ -600,11 +600,11 @@ bool EngineIsDependencyPresent(char* szFileName, char* szDependencyForFile, char
if(hFile != INVALID_HANDLE_VALUE) if(hFile != INVALID_HANDLE_VALUE)
{ {
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
return(true); return true;
} }
} }
} }
return(false); return false;
} }
bool EngineIsDependencyPresentW(wchar_t* szFileName, wchar_t* szDependencyForFile, wchar_t* szPresentInFolder) bool EngineIsDependencyPresentW(wchar_t* szFileName, wchar_t* szDependencyForFile, wchar_t* szPresentInFolder)
@ -626,7 +626,7 @@ bool EngineIsDependencyPresentW(wchar_t* szFileName, wchar_t* szDependencyForFil
if(hFile != INVALID_HANDLE_VALUE) if(hFile != INVALID_HANDLE_VALUE)
{ {
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
return(true); return true;
} }
} }
if(szFileName != NULL) if(szFileName != NULL)
@ -635,7 +635,7 @@ bool EngineIsDependencyPresentW(wchar_t* szFileName, wchar_t* szDependencyForFil
if(hFile != INVALID_HANDLE_VALUE) if(hFile != INVALID_HANDLE_VALUE)
{ {
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
return(true); return true;
} }
if(GetSystemDirectoryW(szTryFileName, 512) > NULL) if(GetSystemDirectoryW(szTryFileName, 512) > NULL)
{ {
@ -645,7 +645,7 @@ bool EngineIsDependencyPresentW(wchar_t* szFileName, wchar_t* szDependencyForFil
if(hFile != INVALID_HANDLE_VALUE) if(hFile != INVALID_HANDLE_VALUE)
{ {
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
return(true); return true;
} }
} }
@ -657,7 +657,7 @@ bool EngineIsDependencyPresentW(wchar_t* szFileName, wchar_t* szDependencyForFil
if(hFile != INVALID_HANDLE_VALUE) if(hFile != INVALID_HANDLE_VALUE)
{ {
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
return(true); return true;
} }
} }
@ -677,11 +677,11 @@ bool EngineIsDependencyPresentW(wchar_t* szFileName, wchar_t* szDependencyForFil
if(hFile != INVALID_HANDLE_VALUE) if(hFile != INVALID_HANDLE_VALUE)
{ {
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
return(true); return true;
} }
} }
} }
return(false); return false;
} }
bool EngineGetDependencyLocation(char* szFileName, char* szDependencyForFile, void* szLocationOfTheFile, int MaxStringSize) bool EngineGetDependencyLocation(char* szFileName, char* szDependencyForFile, void* szLocationOfTheFile, int MaxStringSize)
@ -702,7 +702,7 @@ bool EngineGetDependencyLocation(char* szFileName, char* szDependencyForFile, vo
RtlCopyMemory(szLocationOfTheFile, szFileName, lstrlenA(szFileName)); RtlCopyMemory(szLocationOfTheFile, szFileName, lstrlenA(szFileName));
} }
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
return(true); return true;
} }
if(GetSystemDirectoryA(szTryFileName, 512) > NULL) if(GetSystemDirectoryA(szTryFileName, 512) > NULL)
{ {
@ -717,7 +717,7 @@ bool EngineGetDependencyLocation(char* szFileName, char* szDependencyForFile, vo
RtlCopyMemory(szLocationOfTheFile, &szTryFileName, lstrlenA(szTryFileName)); RtlCopyMemory(szLocationOfTheFile, &szTryFileName, lstrlenA(szTryFileName));
} }
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
return(true); return true;
} }
} }
if(GetWindowsDirectoryA(szTryFileName, 512) > NULL) if(GetWindowsDirectoryA(szTryFileName, 512) > NULL)
@ -733,7 +733,7 @@ bool EngineGetDependencyLocation(char* szFileName, char* szDependencyForFile, vo
RtlCopyMemory(szLocationOfTheFile, &szTryFileName, lstrlenA(szTryFileName)); RtlCopyMemory(szLocationOfTheFile, &szTryFileName, lstrlenA(szTryFileName));
} }
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
return(true); return true;
} }
} }
if(szDependencyForFile != NULL) if(szDependencyForFile != NULL)
@ -758,11 +758,11 @@ bool EngineGetDependencyLocation(char* szFileName, char* szDependencyForFile, vo
RtlCopyMemory(szLocationOfTheFile, &szTryFileName, lstrlenA(szTryFileName)); RtlCopyMemory(szLocationOfTheFile, &szTryFileName, lstrlenA(szTryFileName));
} }
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
return(true); return true;
} }
} }
} }
return(false); return false;
} }
long EngineHashString(char* szStringToHash) long EngineHashString(char* szStringToHash)
@ -807,7 +807,7 @@ bool EngineIsBadReadPtrEx(LPVOID DataPointer, DWORD DataSize)
VirtualQuery(DataPointer, &MemInfo, sizeof MEMORY_BASIC_INFORMATION); VirtualQuery(DataPointer, &MemInfo, sizeof MEMORY_BASIC_INFORMATION);
if(MemInfo.AllocationProtect == MEM_FREE || MemInfo.AllocationProtect == MEM_PRIVATE) if(MemInfo.AllocationProtect == MEM_FREE || MemInfo.AllocationProtect == MEM_PRIVATE)
{ {
return(false); return false;
} }
DataPointer = (LPVOID)((ULONG_PTR)DataPointer + MemInfo.RegionSize); DataPointer = (LPVOID)((ULONG_PTR)DataPointer + MemInfo.RegionSize);
if(MemInfo.RegionSize > DataSize) if(MemInfo.RegionSize > DataSize)
@ -819,7 +819,7 @@ bool EngineIsBadReadPtrEx(LPVOID DataPointer, DWORD DataSize)
DataSize = DataSize - (DWORD)MemInfo.RegionSize; DataSize = DataSize - (DWORD)MemInfo.RegionSize;
} }
} }
return(true); return true;
} }
bool EngineValidateResource(HMODULE hModule, LPCTSTR lpszType, LPTSTR lpszName, LONG_PTR lParam) bool EngineValidateResource(HMODULE hModule, LPCTSTR lpszType, LPTSTR lpszName, LONG_PTR lParam)
@ -844,20 +844,20 @@ bool EngineValidateResource(HMODULE hModule, LPCTSTR lpszType, LPTSTR lpszName,
if(!EngineIsBadReadPtrEx(ResourceData, ResourceSize)) if(!EngineIsBadReadPtrEx(ResourceData, ResourceSize))
{ {
*((LONG*)lParam) = ReturnData; *((LONG*)lParam) = ReturnData;
return(false); return false;
} }
} }
else else
{ {
*((LONG*)lParam) = ReturnData; *((LONG*)lParam) = ReturnData;
return(false); return false;
} }
} }
return(true); return true;
} }
*((LONG*)lParam) = ReturnData; *((LONG*)lParam) = ReturnData;
return(false); return false;
} }
bool EngineValidateHeader(ULONG_PTR FileMapVA, HANDLE hFileProc, LPVOID ImageBase, PIMAGE_DOS_HEADER DOSHeader, bool IsFile) bool EngineValidateHeader(ULONG_PTR FileMapVA, HANDLE hFileProc, LPVOID ImageBase, PIMAGE_DOS_HEADER DOSHeader, bool IsFile)
@ -891,26 +891,26 @@ bool EngineValidateHeader(ULONG_PTR FileMapVA, HANDLE hFileProc, LPVOID ImageBas
PEHeader32 = (PIMAGE_NT_HEADERS32)((ULONG_PTR)DOSHeader + DOSHeader->e_lfanew); PEHeader32 = (PIMAGE_NT_HEADERS32)((ULONG_PTR)DOSHeader + DOSHeader->e_lfanew);
if(PEHeader32->Signature != 0x4550) if(PEHeader32->Signature != 0x4550)
{ {
return(false); return false;
} }
else else
{ {
return(true); return true;
} }
} }
else else
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
return(false); return false;
} }
} }
else else
@ -928,31 +928,31 @@ bool EngineValidateHeader(ULONG_PTR FileMapVA, HANDLE hFileProc, LPVOID ImageBas
PEHeader32 = (PIMAGE_NT_HEADERS32)(&RemotePEHeader32); PEHeader32 = (PIMAGE_NT_HEADERS32)(&RemotePEHeader32);
if(PEHeader32->Signature != 0x4550) if(PEHeader32->Signature != 0x4550)
{ {
return(false); return false;
} }
else else
{ {
return(true); return true;
} }
} }
else else
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
return(false); return false;
} }
} }
} }
@ -1328,7 +1328,7 @@ bool EngineGetLibraryOrdinalData(ULONG_PTR ModuleBase, LPDWORD ptrOrdinalBase, L
} }
else else
{ {
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -1342,16 +1342,16 @@ bool EngineGetLibraryOrdinalData(ULONG_PTR ModuleBase, LPDWORD ptrOrdinalBase, L
*ptrOrdinalBase = PEExports->Base; *ptrOrdinalBase = PEExports->Base;
*ptrOrdinalCount = PEExports->NumberOfNames; *ptrOrdinalCount = PEExports->NumberOfNames;
} }
return(true); return true;
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
return(false); return false;
} }
return(false); return false;
} }
long long EngineGlobalAPIHandler(HANDLE handleProcess, ULONG_PTR EnumedModulesBases, ULONG_PTR APIAddress, char* szAPIName, DWORD ReturnType) long long EngineGlobalAPIHandler(HANDLE handleProcess, ULONG_PTR EnumedModulesBases, ULONG_PTR APIAddress, const char* szAPIName, DWORD ReturnType)
{ {
unsigned int i = 0; unsigned int i = 0;

View File

@ -50,6 +50,6 @@ long long EngineSimulateNtLoader(char* szFileName);
long long EngineSimulateDllLoader(HANDLE hProcess, char* szFileName); long long EngineSimulateDllLoader(HANDLE hProcess, char* szFileName);
long long EngineGetProcAddress(ULONG_PTR ModuleBase, char* szAPIName); long long EngineGetProcAddress(ULONG_PTR ModuleBase, char* szAPIName);
bool EngineGetLibraryOrdinalData(ULONG_PTR ModuleBase, LPDWORD ptrOrdinalBase, LPDWORD ptrOrdinalCount); bool EngineGetLibraryOrdinalData(ULONG_PTR ModuleBase, LPDWORD ptrOrdinalBase, LPDWORD ptrOrdinalCount);
long long EngineGlobalAPIHandler(HANDLE handleProcess, ULONG_PTR EnumedModulesBases, ULONG_PTR APIAddress, char* szAPIName, DWORD ReturnType); long long EngineGlobalAPIHandler(HANDLE handleProcess, ULONG_PTR EnumedModulesBases, ULONG_PTR APIAddress, const char* szAPIName, DWORD ReturnType);
#endif //_GLOBAL_ENGINE_H #endif //_GLOBAL_ENGINE_H

View File

@ -32,12 +32,12 @@ bool CreateGarbageItem(void* outGargabeItem, int MaxGargabeStringSize)
if(lstrlenW(szGarbageItem) * 2 >= MaxGargabeStringSize) if(lstrlenW(szGarbageItem) * 2 >= MaxGargabeStringSize)
{ {
RtlMoveMemory(outGargabeItem, &szGarbageItem, MaxGargabeStringSize); RtlMoveMemory(outGargabeItem, &szGarbageItem, MaxGargabeStringSize);
return(false); return false;
} }
else else
{ {
RtlMoveMemory(outGargabeItem, &szGarbageItem, lstrlenW(szGarbageItem) * 2); RtlMoveMemory(outGargabeItem, &szGarbageItem, lstrlenW(szGarbageItem) * 2);
return(true); return true;
} }
} }
@ -99,16 +99,16 @@ bool RemoveGarbageItem(wchar_t* szGarbageItem, bool RemoveFolder)
} }
} }
} }
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
} }
@ -146,7 +146,7 @@ bool FillGarbageItem(wchar_t* szGarbageItem, wchar_t* szFileName, void* outGarga
CopyFileW(szFileName, szCopyFileName, false); CopyFileW(szFileName, szCopyFileName, false);
} }
} }
return(true); return true;
} }
void EmptyGarbage() void EmptyGarbage()

View File

@ -13,24 +13,23 @@ GenericOEPTracerData glbEntryTracerData = {};
// Global.FindOEP.functions: // Global.FindOEP.functions:
void GenericOEPVirtualProtectHit() void GenericOEPVirtualProtectHit()
{ {
PBreakPointDetail bpxList = (PBreakPointDetail)BreakPointBuffer;
MEMORY_BASIC_INFORMATION MemInfo; MEMORY_BASIC_INFORMATION MemInfo;
DWORD MaximumBreakPoints = 0; DWORD MaximumBreakPoints = 0;
DWORD NewProtect = 0; DWORD NewProtect = 0;
DWORD OldProtect = 0; DWORD OldProtect = 0;
while(MaximumBreakPoints < MAXIMUM_BREAKPOINTS) int bpcount=BreakPointBuffer.size();
for(int i=0; i<bpcount; i++)
{ {
bpxList = (PBreakPointDetail)((ULONG_PTR)bpxList + sizeof BreakPointDetail); BreakPointDetail curDetail=BreakPointBuffer.at(i);
if(bpxList->BreakPointType == UE_MEMORY && bpxList->BreakPointActive == UE_BPXACTIVE) if(curDetail.BreakPointType == UE_MEMORY && curDetail.BreakPointActive == UE_BPXACTIVE)
{ {
VirtualQueryEx(dbgProcessInformation.hProcess, (LPVOID)bpxList->BreakPointAddress, &MemInfo, sizeof MEMORY_BASIC_INFORMATION); VirtualQueryEx(dbgProcessInformation.hProcess, (LPVOID)curDetail.BreakPointAddress, &MemInfo, sizeof MEMORY_BASIC_INFORMATION);
OldProtect = MemInfo.Protect; OldProtect = MemInfo.Protect;
if(!(OldProtect & PAGE_GUARD)) if(!(OldProtect & PAGE_GUARD))
{ {
NewProtect = OldProtect ^ PAGE_GUARD; NewProtect = OldProtect ^ PAGE_GUARD;
VirtualProtectEx(dbgProcessInformation.hProcess, (LPVOID)bpxList->BreakPointAddress, bpxList->BreakPointSize, NewProtect, &OldProtect); VirtualProtectEx(dbgProcessInformation.hProcess, (LPVOID)curDetail.BreakPointAddress, curDetail.BreakPointSize, NewProtect, &OldProtect);
} }
} }
MaximumBreakPoints++; MaximumBreakPoints++;
@ -286,11 +285,11 @@ bool GenericOEPFileInitW(wchar_t* szFileName, LPVOID TraceInitCallBack, LPVOID C
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
if(glbEntryTracerData.FileIsDLL) if(glbEntryTracerData.FileIsDLL)
{ {
return(false); return false;
} }
else else
{ {
return(true); return true;
} }
} }
else else
@ -298,5 +297,5 @@ bool GenericOEPFileInitW(wchar_t* szFileName, LPVOID TraceInitCallBack, LPVOID C
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
} }
} }
return(false); return false;
} }

File diff suppressed because it is too large Load Diff

View File

@ -319,7 +319,7 @@ __declspec(dllexport) bool TITCALL SetContextFPUDataEx(HANDLE hActiveThread, voi
RtlZeroMemory(&DBGContext, sizeof CONTEXT); RtlZeroMemory(&DBGContext, sizeof CONTEXT);
DBGContext.ContextFlags = CONTEXT_ALL; DBGContext.ContextFlags = CONTEXT_ALL;
if(!GetThreadContext(hActiveThread, &DBGContext)) if(!GetThreadContext(hActiveThread, &DBGContext))
return(false); return false;
#ifndef _WIN64 #ifndef _WIN64
RtlMoveMemory(&DBGContext.FloatSave, FPUSaveArea, sizeof FLOATING_SAVE_AREA); RtlMoveMemory(&DBGContext.FloatSave, FPUSaveArea, sizeof FLOATING_SAVE_AREA);
#else #else

View File

@ -17,7 +17,6 @@ static DWORD engineWaitForDebugEventTimeOut = INFINITE;
__declspec(dllexport) void TITCALL DebugLoop() __declspec(dllexport) void TITCALL DebugLoop()
{ {
int i = NULL;
int j = NULL; int j = NULL;
int k = NULL; int k = NULL;
bool FirstBPX = true; bool FirstBPX = true;
@ -47,7 +46,7 @@ __declspec(dllexport) void TITCALL DebugLoop()
ULONG_PTR ResetBPXAddressTo = 0; ULONG_PTR ResetBPXAddressTo = 0;
ULONG_PTR ResetMemBPXAddress = 0; ULONG_PTR ResetMemBPXAddress = 0;
SIZE_T ResetMemBPXSize = 0; SIZE_T ResetMemBPXSize = 0;
int MaximumBreakPoints = 0; //int MaximumBreakPoints = 0;
ULONG_PTR NumberOfBytesReadWritten = 0; ULONG_PTR NumberOfBytesReadWritten = 0;
MEMORY_BASIC_INFORMATION MemInfo; MEMORY_BASIC_INFORMATION MemInfo;
HANDLE hActiveThread; HANDLE hActiveThread;
@ -348,7 +347,7 @@ __declspec(dllexport) void TITCALL DebugLoop()
hListLibraryPtr->hFileMappingView = hFileMappingView; hListLibraryPtr->hFileMappingView = hFileMappingView;
if(GetMappedFileNameW(GetCurrentProcess(), hFileMappingView, DLLDebugFileName, sizeof(DLLDebugFileName)/sizeof(DLLDebugFileName[0])) > NULL) if(GetMappedFileNameW(GetCurrentProcess(), hFileMappingView, DLLDebugFileName, sizeof(DLLDebugFileName)/sizeof(DLLDebugFileName[0])) > NULL)
{ {
i = lstrlenW(DLLDebugFileName); int i = lstrlenW(DLLDebugFileName);
while(DLLDebugFileName[i] != 0x5C && i >= NULL) while(DLLDebugFileName[i] != 0x5C && i >= NULL)
{ {
i--; i--;
@ -567,201 +566,75 @@ __declspec(dllexport) void TITCALL DebugLoop()
{ {
case STATUS_BREAKPOINT: case STATUS_BREAKPOINT:
{ {
MaximumBreakPoints = 0; bool bFoundBreakPoint=false;
for(MaximumBreakPoints = 0; MaximumBreakPoints < BreakPointSetCount; MaximumBreakPoints++) BreakPointDetail FoundBreakPoint;
int bpcount=BreakPointBuffer.size();
for(int i=0; i<bpcount; i++)
{ {
if(BreakPointBuffer[MaximumBreakPoints].BreakPointAddress == (ULONG_PTR)DBGEvent.u.Exception.ExceptionRecord.ExceptionAddress - (BreakPointBuffer[MaximumBreakPoints].BreakPointSize - 1)) if(BreakPointBuffer.at(i).BreakPointAddress == (ULONG_PTR)DBGEvent.u.Exception.ExceptionRecord.ExceptionAddress - (BreakPointBuffer.at(i).BreakPointSize - 1) &&
(BreakPointBuffer.at(i).BreakPointType == UE_BREAKPOINT || BreakPointBuffer.at(i).BreakPointType == UE_SINGLESHOOT) &&
BreakPointBuffer.at(i).BreakPointActive == UE_BPXACTIVE)
{ {
FoundBreakPoint=BreakPointBuffer.at(i);
bFoundBreakPoint=true;
break; break;
} }
} }
if(BreakPointBuffer[MaximumBreakPoints].BreakPointActive == UE_BPXACTIVE && MaximumBreakPoints < MAXIMUM_BREAKPOINTS) if(bFoundBreakPoint) //breakpoint found
{ {
VirtualQueryEx(dbgProcessInformation.hProcess, (LPVOID)BreakPointBuffer[MaximumBreakPoints].BreakPointAddress, &MemInfo, sizeof MEMORY_BASIC_INFORMATION); VirtualProtectEx(dbgProcessInformation.hProcess, (LPVOID)FoundBreakPoint.BreakPointAddress, FoundBreakPoint.BreakPointSize, PAGE_EXECUTE_READWRITE, &OldProtect);
OldProtect = MemInfo.Protect; if(WriteProcessMemory(dbgProcessInformation.hProcess, (LPVOID)FoundBreakPoint.BreakPointAddress, &FoundBreakPoint.OriginalByte[0], FoundBreakPoint.BreakPointSize, &NumberOfBytesReadWritten))
VirtualProtectEx(dbgProcessInformation.hProcess, (LPVOID)BreakPointBuffer[MaximumBreakPoints].BreakPointAddress, BreakPointBuffer[MaximumBreakPoints].BreakPointSize, PAGE_EXECUTE_READWRITE, &OldProtect);
if(BreakPointBuffer[MaximumBreakPoints].BreakPointActive == UE_BPXACTIVE && (BreakPointBuffer[MaximumBreakPoints].BreakPointType == UE_BREAKPOINT || BreakPointBuffer[MaximumBreakPoints].BreakPointType == UE_SINGLESHOOT) && (BreakPointBuffer[MaximumBreakPoints].NumberOfExecutions == -1 || BreakPointBuffer[MaximumBreakPoints].NumberOfExecutions > 0))
{ {
if(WriteProcessMemory(dbgProcessInformation.hProcess, (LPVOID)BreakPointBuffer[MaximumBreakPoints].BreakPointAddress, &BreakPointBuffer[MaximumBreakPoints].OriginalByte[0], BreakPointBuffer[MaximumBreakPoints].BreakPointSize, &NumberOfBytesReadWritten)) DBGCode = DBG_CONTINUE;
hActiveThread = OpenThread(THREAD_GET_CONTEXT|THREAD_SET_CONTEXT, false, DBGEvent.dwThreadId);
myDBGContext.ContextFlags = CONTEXT_CONTROL;
GetThreadContext(hActiveThread, &myDBGContext);
if(FoundBreakPoint.BreakPointType != UE_SINGLESHOOT)
{ {
DBGCode = DBG_CONTINUE; if(!(myDBGContext.EFlags & 0x100))
hActiveThread = OpenThread(THREAD_GET_CONTEXT|THREAD_SET_CONTEXT|THREAD_QUERY_INFORMATION, false, DBGEvent.dwThreadId);
myDBGContext.ContextFlags = CONTEXT_CONTROL;
GetThreadContext(hActiveThread, &myDBGContext);
if(BreakPointBuffer[MaximumBreakPoints].BreakPointType != UE_SINGLESHOOT)
{ {
if(!(myDBGContext.EFlags & 0x100)) myDBGContext.EFlags = myDBGContext.EFlags ^ 0x100;
{
myDBGContext.EFlags = myDBGContext.EFlags ^ 0x100;
}
}
if(!(myDBGContext.EFlags & 0x10000))
{
myDBGContext.EFlags = myDBGContext.EFlags ^ 0x10000;
} }
}
if(!(myDBGContext.EFlags & 0x10000))
{
myDBGContext.EFlags = myDBGContext.EFlags ^ 0x10000;
}
#if defined(_WIN64) #if defined(_WIN64)
myDBGContext.Rip = myDBGContext.Rip - BreakPointBuffer[MaximumBreakPoints].BreakPointSize; myDBGContext.Rip = myDBGContext.Rip - FoundBreakPoint.BreakPointSize;
#else #else
myDBGContext.Eip = myDBGContext.Eip - BreakPointBuffer[MaximumBreakPoints].BreakPointSize; myDBGContext.Eip = myDBGContext.Eip - FoundBreakPoint.BreakPointSize;
#endif #endif
SetThreadContext(hActiveThread, &myDBGContext); SetThreadContext(hActiveThread, &myDBGContext);
EngineCloseHandle(hActiveThread); EngineCloseHandle(hActiveThread);
VirtualProtectEx(dbgProcessInformation.hProcess, (LPVOID)BreakPointBuffer[MaximumBreakPoints].BreakPointAddress, BreakPointBuffer[MaximumBreakPoints].BreakPointSize, OldProtect, &OldProtect); VirtualProtectEx(dbgProcessInformation.hProcess, (LPVOID)FoundBreakPoint.BreakPointAddress, FoundBreakPoint.BreakPointSize, OldProtect, &OldProtect);
myCustomBreakPoint = (fCustomBreakPoint)((LPVOID)BreakPointBuffer[MaximumBreakPoints].ExecuteCallBack); myCustomBreakPoint = (fCustomBreakPoint)((LPVOID)FoundBreakPoint.ExecuteCallBack);
if(BreakPointBuffer[MaximumBreakPoints].NumberOfExecutions != -1 && BreakPointBuffer[MaximumBreakPoints].NumberOfExecutions != 0) //execute callback
{ __try
BreakPointBuffer[MaximumBreakPoints].NumberOfExecutions--; {
} myCustomBreakPoint();
if(BreakPointBuffer[MaximumBreakPoints].CmpCondition != UE_CMP_NOCONDITION) }
{ __except(EXCEPTION_EXECUTE_HANDLER)
CompareResult = false; {
CmpValue1 = (ULONG_PTR)GetContextData((DWORD)BreakPointBuffer[MaximumBreakPoints].CmpRegister);
myCustomBreakPoint = (fCustomBreakPoint)((LPVOID)BreakPointBuffer[MaximumBreakPoints].CompareCallBack);
if(BreakPointBuffer[MaximumBreakPoints].CmpCondition == UE_CMP_EQUAL)
{
CmpValue2 = BreakPointBuffer[MaximumBreakPoints].CmpValue;
if(CmpValue1 == CmpValue2)
{
CompareResult = true;
}
}
else if(BreakPointBuffer[MaximumBreakPoints].CmpCondition == UE_CMP_NOTEQUAL)
{
CmpValue2 = BreakPointBuffer[MaximumBreakPoints].CmpValue;
if(CmpValue1 != CmpValue2)
{
CompareResult = true;
}
}
else if(BreakPointBuffer[MaximumBreakPoints].CmpCondition == UE_CMP_GREATER)
{
CmpValue2 = BreakPointBuffer[MaximumBreakPoints].CmpValue;
if(CmpValue1 > CmpValue2)
{
CompareResult = true;
}
}
else if(BreakPointBuffer[MaximumBreakPoints].CmpCondition == UE_CMP_GREATEROREQUAL)
{
CmpValue2 = BreakPointBuffer[MaximumBreakPoints].CmpValue;
if(CmpValue1 >= CmpValue2)
{
CompareResult = true;
}
}
else if(BreakPointBuffer[MaximumBreakPoints].CmpCondition == UE_CMP_LOWER)
{
CmpValue2 = BreakPointBuffer[MaximumBreakPoints].CmpValue;
if(CmpValue1 < CmpValue2)
{
CompareResult = true;
}
}
else if(BreakPointBuffer[MaximumBreakPoints].CmpCondition == UE_CMP_LOWEROREQUAL)
{
CmpValue2 = BreakPointBuffer[MaximumBreakPoints].CmpValue;
if(CmpValue1 <= CmpValue2)
{
CompareResult = true;
}
}
else if(BreakPointBuffer[MaximumBreakPoints].CmpCondition == UE_CMP_REG_EQUAL)
{
CmpValue2 = (ULONG_PTR)GetContextData((DWORD)BreakPointBuffer[MaximumBreakPoints].CmpValue);
if(CmpValue1 == CmpValue2)
{
CompareResult = true;
}
}
else if(BreakPointBuffer[MaximumBreakPoints].CmpCondition == UE_CMP_REG_NOTEQUAL)
{
CmpValue2 = (ULONG_PTR)GetContextData((DWORD)BreakPointBuffer[MaximumBreakPoints].CmpValue);
if(CmpValue1 != CmpValue2)
{
CompareResult = true;
}
}
else if(BreakPointBuffer[MaximumBreakPoints].CmpCondition == UE_CMP_REG_GREATER)
{
CmpValue2 = (ULONG_PTR)GetContextData((DWORD)BreakPointBuffer[MaximumBreakPoints].CmpValue);
if(CmpValue1 > CmpValue2)
{
CompareResult = true;
}
}
else if(BreakPointBuffer[MaximumBreakPoints].CmpCondition == UE_CMP_REG_GREATEROREQUAL)
{
CmpValue2 = (ULONG_PTR)GetContextData((DWORD)BreakPointBuffer[MaximumBreakPoints].CmpValue);
if(CmpValue1 >= CmpValue2)
{
CompareResult = true;
}
}
else if(BreakPointBuffer[MaximumBreakPoints].CmpCondition == UE_CMP_REG_LOWER)
{
CmpValue2 = (ULONG_PTR)GetContextData((DWORD)BreakPointBuffer[MaximumBreakPoints].CmpValue);
if(CmpValue1 < CmpValue2)
{
CompareResult = true;
}
}
else if(BreakPointBuffer[MaximumBreakPoints].CmpCondition == UE_CMP_REG_LOWEROREQUAL)
{
CmpValue2 = (ULONG_PTR)GetContextData((DWORD)BreakPointBuffer[MaximumBreakPoints].CmpValue);
if(CmpValue1 <= CmpValue2)
{
CompareResult = true;
}
}
if(CompareResult)
{
__try
{
myCustomBreakPoint();
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
} }
} if(FoundBreakPoint.BreakPointType != UE_SINGLESHOOT)
} {
else DisableBPX((ULONG_PTR)FoundBreakPoint.BreakPointAddress);
{ ResetBPXSize = FoundBreakPoint.BreakPointSize - 1;
__try ResetBPXAddressTo = (ULONG_PTR)FoundBreakPoint.BreakPointAddress;
{ ResetBPX = true;
myCustomBreakPoint();
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
}
}
if(BreakPointBuffer[MaximumBreakPoints].BreakPointType != UE_SINGLESHOOT)
{
DisableBPX((ULONG_PTR)BreakPointBuffer[MaximumBreakPoints].BreakPointAddress);
ResetBPXSize = BreakPointBuffer[MaximumBreakPoints].BreakPointSize - 1;
ResetBPXAddressTo = (ULONG_PTR)BreakPointBuffer[MaximumBreakPoints].BreakPointAddress;
ResetBPX = true;
}
else
{
DeleteBPX((ULONG_PTR)BreakPointBuffer[MaximumBreakPoints].BreakPointAddress);
ResetBPXSize = BreakPointBuffer[MaximumBreakPoints].BreakPointSize - 1;
ResetBPXAddressTo = NULL;
ResetBPX = false;
}
} }
else else
{ {
VirtualProtectEx(dbgProcessInformation.hProcess, (LPVOID)BreakPointBuffer[MaximumBreakPoints].BreakPointAddress, BreakPointBuffer[MaximumBreakPoints].BreakPointSize, OldProtect, &OldProtect); DeleteBPX((ULONG_PTR)FoundBreakPoint.BreakPointAddress);
DBGCode = DBG_CONTINUE; ResetBPXSize = FoundBreakPoint.BreakPointSize - 1;
ResetBPXAddressTo = NULL;
ResetBPX = false;
} }
} }
else else
{ VirtualProtectEx(dbgProcessInformation.hProcess, (LPVOID)FoundBreakPoint.BreakPointAddress, FoundBreakPoint.BreakPointSize, OldProtect, &OldProtect);
VirtualProtectEx(dbgProcessInformation.hProcess, (LPVOID)BreakPointBuffer[MaximumBreakPoints].BreakPointAddress, BreakPointBuffer[MaximumBreakPoints].BreakPointSize, OldProtect, &OldProtect);
DBGCode = DBG_EXCEPTION_NOT_HANDLED;
}
} }
else //breakpoint not in list else //breakpoint not in list
{ {
@ -807,7 +680,7 @@ __declspec(dllexport) void TITCALL DebugLoop()
} }
if(engineTLSBreakOnCallBack) //set TLS callback breakpoints if(engineTLSBreakOnCallBack) //set TLS callback breakpoints
{ {
i = NULL; int i = NULL;
while(tlsCallBackList[i] != NULL) while(tlsCallBackList[i] != NULL)
{ {
SetBPX((ULONG_PTR)tlsCallBackList[i], UE_SINGLESHOOT, (LPVOID)engineTLSBreakOnCallBackAddress); SetBPX((ULONG_PTR)tlsCallBackList[i], UE_SINGLESHOOT, (LPVOID)engineTLSBreakOnCallBackAddress);
@ -1115,47 +988,80 @@ __declspec(dllexport) void TITCALL DebugLoop()
case STATUS_GUARD_PAGE_VIOLATION: case STATUS_GUARD_PAGE_VIOLATION:
{ {
MemoryBpxFound = false;
MaximumBreakPoints = 0;
ULONG_PTR bpaddr; ULONG_PTR bpaddr;
for(MaximumBreakPoints = 0; MaximumBreakPoints < BreakPointSetCount; MaximumBreakPoints++) bool bFoundBreakPoint=false;
BreakPointDetail FoundBreakPoint;
int bpcount=BreakPointBuffer.size();
for(int i=0; i<bpcount; i++)
{ {
ULONG_PTR addr=BreakPointBuffer[MaximumBreakPoints].BreakPointAddress; ULONG_PTR addr=BreakPointBuffer.at(i).BreakPointAddress;
bpaddr=(ULONG_PTR)DBGEvent.u.Exception.ExceptionRecord.ExceptionInformation[1]; //page accessed bpaddr=(ULONG_PTR)DBGEvent.u.Exception.ExceptionRecord.ExceptionInformation[1]; //page accessed
if(bpaddr>=addr && bpaddr<(addr+BreakPointBuffer.at(i).BreakPointSize) &&
if(((BreakPointBuffer[MaximumBreakPoints].BreakPointType >= UE_MEMORY) && (BreakPointBuffer[MaximumBreakPoints].BreakPointType <= UE_MEMORY_EXECUTE)) && bpaddr>=addr && bpaddr<(addr+BreakPointBuffer[MaximumBreakPoints].BreakPointSize)) (BreakPointBuffer.at(i).BreakPointType == UE_MEMORY ||
BreakPointBuffer.at(i).BreakPointType == UE_MEMORY_READ ||
BreakPointBuffer.at(i).BreakPointType == UE_MEMORY_WRITE ||
BreakPointBuffer.at(i).BreakPointType == UE_MEMORY_EXECUTE) &&
BreakPointBuffer.at(i).BreakPointActive == UE_BPXACTIVE)
{ {
MemoryBpxFound = true; FoundBreakPoint=BreakPointBuffer.at(i);
bFoundBreakPoint=true;
break; break;
} }
} }
if(MaximumBreakPoints < MAXIMUM_BREAKPOINTS || MemoryBpxFound == true) //found memory breakpoint if(bFoundBreakPoint) //found memory breakpoint
{ {
if(BreakPointBuffer[MaximumBreakPoints].BreakPointActive == UE_BPXACTIVE) //memory breakpoint is active hActiveThread = OpenThread(THREAD_GET_CONTEXT|THREAD_SET_CONTEXT, false, DBGEvent.dwThreadId);
myDBGContext.ContextFlags = CONTEXT_CONTROL;
GetThreadContext(hActiveThread, &myDBGContext);
DBGCode = DBG_CONTINUE; //debugger handled the exception
MemoryBpxCallBack = FoundBreakPoint.ExecuteCallBack;
if(FoundBreakPoint.BreakPointType == UE_MEMORY) //READ|WRITE|EXECUTE
{ {
hActiveThread = OpenThread(THREAD_GET_CONTEXT|THREAD_SET_CONTEXT|THREAD_QUERY_INFORMATION, false, DBGEvent.dwThreadId); if(FoundBreakPoint.MemoryBpxRestoreOnHit != 1)
myDBGContext.ContextFlags = CONTEXT_CONTROL;
GetThreadContext(hActiveThread, &myDBGContext);
DBGCode = DBG_CONTINUE; //debugger handled the exception
MemoryBpxCallBack = BreakPointBuffer[MaximumBreakPoints].ExecuteCallBack;
if(BreakPointBuffer[MaximumBreakPoints].BreakPointType == UE_MEMORY) //READ|WRITE|EXECUTE
{ {
if(BreakPointBuffer[MaximumBreakPoints].MemoryBpxRestoreOnHit != 1) RemoveMemoryBPX(FoundBreakPoint.BreakPointAddress, FoundBreakPoint.BreakPointSize);
}
else
{
if(!(myDBGContext.EFlags & 0x100))
{ {
RemoveMemoryBPX(BreakPointBuffer[MaximumBreakPoints].BreakPointAddress, BreakPointBuffer[MaximumBreakPoints].BreakPointSize); myDBGContext.EFlags = myDBGContext.EFlags ^ 0x100;
} }
else SetThreadContext(hActiveThread, &myDBGContext);
ResetMemBPXAddress = FoundBreakPoint.BreakPointAddress;
ResetMemBPXSize = FoundBreakPoint.BreakPointSize;
ResetMemBPX = true;
}
myCustomHandler = (fCustomHandler)(MemoryBpxCallBack);
__try
{
myCustomHandler((void*)bpaddr);
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
}
}
else if(FoundBreakPoint.BreakPointType == UE_MEMORY_READ) //READ
{
if(FoundBreakPoint.MemoryBpxRestoreOnHit != 1) //do not restore the memory breakpoint
{
if(DBGEvent.u.Exception.ExceptionRecord.ExceptionInformation[0] == 0) //read operation
RemoveMemoryBPX(FoundBreakPoint.BreakPointAddress, FoundBreakPoint.BreakPointSize);
}
else //restore the memory breakpoint
{
if(!(myDBGContext.EFlags & 0x100))
{ {
if(!(myDBGContext.EFlags & 0x100)) myDBGContext.EFlags = myDBGContext.EFlags ^ 0x100;
{
myDBGContext.EFlags = myDBGContext.EFlags ^ 0x100;
}
SetThreadContext(hActiveThread, &myDBGContext);
ResetMemBPXAddress = BreakPointBuffer[MaximumBreakPoints].BreakPointAddress;
ResetMemBPXSize = BreakPointBuffer[MaximumBreakPoints].BreakPointSize;
ResetMemBPX = true;
} }
SetThreadContext(hActiveThread, &myDBGContext);
ResetMemBPXAddress = FoundBreakPoint.BreakPointAddress;
ResetMemBPXSize = FoundBreakPoint.BreakPointSize;
ResetMemBPX = true;
}
if(DBGEvent.u.Exception.ExceptionRecord.ExceptionInformation[0] == 0) //read operation
{
myCustomHandler = (fCustomHandler)(MemoryBpxCallBack); myCustomHandler = (fCustomHandler)(MemoryBpxCallBack);
__try __try
{ {
@ -1166,140 +1072,105 @@ __declspec(dllexport) void TITCALL DebugLoop()
} }
} }
else if(BreakPointBuffer[MaximumBreakPoints].BreakPointType == UE_MEMORY_READ) //READ else //no read operation, restore breakpoint
{ {
if(BreakPointBuffer[MaximumBreakPoints].MemoryBpxRestoreOnHit != 1) //do not restore the memory breakpoint if(!(myDBGContext.EFlags & 0x100))
{ {
if(DBGEvent.u.Exception.ExceptionRecord.ExceptionInformation[0] == 0) //read operation myDBGContext.EFlags = myDBGContext.EFlags ^ 0x100;
RemoveMemoryBPX(BreakPointBuffer[MaximumBreakPoints].BreakPointAddress, BreakPointBuffer[MaximumBreakPoints].BreakPointSize);
}
else //restore the memory breakpoint
{
if(!(myDBGContext.EFlags & 0x100))
{
myDBGContext.EFlags = myDBGContext.EFlags ^ 0x100;
}
SetThreadContext(hActiveThread, &myDBGContext);
ResetMemBPXAddress = BreakPointBuffer[MaximumBreakPoints].BreakPointAddress;
ResetMemBPXSize = BreakPointBuffer[MaximumBreakPoints].BreakPointSize;
ResetMemBPX = true;
}
if(DBGEvent.u.Exception.ExceptionRecord.ExceptionInformation[0] == 0) //read operation
{
myCustomHandler = (fCustomHandler)(MemoryBpxCallBack);
__try
{
myCustomHandler((void*)bpaddr);
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
}
}
else //no read operation, restore breakpoint
{
if(!(myDBGContext.EFlags & 0x100))
{
myDBGContext.EFlags = myDBGContext.EFlags ^ 0x100;
}
SetThreadContext(hActiveThread, &myDBGContext);
ResetMemBPXAddress = BreakPointBuffer[MaximumBreakPoints].BreakPointAddress;
ResetMemBPXSize = BreakPointBuffer[MaximumBreakPoints].BreakPointSize;
ResetMemBPX = true;
} }
SetThreadContext(hActiveThread, &myDBGContext);
ResetMemBPXAddress = FoundBreakPoint.BreakPointAddress;
ResetMemBPXSize = FoundBreakPoint.BreakPointSize;
ResetMemBPX = true;
} }
else if(BreakPointBuffer[MaximumBreakPoints].BreakPointType == UE_MEMORY_WRITE) //WRITE }
else if(FoundBreakPoint.BreakPointType == UE_MEMORY_WRITE) //WRITE
{
if(FoundBreakPoint.MemoryBpxRestoreOnHit != 1) //remove breakpoint
{ {
if(BreakPointBuffer[MaximumBreakPoints].MemoryBpxRestoreOnHit != 1) //remove breakpoint
{
if(DBGEvent.u.Exception.ExceptionRecord.ExceptionInformation[0] == 1) //write operation
RemoveMemoryBPX(BreakPointBuffer[MaximumBreakPoints].BreakPointAddress, BreakPointBuffer[MaximumBreakPoints].BreakPointSize);
}
else //restore breakpoint after trap flag
{
if(!(myDBGContext.EFlags & 0x100))
{
myDBGContext.EFlags = myDBGContext.EFlags ^ 0x100;
}
SetThreadContext(hActiveThread, &myDBGContext);
ResetMemBPXAddress = BreakPointBuffer[MaximumBreakPoints].BreakPointAddress;
ResetMemBPXSize = BreakPointBuffer[MaximumBreakPoints].BreakPointSize;
ResetMemBPX = true;
}
if(DBGEvent.u.Exception.ExceptionRecord.ExceptionInformation[0] == 1) //write operation if(DBGEvent.u.Exception.ExceptionRecord.ExceptionInformation[0] == 1) //write operation
RemoveMemoryBPX(FoundBreakPoint.BreakPointAddress, FoundBreakPoint.BreakPointSize);
}
else //restore breakpoint after trap flag
{
if(!(myDBGContext.EFlags & 0x100))
{ {
myCustomHandler = (fCustomHandler)(MemoryBpxCallBack); myDBGContext.EFlags = myDBGContext.EFlags ^ 0x100;
__try
{
myCustomHandler((void*)bpaddr);
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
}
} }
else //no write operation, restore breakpoint SetThreadContext(hActiveThread, &myDBGContext);
ResetMemBPXAddress = FoundBreakPoint.BreakPointAddress;
ResetMemBPXSize = FoundBreakPoint.BreakPointSize;
ResetMemBPX = true;
}
if(DBGEvent.u.Exception.ExceptionRecord.ExceptionInformation[0] == 1) //write operation
{
myCustomHandler = (fCustomHandler)(MemoryBpxCallBack);
__try
{ {
if(!(myDBGContext.EFlags & 0x100)) myCustomHandler((void*)bpaddr);
{ }
myDBGContext.EFlags = myDBGContext.EFlags ^ 0x100; __except(EXCEPTION_EXECUTE_HANDLER)
} {
SetThreadContext(hActiveThread, &myDBGContext);
ResetMemBPXAddress = BreakPointBuffer[MaximumBreakPoints].BreakPointAddress;
ResetMemBPXSize = BreakPointBuffer[MaximumBreakPoints].BreakPointSize;
ResetMemBPX = true;
} }
} }
else if(BreakPointBuffer[MaximumBreakPoints].BreakPointType == UE_MEMORY_EXECUTE) //EXECUTE else //no write operation, restore breakpoint
{ {
if(BreakPointBuffer[MaximumBreakPoints].MemoryBpxRestoreOnHit != 1) if(!(myDBGContext.EFlags & 0x100))
{ {
if(DBGEvent.u.Exception.ExceptionRecord.ExceptionInformation[0] == 8 && //data execution prevention (DEP) violation myDBGContext.EFlags = myDBGContext.EFlags ^ 0x100;
(ULONG_PTR)DBGEvent.u.Exception.ExceptionRecord.ExceptionAddress == DBGEvent.u.Exception.ExceptionRecord.ExceptionInformation[1]) //exception address == read address
RemoveMemoryBPX(BreakPointBuffer[MaximumBreakPoints].BreakPointAddress, BreakPointBuffer[MaximumBreakPoints].BreakPointSize);
}
else
{
if(!(myDBGContext.EFlags & 0x100))
{
myDBGContext.EFlags = myDBGContext.EFlags ^ 0x100;
}
SetThreadContext(hActiveThread, &myDBGContext);
ResetMemBPXAddress = BreakPointBuffer[MaximumBreakPoints].BreakPointAddress;
ResetMemBPXSize = BreakPointBuffer[MaximumBreakPoints].BreakPointSize;
ResetMemBPX = true;
} }
SetThreadContext(hActiveThread, &myDBGContext);
ResetMemBPXAddress = FoundBreakPoint.BreakPointAddress;
ResetMemBPXSize = FoundBreakPoint.BreakPointSize;
ResetMemBPX = true;
}
}
else if(FoundBreakPoint.BreakPointType == UE_MEMORY_EXECUTE) //EXECUTE
{
if(FoundBreakPoint.MemoryBpxRestoreOnHit != 1)
{
if(DBGEvent.u.Exception.ExceptionRecord.ExceptionInformation[0] == 8 && //data execution prevention (DEP) violation if(DBGEvent.u.Exception.ExceptionRecord.ExceptionInformation[0] == 8 && //data execution prevention (DEP) violation
(ULONG_PTR)DBGEvent.u.Exception.ExceptionRecord.ExceptionAddress == DBGEvent.u.Exception.ExceptionRecord.ExceptionInformation[1]) //exception address == read address (ULONG_PTR)DBGEvent.u.Exception.ExceptionRecord.ExceptionAddress == DBGEvent.u.Exception.ExceptionRecord.ExceptionInformation[1]) //exception address == read address
RemoveMemoryBPX(FoundBreakPoint.BreakPointAddress, FoundBreakPoint.BreakPointSize);
}
else
{
if(!(myDBGContext.EFlags & 0x100))
{ {
myCustomHandler = (fCustomHandler)(MemoryBpxCallBack); myDBGContext.EFlags = myDBGContext.EFlags ^ 0x100;
__try
{
myCustomHandler((void*)bpaddr);
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
}
} }
else //no execute operation, restore breakpoint SetThreadContext(hActiveThread, &myDBGContext);
ResetMemBPXAddress = FoundBreakPoint.BreakPointAddress;
ResetMemBPXSize = FoundBreakPoint.BreakPointSize;
ResetMemBPX = true;
}
if(DBGEvent.u.Exception.ExceptionRecord.ExceptionInformation[0] == 8 && //data execution prevention (DEP) violation
(ULONG_PTR)DBGEvent.u.Exception.ExceptionRecord.ExceptionAddress == DBGEvent.u.Exception.ExceptionRecord.ExceptionInformation[1]) //exception address == read address
{
myCustomHandler = (fCustomHandler)(MemoryBpxCallBack);
__try
{ {
if(!(myDBGContext.EFlags & 0x100)) myCustomHandler((void*)bpaddr);
{ }
myDBGContext.EFlags = myDBGContext.EFlags ^ 0x100; __except(EXCEPTION_EXECUTE_HANDLER)
} {
SetThreadContext(hActiveThread, &myDBGContext);
ResetMemBPXAddress = BreakPointBuffer[MaximumBreakPoints].BreakPointAddress;
ResetMemBPXSize = BreakPointBuffer[MaximumBreakPoints].BreakPointSize;
ResetMemBPX = true;
} }
} }
EngineCloseHandle(hActiveThread); else //no execute operation, restore breakpoint
} {
else if(!(myDBGContext.EFlags & 0x100))
{ {
DBGCode = DBG_EXCEPTION_NOT_HANDLED; //debugger did not handle the exception myDBGContext.EFlags = myDBGContext.EFlags ^ 0x100;
}
SetThreadContext(hActiveThread, &myDBGContext);
ResetMemBPXAddress = FoundBreakPoint.BreakPointAddress;
ResetMemBPXSize = FoundBreakPoint.BreakPointSize;
ResetMemBPX = true;
}
} }
EngineCloseHandle(hActiveThread);
} }
else //no memory breakpoint found else //no memory breakpoint found
{ {
@ -1346,201 +1217,74 @@ __declspec(dllexport) void TITCALL DebugLoop()
case STATUS_ILLEGAL_INSTRUCTION: case STATUS_ILLEGAL_INSTRUCTION:
{ {
//UD2 breakpoint //UD2 breakpoint
MaximumBreakPoints = 0; bool bFoundBreakPoint=false;
for(MaximumBreakPoints = 0; MaximumBreakPoints < BreakPointSetCount; MaximumBreakPoints++) BreakPointDetail FoundBreakPoint;
int bpcount=BreakPointBuffer.size();
for(int i=0; i<bpcount; i++)
{ {
if(BreakPointBuffer[MaximumBreakPoints].BreakPointAddress == (ULONG_PTR)DBGEvent.u.Exception.ExceptionRecord.ExceptionAddress) if(BreakPointBuffer.at(i).BreakPointAddress == (ULONG_PTR)DBGEvent.u.Exception.ExceptionRecord.ExceptionAddress &&
(BreakPointBuffer.at(i).BreakPointType == UE_BREAKPOINT || BreakPointBuffer.at(i).BreakPointType == UE_SINGLESHOOT) &&
BreakPointBuffer.at(i).BreakPointActive == UE_BPXACTIVE)
{ {
FoundBreakPoint=BreakPointBuffer.at(i);
bFoundBreakPoint=true;
break; break;
} }
} }
if(BreakPointBuffer[MaximumBreakPoints].BreakPointActive == UE_BPXACTIVE && MaximumBreakPoints < MAXIMUM_BREAKPOINTS) if(bFoundBreakPoint) //found ud2 breakpoint
{ {
VirtualQueryEx(dbgProcessInformation.hProcess, (LPVOID)BreakPointBuffer[MaximumBreakPoints].BreakPointAddress, &MemInfo, sizeof MEMORY_BASIC_INFORMATION); VirtualProtectEx(dbgProcessInformation.hProcess, (LPVOID)FoundBreakPoint.BreakPointAddress, FoundBreakPoint.BreakPointSize, PAGE_EXECUTE_READWRITE, &OldProtect);
OldProtect = MemInfo.Protect; if(WriteProcessMemory(dbgProcessInformation.hProcess, (LPVOID)FoundBreakPoint.BreakPointAddress, &FoundBreakPoint.OriginalByte[0], FoundBreakPoint.BreakPointSize, &NumberOfBytesReadWritten))
VirtualProtectEx(dbgProcessInformation.hProcess, (LPVOID)BreakPointBuffer[MaximumBreakPoints].BreakPointAddress, BreakPointBuffer[MaximumBreakPoints].BreakPointSize, PAGE_EXECUTE_READWRITE, &OldProtect);
if(BreakPointBuffer[MaximumBreakPoints].BreakPointActive == UE_BPXACTIVE && (BreakPointBuffer[MaximumBreakPoints].BreakPointType == UE_BREAKPOINT || BreakPointBuffer[MaximumBreakPoints].BreakPointType == UE_SINGLESHOOT) && (BreakPointBuffer[MaximumBreakPoints].NumberOfExecutions == -1 || BreakPointBuffer[MaximumBreakPoints].NumberOfExecutions > 0))
{ {
if(WriteProcessMemory(dbgProcessInformation.hProcess, (LPVOID)BreakPointBuffer[MaximumBreakPoints].BreakPointAddress, &BreakPointBuffer[MaximumBreakPoints].OriginalByte[0], BreakPointBuffer[MaximumBreakPoints].BreakPointSize, &NumberOfBytesReadWritten)) DBGCode = DBG_CONTINUE;
hActiveThread = OpenThread(THREAD_GET_CONTEXT|THREAD_SET_CONTEXT|THREAD_QUERY_INFORMATION, false, DBGEvent.dwThreadId);
myDBGContext.ContextFlags = CONTEXT_CONTROL;
GetThreadContext(hActiveThread, &myDBGContext);
if(FoundBreakPoint.BreakPointType != UE_SINGLESHOOT)
{ {
DBGCode = DBG_CONTINUE; if(!(myDBGContext.EFlags & 0x100))
hActiveThread = OpenThread(THREAD_GET_CONTEXT|THREAD_SET_CONTEXT|THREAD_QUERY_INFORMATION, false, DBGEvent.dwThreadId);
myDBGContext.ContextFlags = CONTEXT_CONTROL;
GetThreadContext(hActiveThread, &myDBGContext);
if(BreakPointBuffer[MaximumBreakPoints].BreakPointType != UE_SINGLESHOOT)
{ {
if(!(myDBGContext.EFlags & 0x100)) myDBGContext.EFlags = myDBGContext.EFlags ^ 0x100;
{
myDBGContext.EFlags = myDBGContext.EFlags ^ 0x100;
}
} }
if(!(myDBGContext.EFlags & 0x10000)) }
{ if(!(myDBGContext.EFlags & 0x10000))
myDBGContext.EFlags = myDBGContext.EFlags ^ 0x10000; {
} myDBGContext.EFlags = myDBGContext.EFlags ^ 0x10000;
SetThreadContext(hActiveThread, &myDBGContext); }
EngineCloseHandle(hActiveThread); SetThreadContext(hActiveThread, &myDBGContext);
VirtualProtectEx(dbgProcessInformation.hProcess, (LPVOID)BreakPointBuffer[MaximumBreakPoints].BreakPointAddress, BreakPointBuffer[MaximumBreakPoints].BreakPointSize, OldProtect, &OldProtect); EngineCloseHandle(hActiveThread);
myCustomBreakPoint = (fCustomBreakPoint)((LPVOID)BreakPointBuffer[MaximumBreakPoints].ExecuteCallBack); VirtualProtectEx(dbgProcessInformation.hProcess, (LPVOID)FoundBreakPoint.BreakPointAddress, FoundBreakPoint.BreakPointSize, OldProtect, &OldProtect);
if(BreakPointBuffer[MaximumBreakPoints].NumberOfExecutions != -1 && BreakPointBuffer[MaximumBreakPoints].NumberOfExecutions != 0) myCustomBreakPoint = (fCustomBreakPoint)((LPVOID)FoundBreakPoint.ExecuteCallBack);
{ //execute callback
BreakPointBuffer[MaximumBreakPoints].NumberOfExecutions--; __try
} {
if(BreakPointBuffer[MaximumBreakPoints].CmpCondition != UE_CMP_NOCONDITION) myCustomBreakPoint();
{ }
CompareResult = false; __except(EXCEPTION_EXECUTE_HANDLER)
CmpValue1 = (ULONG_PTR)GetContextData((DWORD)BreakPointBuffer[MaximumBreakPoints].CmpRegister); {
myCustomBreakPoint = (fCustomBreakPoint)((LPVOID)BreakPointBuffer[MaximumBreakPoints].CompareCallBack);
if(BreakPointBuffer[MaximumBreakPoints].CmpCondition == UE_CMP_EQUAL)
{
CmpValue2 = BreakPointBuffer[MaximumBreakPoints].CmpValue;
if(CmpValue1 == CmpValue2)
{
CompareResult = true;
}
}
else if(BreakPointBuffer[MaximumBreakPoints].CmpCondition == UE_CMP_NOTEQUAL)
{
CmpValue2 = BreakPointBuffer[MaximumBreakPoints].CmpValue;
if(CmpValue1 != CmpValue2)
{
CompareResult = true;
}
}
else if(BreakPointBuffer[MaximumBreakPoints].CmpCondition == UE_CMP_GREATER)
{
CmpValue2 = BreakPointBuffer[MaximumBreakPoints].CmpValue;
if(CmpValue1 > CmpValue2)
{
CompareResult = true;
}
}
else if(BreakPointBuffer[MaximumBreakPoints].CmpCondition == UE_CMP_GREATEROREQUAL)
{
CmpValue2 = BreakPointBuffer[MaximumBreakPoints].CmpValue;
if(CmpValue1 >= CmpValue2)
{
CompareResult = true;
}
}
else if(BreakPointBuffer[MaximumBreakPoints].CmpCondition == UE_CMP_LOWER)
{
CmpValue2 = BreakPointBuffer[MaximumBreakPoints].CmpValue;
if(CmpValue1 < CmpValue2)
{
CompareResult = true;
}
}
else if(BreakPointBuffer[MaximumBreakPoints].CmpCondition == UE_CMP_LOWEROREQUAL)
{
CmpValue2 = BreakPointBuffer[MaximumBreakPoints].CmpValue;
if(CmpValue1 <= CmpValue2)
{
CompareResult = true;
}
}
else if(BreakPointBuffer[MaximumBreakPoints].CmpCondition == UE_CMP_REG_EQUAL)
{
CmpValue2 = (ULONG_PTR)GetContextData((DWORD)BreakPointBuffer[MaximumBreakPoints].CmpValue);
if(CmpValue1 == CmpValue2)
{
CompareResult = true;
}
}
else if(BreakPointBuffer[MaximumBreakPoints].CmpCondition == UE_CMP_REG_NOTEQUAL)
{
CmpValue2 = (ULONG_PTR)GetContextData((DWORD)BreakPointBuffer[MaximumBreakPoints].CmpValue);
if(CmpValue1 != CmpValue2)
{
CompareResult = true;
}
}
else if(BreakPointBuffer[MaximumBreakPoints].CmpCondition == UE_CMP_REG_GREATER)
{
CmpValue2 = (ULONG_PTR)GetContextData((DWORD)BreakPointBuffer[MaximumBreakPoints].CmpValue);
if(CmpValue1 > CmpValue2)
{
CompareResult = true;
}
}
else if(BreakPointBuffer[MaximumBreakPoints].CmpCondition == UE_CMP_REG_GREATEROREQUAL)
{
CmpValue2 = (ULONG_PTR)GetContextData((DWORD)BreakPointBuffer[MaximumBreakPoints].CmpValue);
if(CmpValue1 >= CmpValue2)
{
CompareResult = true;
}
}
else if(BreakPointBuffer[MaximumBreakPoints].CmpCondition == UE_CMP_REG_LOWER)
{
CmpValue2 = (ULONG_PTR)GetContextData((DWORD)BreakPointBuffer[MaximumBreakPoints].CmpValue);
if(CmpValue1 < CmpValue2)
{
CompareResult = true;
}
}
else if(BreakPointBuffer[MaximumBreakPoints].CmpCondition == UE_CMP_REG_LOWEROREQUAL)
{
CmpValue2 = (ULONG_PTR)GetContextData((DWORD)BreakPointBuffer[MaximumBreakPoints].CmpValue);
if(CmpValue1 <= CmpValue2)
{
CompareResult = true;
}
}
if(CompareResult)
{
__try
{
myCustomBreakPoint();
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
} }
} if(FoundBreakPoint.BreakPointType != UE_SINGLESHOOT)
} {
else DisableBPX((ULONG_PTR)FoundBreakPoint.BreakPointAddress);
{ ResetBPXSize = FoundBreakPoint.BreakPointSize - 1;
__try ResetBPXAddressTo = (ULONG_PTR)FoundBreakPoint.BreakPointAddress;
{ ResetBPX = true;
myCustomBreakPoint();
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
}
}
if(BreakPointBuffer[MaximumBreakPoints].BreakPointType != UE_SINGLESHOOT)
{
DisableBPX((ULONG_PTR)BreakPointBuffer[MaximumBreakPoints].BreakPointAddress);
ResetBPXSize = BreakPointBuffer[MaximumBreakPoints].BreakPointSize - 1;
ResetBPXAddressTo = (ULONG_PTR)BreakPointBuffer[MaximumBreakPoints].BreakPointAddress;
ResetBPX = true;
}
else
{
DeleteBPX((ULONG_PTR)BreakPointBuffer[MaximumBreakPoints].BreakPointAddress);
ResetBPXSize = BreakPointBuffer[MaximumBreakPoints].BreakPointSize - 1;
ResetBPXAddressTo = NULL;
ResetBPX = false;
}
} }
else else
{ {
VirtualProtectEx(dbgProcessInformation.hProcess, (LPVOID)BreakPointBuffer[MaximumBreakPoints].BreakPointAddress, BreakPointBuffer[MaximumBreakPoints].BreakPointSize, OldProtect, &OldProtect); DeleteBPX((ULONG_PTR)FoundBreakPoint.BreakPointAddress);
DBGCode = DBG_CONTINUE; ResetBPXSize = FoundBreakPoint.BreakPointSize - 1;
ResetBPXAddressTo = NULL;
ResetBPX = false;
} }
} }
else else
{ VirtualProtectEx(dbgProcessInformation.hProcess, (LPVOID)FoundBreakPoint.BreakPointAddress, FoundBreakPoint.BreakPointSize, OldProtect, &OldProtect);
VirtualProtectEx(dbgProcessInformation.hProcess, (LPVOID)BreakPointBuffer[MaximumBreakPoints].BreakPointAddress, BreakPointBuffer[MaximumBreakPoints].BreakPointSize, OldProtect, &OldProtect);
DBGCode = DBG_EXCEPTION_NOT_HANDLED;
}
} }
else else
{ DBGCode=DBG_EXCEPTION_NOT_HANDLED;
DBGCode = DBG_EXCEPTION_NOT_HANDLED;
}
//application-generated exception //application-generated exception
if(DBGCode==DBG_EXCEPTION_NOT_HANDLED) if(DBGCode==DBG_EXCEPTION_NOT_HANDLED)
{ {

View File

@ -32,11 +32,11 @@ __declspec(dllexport) bool TITCALL GetRemoteString(HANDLE hProcess, LPVOID Strin
RtlZeroMemory(StringStorage, MaximumStringSize); RtlZeroMemory(StringStorage, MaximumStringSize);
if(ReadProcessMemory(hProcess, (LPVOID)StringAddress, StringStorage, StringReadSize, &ueNumberOfBytesRW)) if(ReadProcessMemory(hProcess, (LPVOID)StringAddress, StringStorage, StringReadSize, &ueNumberOfBytesRW))
{ {
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) long long TITCALL GetFunctionParameter(HANDLE hProcess, DWORD FunctionType, DWORD ParameterNumber, DWORD ParameterType) __declspec(dllexport) long long TITCALL GetFunctionParameter(HANDLE hProcess, DWORD FunctionType, DWORD ParameterNumber, DWORD ParameterType)
@ -579,242 +579,242 @@ __declspec(dllexport) bool TITCALL IsJumpGoingToExecuteEx(HANDLE hProcess, HANDL
} }
else if(lstrcmpiA(DisassembledString, "JMP") == NULL) else if(lstrcmpiA(DisassembledString, "JMP") == NULL)
{ {
return(true); return true;
} }
else if(lstrcmpiA(DisassembledString, "JA") == NULL) else if(lstrcmpiA(DisassembledString, "JA") == NULL)
{ {
if(bCF == false && bZF == false) if(bCF == false && bZF == false)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JAE") == NULL) else if(lstrcmpiA(DisassembledString, "JAE") == NULL)
{ {
if(!bCF) if(!bCF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JB") == NULL) else if(lstrcmpiA(DisassembledString, "JB") == NULL)
{ {
if(bCF) if(bCF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JBE") == NULL) else if(lstrcmpiA(DisassembledString, "JBE") == NULL)
{ {
if(bCF == true || bZF == true) if(bCF == true || bZF == true)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JC") == NULL) else if(lstrcmpiA(DisassembledString, "JC") == NULL)
{ {
if(bCF) if(bCF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JCXZ") == NULL) else if(lstrcmpiA(DisassembledString, "JCXZ") == NULL)
{ {
if((WORD)GetContextDataEx(hThread, UE_ECX) == NULL) if((WORD)GetContextDataEx(hThread, UE_ECX) == NULL)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JECXZ") == NULL) else if(lstrcmpiA(DisassembledString, "JECXZ") == NULL)
{ {
if((DWORD)GetContextDataEx(hThread, UE_ECX) == NULL) if((DWORD)GetContextDataEx(hThread, UE_ECX) == NULL)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JRCXZ") == NULL) else if(lstrcmpiA(DisassembledString, "JRCXZ") == NULL)
{ {
if((ULONG_PTR)GetContextDataEx(hThread, UE_RCX) == NULL) if((ULONG_PTR)GetContextDataEx(hThread, UE_RCX) == NULL)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JZ") == NULL) else if(lstrcmpiA(DisassembledString, "JZ") == NULL)
{ {
if(bZF) if(bZF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JNZ") == NULL) else if(lstrcmpiA(DisassembledString, "JNZ") == NULL)
{ {
if(!bZF) if(!bZF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JE") == NULL) else if(lstrcmpiA(DisassembledString, "JE") == NULL)
{ {
if(bZF) if(bZF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JNE") == NULL) else if(lstrcmpiA(DisassembledString, "JNE") == NULL)
{ {
if(!bZF) if(!bZF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JG") == NULL) else if(lstrcmpiA(DisassembledString, "JG") == NULL)
{ {
if(bZF == false && bSF == bOF) if(bZF == false && bSF == bOF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JGE") == NULL) else if(lstrcmpiA(DisassembledString, "JGE") == NULL)
{ {
if(bSF == bOF) if(bSF == bOF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JL") == NULL) else if(lstrcmpiA(DisassembledString, "JL") == NULL)
{ {
if(bSF != bOF) if(bSF != bOF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JLE") == NULL) else if(lstrcmpiA(DisassembledString, "JLE") == NULL)
{ {
if(bZF == true || bSF != bOF) if(bZF == true || bSF != bOF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JNA") == NULL) else if(lstrcmpiA(DisassembledString, "JNA") == NULL)
{ {
if(bCF == true || bZF == true) if(bCF == true || bZF == true)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JNAE") == NULL) else if(lstrcmpiA(DisassembledString, "JNAE") == NULL)
{ {
if(bCF) if(bCF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JNB") == NULL) else if(lstrcmpiA(DisassembledString, "JNB") == NULL)
{ {
if(!bCF) if(!bCF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JNBE") == NULL) else if(lstrcmpiA(DisassembledString, "JNBE") == NULL)
{ {
if(bCF == false && bZF == false) if(bCF == false && bZF == false)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JNC") == NULL) else if(lstrcmpiA(DisassembledString, "JNC") == NULL)
{ {
if(!bCF) if(!bCF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JNG") == NULL) else if(lstrcmpiA(DisassembledString, "JNG") == NULL)
{ {
if(bZF == true || bSF != bOF) if(bZF == true || bSF != bOF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JNGE") == NULL) else if(lstrcmpiA(DisassembledString, "JNGE") == NULL)
{ {
if(bSF != bOF) if(bSF != bOF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JNL") == NULL) else if(lstrcmpiA(DisassembledString, "JNL") == NULL)
{ {
if(bSF == bOF) if(bSF == bOF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JNLE") == NULL) else if(lstrcmpiA(DisassembledString, "JNLE") == NULL)
{ {
if(bZF == false && bSF == bOF) if(bZF == false && bSF == bOF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JNO") == NULL) else if(lstrcmpiA(DisassembledString, "JNO") == NULL)
{ {
if(!bOF) if(!bOF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JNP") == NULL) else if(lstrcmpiA(DisassembledString, "JNP") == NULL)
{ {
if(!bPF) if(!bPF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JNS") == NULL) else if(lstrcmpiA(DisassembledString, "JNS") == NULL)
{ {
if(!bSF) if(!bSF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JO") == NULL) else if(lstrcmpiA(DisassembledString, "JO") == NULL)
{ {
if(bOF) if(bOF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JP") == NULL) else if(lstrcmpiA(DisassembledString, "JP") == NULL)
{ {
if(bPF) if(bPF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JPE") == NULL) else if(lstrcmpiA(DisassembledString, "JPE") == NULL)
{ {
if(bPF) if(bPF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JPO") == NULL) else if(lstrcmpiA(DisassembledString, "JPO") == NULL)
{ {
if(!bPF) if(!bPF)
{ {
return(true); return true;
} }
} }
else if(lstrcmpiA(DisassembledString, "JS") == NULL) else if(lstrcmpiA(DisassembledString, "JS") == NULL)
{ {
if(bSF) if(bSF)
{ {
return(true); return true;
} }
} }
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL IsJumpGoingToExecute() __declspec(dllexport) bool TITCALL IsJumpGoingToExecute()
{ {

View File

@ -63,23 +63,23 @@ __declspec(dllexport) bool TITCALL MatchPatternEx(HANDLE hProcess, void* MemoryT
{ {
if(memCmp->Array.bArrayEntry[i] != memPattern->Array.bArrayEntry[i] && memPattern->Array.bArrayEntry[i] != *WildCard) if(memCmp->Array.bArrayEntry[i] != memPattern->Array.bArrayEntry[i] && memPattern->Array.bArrayEntry[i] != *WildCard)
{ {
return(false); return false;
} }
SizeOfPatternToMatch--; SizeOfPatternToMatch--;
i++; i++;
} }
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
return(true); return true;
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL MatchPattern(void* MemoryToCheck, int SizeOfMemoryToCheck, void* PatternToMatch, int SizeOfPatternToMatch, PBYTE WildCard) __declspec(dllexport) bool TITCALL MatchPattern(void* MemoryToCheck, int SizeOfMemoryToCheck, void* PatternToMatch, int SizeOfPatternToMatch, PBYTE WildCard)
@ -224,9 +224,9 @@ __declspec(dllexport) bool TITCALL FillEx(HANDLE hProcess, LPVOID MemoryStart, D
MemoryStart = (LPVOID)((ULONG_PTR)MemoryStart + 1); MemoryStart = (LPVOID)((ULONG_PTR)MemoryStart + 1);
} }
VirtualProtectEx(hProcess, MemoryStart, MemorySize, OldProtect, &OldProtect); VirtualProtectEx(hProcess, MemoryStart, MemorySize, OldProtect, &OldProtect);
return(true); return true;
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL Fill(LPVOID MemoryStart, DWORD MemorySize, PBYTE FillByte) __declspec(dllexport) bool TITCALL Fill(LPVOID MemoryStart, DWORD MemorySize, PBYTE FillByte)
{ {
@ -289,9 +289,9 @@ __declspec(dllexport) bool TITCALL PatchEx(HANDLE hProcess, LPVOID MemoryStart,
WriteProcessMemory(hProcess, MemoryStart, ReplacePattern, ReplaceSize, &ueNumberOfBytesRead); WriteProcessMemory(hProcess, MemoryStart, ReplacePattern, ReplaceSize, &ueNumberOfBytesRead);
} }
VirtualProtectEx(hProcess, MemoryStart, MemorySize, OldProtect, &OldProtect); VirtualProtectEx(hProcess, MemoryStart, MemorySize, OldProtect, &OldProtect);
return(true); return true;
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL Patch(LPVOID MemoryStart, DWORD MemorySize, LPVOID ReplacePattern, DWORD ReplaceSize, bool AppendNOP, bool PrependNOP) __declspec(dllexport) bool TITCALL Patch(LPVOID MemoryStart, DWORD MemorySize, LPVOID ReplacePattern, DWORD ReplaceSize, bool AppendNOP, bool PrependNOP)
{ {
@ -338,11 +338,11 @@ __declspec(dllexport) bool TITCALL ReplaceEx(HANDLE hProcess, LPVOID MemoryStart
VirtualFree(lpReadMemory, NULL, MEM_RELEASE); VirtualFree(lpReadMemory, NULL, MEM_RELEASE);
if(NumberOfRepetitions != NULL) if(NumberOfRepetitions != NULL)
{ {
return(false); return false;
} }
else else
{ {
return(true); return true;
} }
} }
__declspec(dllexport) bool TITCALL Replace(LPVOID MemoryStart, DWORD MemorySize, LPVOID SearchPattern, DWORD PatternSize, DWORD NumberOfRepetitions, LPVOID ReplacePattern, DWORD ReplaceSize, PBYTE WildCard) __declspec(dllexport) bool TITCALL Replace(LPVOID MemoryStart, DWORD MemorySize, LPVOID SearchPattern, DWORD PatternSize, DWORD NumberOfRepetitions, LPVOID ReplacePattern, DWORD ReplaceSize, PBYTE WildCard)

View File

@ -5,6 +5,7 @@
#include "Global.Handle.h" #include "Global.Handle.h"
#include "Global.Breakpoints.h" #include "Global.Breakpoints.h"
#include "Global.Threader.h" #include "Global.Threader.h"
#include <vector>
static wchar_t szBackupDebuggedFileName[512]; static wchar_t szBackupDebuggedFileName[512];
static wchar_t szDebuggerName[512]; static wchar_t szDebuggerName[512];
@ -55,15 +56,14 @@ __declspec(dllexport) void* TITCALL InitDebugW(wchar_t* szFileName, wchar_t* szC
{ {
DebugConsoleFlag = CREATE_NO_WINDOW; DebugConsoleFlag = CREATE_NO_WINDOW;
} }
BreakPointSetCount = 0; std::vector<BreakPointDetail>().swap(BreakPointBuffer);
RtlZeroMemory(&BreakPointBuffer, sizeof BreakPointBuffer);
if(szCommandLine == NULL) if(szCommandLine == NULL)
{ {
if(CreateProcessW(szFileName, NULL, NULL, NULL, false, DEBUG_PROCESS|DEBUG_ONLY_THIS_PROCESS|DebugConsoleFlag|CREATE_NEW_CONSOLE, NULL, szCurrentFolder, &dbgStartupInfo, &dbgProcessInformation)) if(CreateProcessW(szFileName, NULL, NULL, NULL, false, DEBUG_PROCESS|DEBUG_ONLY_THIS_PROCESS|DebugConsoleFlag|CREATE_NEW_CONSOLE, NULL, szCurrentFolder, &dbgStartupInfo, &dbgProcessInformation))
{ {
DebugAttachedToProcess = false; DebugAttachedToProcess = false;
DebugAttachedProcessCallBack = NULL; DebugAttachedProcessCallBack = NULL;
RtlZeroMemory(&BreakPointBuffer, sizeof BreakPointBuffer); std::vector<BreakPointDetail>().swap(BreakPointBuffer);
return(&dbgProcessInformation); return(&dbgProcessInformation);
} }
else else
@ -79,7 +79,7 @@ __declspec(dllexport) void* TITCALL InitDebugW(wchar_t* szFileName, wchar_t* szC
{ {
DebugAttachedToProcess = false; DebugAttachedToProcess = false;
DebugAttachedProcessCallBack = NULL; DebugAttachedProcessCallBack = NULL;
RtlZeroMemory(&BreakPointBuffer, sizeof BreakPointBuffer); std::vector<BreakPointDetail>().swap(BreakPointBuffer);
return(&dbgProcessInformation); return(&dbgProcessInformation);
} }
else else
@ -227,11 +227,11 @@ __declspec(dllexport) bool TITCALL StopDebug()
{ {
TerminateThread(dbgProcessInformation.hThread, NULL); TerminateThread(dbgProcessInformation.hThread, NULL);
TerminateProcess(dbgProcessInformation.hProcess, NULL); TerminateProcess(dbgProcessInformation.hProcess, NULL);
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
@ -244,7 +244,7 @@ __declspec(dllexport) bool TITCALL AttachDebugger(DWORD ProcessId, bool KillOnEx
if(ProcessId != NULL && dbgProcessInformation.hProcess == NULL) if(ProcessId != NULL && dbgProcessInformation.hProcess == NULL)
{ {
RtlZeroMemory(&BreakPointBuffer, sizeof BreakPointBuffer); std::vector<BreakPointDetail>().swap(BreakPointBuffer);
if(DebugActiveProcess(ProcessId)) if(DebugActiveProcess(ProcessId))
{ {
if(KillOnExit) if(KillOnExit)
@ -256,7 +256,7 @@ __declspec(dllexport) bool TITCALL AttachDebugger(DWORD ProcessId, bool KillOnEx
myDebugSetProcessKillOnExit(KillOnExit); myDebugSetProcessKillOnExit(KillOnExit);
} }
} }
BreakPointSetCount = 0; std::vector<BreakPointDetail>().swap(BreakPointBuffer);
DebugDebuggingDLL = false; DebugDebuggingDLL = false;
DebugAttachedToProcess = true; DebugAttachedToProcess = true;
DebugAttachedProcessCallBack = (ULONG_PTR)CallBack; DebugAttachedProcessCallBack = (ULONG_PTR)CallBack;
@ -265,14 +265,14 @@ __declspec(dllexport) bool TITCALL AttachDebugger(DWORD ProcessId, bool KillOnEx
DebugLoop(); DebugLoop();
DebugAttachedToProcess = false; DebugAttachedToProcess = false;
DebugAttachedProcessCallBack = NULL; DebugAttachedProcessCallBack = NULL;
return(true); return true;
} }
} }
else else
{ {
return(false); return false;
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL DetachDebugger(DWORD ProcessId) __declspec(dllexport) bool TITCALL DetachDebugger(DWORD ProcessId)
@ -295,14 +295,14 @@ __declspec(dllexport) bool TITCALL DetachDebugger(DWORD ProcessId)
DebugAttachedToProcess = false; DebugAttachedToProcess = false;
if(FuncReturn) if(FuncReturn)
{ {
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL DetachDebuggerEx(DWORD ProcessId) __declspec(dllexport) bool TITCALL DetachDebuggerEx(DWORD ProcessId)
@ -338,7 +338,7 @@ __declspec(dllexport) bool TITCALL DetachDebuggerEx(DWORD ProcessId)
} }
else else
{ {
return(false); return false;
} }
} }

View File

@ -64,7 +64,7 @@ __declspec(dllexport) bool TITCALL DumpProcessW(HANDLE hProcess, LPVOID ImageBas
{ {
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE); VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE);
return(false); return false;
} }
else else
{ {
@ -92,7 +92,7 @@ __declspec(dllexport) bool TITCALL DumpProcessW(HANDLE hProcess, LPVOID ImageBas
{ {
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE); VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE);
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -176,14 +176,14 @@ __declspec(dllexport) bool TITCALL DumpProcessW(HANDLE hProcess, LPVOID ImageBas
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE); VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE);
return(true); return true;
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE); VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE);
return(false); return false;
} }
} }
else else
@ -191,14 +191,14 @@ __declspec(dllexport) bool TITCALL DumpProcessW(HANDLE hProcess, LPVOID ImageBas
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE); VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE);
return(false); return false;
} }
} }
else else
{ {
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE); VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE);
return(false); return false;
} }
} }
} }
@ -284,13 +284,13 @@ __declspec(dllexport) bool TITCALL DumpProcessW(HANDLE hProcess, LPVOID ImageBas
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE); VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE);
return(true); return true;
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE); VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE);
return(false); return false;
} }
} }
else else
@ -298,7 +298,7 @@ __declspec(dllexport) bool TITCALL DumpProcessW(HANDLE hProcess, LPVOID ImageBas
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE); VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE);
return(false); return false;
} }
} }
else else
@ -306,7 +306,7 @@ __declspec(dllexport) bool TITCALL DumpProcessW(HANDLE hProcess, LPVOID ImageBas
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE); VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE);
return(false); return false;
} }
} }
} }
@ -315,16 +315,16 @@ __declspec(dllexport) bool TITCALL DumpProcessW(HANDLE hProcess, LPVOID ImageBas
{ {
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE); VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE);
return(false); return false;
} }
} }
else else
{ {
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE); VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE);
return(false); return false;
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL DumpProcessEx(DWORD ProcessId, LPVOID ImageBase, char* szDumpFileName, ULONG_PTR EntryPoint) __declspec(dllexport) bool TITCALL DumpProcessEx(DWORD ProcessId, LPVOID ImageBase, char* szDumpFileName, ULONG_PTR EntryPoint)
@ -339,7 +339,7 @@ __declspec(dllexport) bool TITCALL DumpProcessEx(DWORD ProcessId, LPVOID ImageBa
} }
else else
{ {
return(false); return false;
} }
} }
@ -356,16 +356,16 @@ __declspec(dllexport) bool TITCALL DumpProcessExW(DWORD ProcessId, LPVOID ImageB
EngineCloseHandle(hProcess); EngineCloseHandle(hProcess);
if(ReturnValue) if(ReturnValue)
{ {
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
} }
@ -381,7 +381,7 @@ __declspec(dllexport) bool TITCALL DumpMemory(HANDLE hProcess, LPVOID MemoryStar
} }
else else
{ {
return(false); return false;
} }
} }
@ -434,15 +434,15 @@ __declspec(dllexport) bool TITCALL DumpMemoryW(HANDLE hProcess, LPVOID MemorySta
} }
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE); VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE);
return(true); return true;
} }
else else
{ {
VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE); VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE);
return(false); return false;
} }
} }
return(true); return true;
} }
__declspec(dllexport) bool TITCALL DumpMemoryEx(DWORD ProcessId, LPVOID MemoryStart, ULONG_PTR MemorySize, char* szDumpFileName) __declspec(dllexport) bool TITCALL DumpMemoryEx(DWORD ProcessId, LPVOID MemoryStart, ULONG_PTR MemorySize, char* szDumpFileName)
@ -457,7 +457,7 @@ __declspec(dllexport) bool TITCALL DumpMemoryEx(DWORD ProcessId, LPVOID MemorySt
} }
else else
{ {
return(false); return false;
} }
} }
@ -474,11 +474,11 @@ __declspec(dllexport) bool TITCALL DumpMemoryExW(DWORD ProcessId, LPVOID MemoryS
EngineCloseHandle(hProcess); EngineCloseHandle(hProcess);
if(ReturnValue) if(ReturnValue)
{ {
return(true); return true;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL DumpRegions(HANDLE hProcess, char* szDumpFolder, bool DumpAboveImageBaseOnly) __declspec(dllexport) bool TITCALL DumpRegions(HANDLE hProcess, char* szDumpFolder, bool DumpAboveImageBaseOnly)
@ -493,7 +493,7 @@ __declspec(dllexport) bool TITCALL DumpRegions(HANDLE hProcess, char* szDumpFold
} }
else else
{ {
return(false); return false;
} }
} }
@ -545,9 +545,9 @@ __declspec(dllexport) bool TITCALL DumpRegionsW(HANDLE hProcess, wchar_t* szDump
} }
DumpAddress = DumpAddress + (ULONG_PTR)MemInfo.RegionSize; DumpAddress = DumpAddress + (ULONG_PTR)MemInfo.RegionSize;
} }
return(true); return true;
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL DumpRegionsEx(DWORD ProcessId, char* szDumpFolder, bool DumpAboveImageBaseOnly) __declspec(dllexport) bool TITCALL DumpRegionsEx(DWORD ProcessId, char* szDumpFolder, bool DumpAboveImageBaseOnly)
@ -562,7 +562,7 @@ __declspec(dllexport) bool TITCALL DumpRegionsEx(DWORD ProcessId, char* szDumpFo
} }
else else
{ {
return(false); return false;
} }
} }
@ -579,11 +579,11 @@ __declspec(dllexport) bool TITCALL DumpRegionsExW(DWORD ProcessId, wchar_t* szDu
EngineCloseHandle(hProcess); EngineCloseHandle(hProcess);
if(ReturnValue) if(ReturnValue)
{ {
return(true); return true;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL DumpModule(HANDLE hProcess, LPVOID ModuleBase, char* szDumpFileName) __declspec(dllexport) bool TITCALL DumpModule(HANDLE hProcess, LPVOID ModuleBase, char* szDumpFileName)
@ -598,7 +598,7 @@ __declspec(dllexport) bool TITCALL DumpModule(HANDLE hProcess, LPVOID ModuleBase
} }
else else
{ {
return(false); return false;
} }
} }
@ -621,7 +621,7 @@ __declspec(dllexport) bool TITCALL DumpModuleW(HANDLE hProcess, LPVOID ModuleBas
} }
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL DumpModuleEx(DWORD ProcessId, LPVOID ModuleBase, char* szDumpFileName) __declspec(dllexport) bool TITCALL DumpModuleEx(DWORD ProcessId, LPVOID ModuleBase, char* szDumpFileName)
@ -636,7 +636,7 @@ __declspec(dllexport) bool TITCALL DumpModuleEx(DWORD ProcessId, LPVOID ModuleBa
} }
else else
{ {
return(false); return false;
} }
} }
@ -653,9 +653,9 @@ __declspec(dllexport) bool TITCALL DumpModuleExW(DWORD ProcessId, LPVOID ModuleB
EngineCloseHandle(hProcess); EngineCloseHandle(hProcess);
if(ReturnValue) if(ReturnValue)
{ {
return(true); return true;
} }
} }
return(false); return false;
} }

View File

@ -119,7 +119,7 @@ __declspec(dllexport) bool TITCALL EngineUnpackerSetBreakCondition(void* SearchS
if(SetBPX(fPatternLocation, UE_BREAKPOINT, &EngineSimplifyLoadLibraryCallBack)) if(SetBPX(fPatternLocation, UE_BREAKPOINT, &EngineSimplifyLoadLibraryCallBack))
{ {
EngineUnpackerBreakInfo.push_back(fUnpackerInformation); EngineUnpackerBreakInfo.push_back(fUnpackerInformation);
return(true); return true;
} }
} }
else if(BreakType == UE_UNPACKER_CONDITION_GETPROCADDRESS) else if(BreakType == UE_UNPACKER_CONDITION_GETPROCADDRESS)
@ -127,7 +127,7 @@ __declspec(dllexport) bool TITCALL EngineUnpackerSetBreakCondition(void* SearchS
if(SetBPX(fPatternLocation, UE_BREAKPOINT, &EngineSimplifyGetProcAddressCallBack)) if(SetBPX(fPatternLocation, UE_BREAKPOINT, &EngineSimplifyGetProcAddressCallBack))
{ {
EngineUnpackerBreakInfo.push_back(fUnpackerInformation); EngineUnpackerBreakInfo.push_back(fUnpackerInformation);
return(true); return true;
} }
} }
else if(BreakType == UE_UNPACKER_CONDITION_ENTRYPOINTBREAK) else if(BreakType == UE_UNPACKER_CONDITION_ENTRYPOINTBREAK)
@ -135,7 +135,7 @@ __declspec(dllexport) bool TITCALL EngineUnpackerSetBreakCondition(void* SearchS
if(SetBPX(fPatternLocation, UE_BREAKPOINT, &EngineSimplifyGetProcAddressCallBack)) if(SetBPX(fPatternLocation, UE_BREAKPOINT, &EngineSimplifyGetProcAddressCallBack))
{ {
EngineUnpackerBreakInfo.push_back(fUnpackerInformation); EngineUnpackerBreakInfo.push_back(fUnpackerInformation);
return(true); return true;
} }
} }
else if(BreakType == UE_UNPACKER_CONDITION_RELOCSNAPSHOT1) else if(BreakType == UE_UNPACKER_CONDITION_RELOCSNAPSHOT1)
@ -144,7 +144,7 @@ __declspec(dllexport) bool TITCALL EngineUnpackerSetBreakCondition(void* SearchS
{ {
fUnpackerInformation.SnapShotNumber = 1; fUnpackerInformation.SnapShotNumber = 1;
EngineUnpackerBreakInfo.push_back(fUnpackerInformation); EngineUnpackerBreakInfo.push_back(fUnpackerInformation);
return(true); return true;
} }
} }
else if(BreakType == UE_UNPACKER_CONDITION_RELOCSNAPSHOT2) else if(BreakType == UE_UNPACKER_CONDITION_RELOCSNAPSHOT2)
@ -153,7 +153,7 @@ __declspec(dllexport) bool TITCALL EngineUnpackerSetBreakCondition(void* SearchS
{ {
fUnpackerInformation.SnapShotNumber = 2; fUnpackerInformation.SnapShotNumber = 2;
EngineUnpackerBreakInfo.push_back(fUnpackerInformation); EngineUnpackerBreakInfo.push_back(fUnpackerInformation);
return(true); return true;
} }
} }
else else
@ -161,11 +161,11 @@ __declspec(dllexport) bool TITCALL EngineUnpackerSetBreakCondition(void* SearchS
if(SetBPX(fPatternLocation, fBreakPointType, (void*)BreakType)) if(SetBPX(fPatternLocation, fBreakPointType, (void*)BreakType))
{ {
EngineUnpackerBreakInfo.push_back(fUnpackerInformation); EngineUnpackerBreakInfo.push_back(fUnpackerInformation);
return(true); return true;
} }
} }
} }
return(false); return false;
} }
__declspec(dllexport) void TITCALL EngineUnpackerSetEntryPointAddress(ULONG_PTR UnpackedEntryPointAddress) __declspec(dllexport) void TITCALL EngineUnpackerSetEntryPointAddress(ULONG_PTR UnpackedEntryPointAddress)
{ {

View File

@ -96,7 +96,7 @@ __declspec(dllexport) bool TITCALL EngineCreateMissingDependenciesW(wchar_t* szF
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
if(LogCreatedFiles) if(LogCreatedFiles)
{ {
@ -216,15 +216,15 @@ __declspec(dllexport) bool TITCALL EngineCreateMissingDependenciesW(wchar_t* szF
} }
} }
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(true); return true;
} }
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL EngineFakeMissingDependencies(HANDLE hProcess) __declspec(dllexport) bool TITCALL EngineFakeMissingDependencies(HANDLE hProcess)
{ {
@ -234,7 +234,7 @@ __declspec(dllexport) bool TITCALL EngineFakeMissingDependencies(HANDLE hProcess
SetAPIBreakPoint("ntdll.dll", "LdrLoadDll", UE_BREAKPOINT, UE_APIEND, (LPVOID)&EngineFakeLoadLibraryReturn); SetAPIBreakPoint("ntdll.dll", "LdrLoadDll", UE_BREAKPOINT, UE_APIEND, (LPVOID)&EngineFakeLoadLibraryReturn);
SetAPIBreakPoint("ntdll.dll", "LdrGetProcedureAddress", UE_BREAKPOINT, UE_APIEND, (LPVOID)&EngineFakeGetProcAddressReturn); SetAPIBreakPoint("ntdll.dll", "LdrGetProcedureAddress", UE_BREAKPOINT, UE_APIEND, (LPVOID)&EngineFakeGetProcAddressReturn);
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL EngineDeleteCreatedDependencies() __declspec(dllexport) bool TITCALL EngineDeleteCreatedDependencies()
{ {
@ -269,9 +269,9 @@ __declspec(dllexport) bool TITCALL EngineDeleteCreatedDependencies()
VirtualFree(engineDependencyFiles, NULL, MEM_RELEASE); VirtualFree(engineDependencyFiles, NULL, MEM_RELEASE);
engineDependencyFiles = NULL; engineDependencyFiles = NULL;
engineDependencyFilesCWP = NULL; engineDependencyFilesCWP = NULL;
return(true); return true;
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL EngineCreateUnpackerWindow(char* WindowUnpackerTitle, char* WindowUnpackerLongTitle, char* WindowUnpackerName, char* WindowUnpackerAuthor, void* StartUnpackingCallBack) __declspec(dllexport) bool TITCALL EngineCreateUnpackerWindow(char* WindowUnpackerTitle, char* WindowUnpackerLongTitle, char* WindowUnpackerName, char* WindowUnpackerAuthor, void* StartUnpackingCallBack)
@ -285,11 +285,11 @@ __declspec(dllexport) bool TITCALL EngineCreateUnpackerWindow(char* WindowUnpack
lstrcpyA(szWindowUnpackerName, WindowUnpackerName); lstrcpyA(szWindowUnpackerName, WindowUnpackerName);
if(DialogBoxParamA((HINSTANCE)engineHandle, MAKEINTRESOURCEA(IDD_MAINWINDOW), NULL, (DLGPROC)EngineWndProc, NULL) != -1) if(DialogBoxParamA((HINSTANCE)engineHandle, MAKEINTRESOURCEA(IDD_MAINWINDOW), NULL, (DLGPROC)EngineWndProc, NULL) != -1)
{ {
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) void TITCALL EngineAddUnpackerWindowLogMessage(char* szLogMessage) __declspec(dllexport) void TITCALL EngineAddUnpackerWindowLogMessage(char* szLogMessage)

View File

@ -75,7 +75,7 @@ __declspec(dllexport) bool TITCALL ExporterAddNewExport(char* szExportName, DWOR
{ {
if(expNameHashes[i] == NameHash) if(expNameHashes[i] == NameHash)
{ {
return(true); return true;
} }
} }
expExportAddress[expExportNumber] = ExportRelativeAddress; expExportAddress[expExportNumber] = ExportRelativeAddress;
@ -85,9 +85,9 @@ __declspec(dllexport) bool TITCALL ExporterAddNewExport(char* szExportName, DWOR
RtlMoveMemory(expTableDataCWP, szExportName, lstrlenA(szExportName)); RtlMoveMemory(expTableDataCWP, szExportName, lstrlenA(szExportName));
expTableDataCWP = (LPVOID)((ULONG_PTR)expTableDataCWP + lstrlenA(szExportName) + 2); expTableDataCWP = (LPVOID)((ULONG_PTR)expTableDataCWP + lstrlenA(szExportName) + 2);
expExportNumber++; expExportNumber++;
return(true); return true;
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL ExporterAddNewOrdinalExport(DWORD OrdinalNumber, DWORD ExportRelativeAddress) __declspec(dllexport) bool TITCALL ExporterAddNewOrdinalExport(DWORD OrdinalNumber, DWORD ExportRelativeAddress)
{ {
@ -119,15 +119,15 @@ __declspec(dllexport) bool TITCALL ExporterAddNewOrdinalExport(DWORD OrdinalNumb
wsprintfA(szExportFunctionName, "Func%d", expExportNumber + 1); wsprintfA(szExportFunctionName, "Func%d", expExportNumber + 1);
ExporterAddNewExport(szExportFunctionName, ExportRelativeAddress); ExporterAddNewExport(szExportFunctionName, ExportRelativeAddress);
} }
return(true); return true;
} }
else else
{ {
return(true); return true;
} }
} }
} }
return(false); return false;
} }
__declspec(dllexport) long TITCALL ExporterGetAddedExportCount() __declspec(dllexport) long TITCALL ExporterGetAddedExportCount()
{ {
@ -212,7 +212,7 @@ __declspec(dllexport) bool TITCALL ExporterBuildExportTable(ULONG_PTR StorePlace
{ {
VirtualFree(expBuildExportData, NULL, MEM_RELEASE); VirtualFree(expBuildExportData, NULL, MEM_RELEASE);
ExporterCleanup(); ExporterCleanup();
return(false); return false;
} }
if(FileMapVA != NULL) if(FileMapVA != NULL)
@ -248,9 +248,9 @@ __declspec(dllexport) bool TITCALL ExporterBuildExportTable(ULONG_PTR StorePlace
} }
VirtualFree(expBuildExportData, NULL, MEM_RELEASE); VirtualFree(expBuildExportData, NULL, MEM_RELEASE);
ExporterCleanup(); ExporterCleanup();
return(true); return true;
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL ExporterBuildExportTableEx(char* szExportFileName, char* szSectionName) __declspec(dllexport) bool TITCALL ExporterBuildExportTableEx(char* szExportFileName, char* szSectionName)
{ {
@ -264,7 +264,7 @@ __declspec(dllexport) bool TITCALL ExporterBuildExportTableEx(char* szExportFile
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL ExporterBuildExportTableExW(wchar_t* szExportFileName, char* szSectionName) __declspec(dllexport) bool TITCALL ExporterBuildExportTableExW(wchar_t* szExportFileName, char* szSectionName)
@ -288,21 +288,21 @@ __declspec(dllexport) bool TITCALL ExporterBuildExportTableExW(wchar_t* szExport
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
if(ReturnValue) if(ReturnValue)
{ {
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL ExporterLoadExportTable(char* szFileName) __declspec(dllexport) bool TITCALL ExporterLoadExportTable(char* szFileName)
@ -317,7 +317,7 @@ __declspec(dllexport) bool TITCALL ExporterLoadExportTable(char* szFileName)
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL ExporterLoadExportTableW(wchar_t* szFileName) __declspec(dllexport) bool TITCALL ExporterLoadExportTableW(wchar_t* szFileName)
@ -360,7 +360,7 @@ __declspec(dllexport) bool TITCALL ExporterLoadExportTableW(wchar_t* szFileName)
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -426,24 +426,24 @@ __declspec(dllexport) bool TITCALL ExporterLoadExportTableW(wchar_t* szFileName)
ExportedFunctions = (PEXPORTED_DATA)((ULONG_PTR)ExportedFunctions + 4); ExportedFunctions = (PEXPORTED_DATA)((ULONG_PTR)ExportedFunctions + 4);
} }
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(true); return true;
} }
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }

View File

@ -92,10 +92,10 @@ __declspec(dllexport) bool TITCALL HandlerIsHandleOpen(DWORD ProcessId, HANDLE h
VirtualFree(QuerySystemBuffer, NULL, MEM_RELEASE); VirtualFree(QuerySystemBuffer, NULL, MEM_RELEASE);
if(HandleActive) if(HandleActive)
{ {
return(true); return true;
} }
} }
return(false); return false;
} }
__declspec(dllexport) void* TITCALL HandlerGetHandleName(HANDLE hProcess, DWORD ProcessId, HANDLE hHandle, bool TranslateName) __declspec(dllexport) void* TITCALL HandlerGetHandleName(HANDLE hProcess, DWORD ProcessId, HANDLE hHandle, bool TranslateName)
{ {
@ -453,7 +453,7 @@ __declspec(dllexport) bool TITCALL HandlerCloseRemoteHandle(HANDLE hProcess, HAN
DuplicateHandle(hProcess, hHandle, GetCurrentProcess(), &myHandle, NULL, false, DUPLICATE_CLOSE_SOURCE); DuplicateHandle(hProcess, hHandle, GetCurrentProcess(), &myHandle, NULL, false, DUPLICATE_CLOSE_SOURCE);
EngineCloseHandle(myHandle); EngineCloseHandle(myHandle);
} }
return(false); return false;
} }
__declspec(dllexport) long TITCALL HandlerEnumerateLockHandles(char* szFileOrFolderName, bool NameIsFolder, bool NameIsTranslated, LPVOID HandleDataBuffer, DWORD MaxHandleCount) __declspec(dllexport) long TITCALL HandlerEnumerateLockHandles(char* szFileOrFolderName, bool NameIsFolder, bool NameIsTranslated, LPVOID HandleDataBuffer, DWORD MaxHandleCount)
{ {
@ -595,7 +595,7 @@ __declspec(dllexport) bool TITCALL HandlerCloseAllLockHandles(char* szFileOrFold
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL HandlerCloseAllLockHandlesW(wchar_t* szFileOrFolderName, bool NameIsFolder, bool NameIsTranslated) __declspec(dllexport) bool TITCALL HandlerCloseAllLockHandlesW(wchar_t* szFileOrFolderName, bool NameIsFolder, bool NameIsTranslated)
@ -704,16 +704,16 @@ __declspec(dllexport) bool TITCALL HandlerCloseAllLockHandlesW(wchar_t* szFileOr
VirtualFree(HandleFullName, NULL, MEM_RELEASE); VirtualFree(HandleFullName, NULL, MEM_RELEASE);
if(AllHandled) if(AllHandled)
{ {
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
VirtualFree(ObjectNameInfo, NULL, MEM_RELEASE); VirtualFree(ObjectNameInfo, NULL, MEM_RELEASE);
VirtualFree(HandleFullName, NULL, MEM_RELEASE); VirtualFree(HandleFullName, NULL, MEM_RELEASE);
return(false); return false;
} }
__declspec(dllexport) bool TITCALL HandlerIsFileLocked(char* szFileOrFolderName, bool NameIsFolder, bool NameIsTranslated) __declspec(dllexport) bool TITCALL HandlerIsFileLocked(char* szFileOrFolderName, bool NameIsFolder, bool NameIsTranslated)
{ {
@ -727,7 +727,7 @@ __declspec(dllexport) bool TITCALL HandlerIsFileLocked(char* szFileOrFolderName,
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL HandlerIsFileLockedW(wchar_t* szFileOrFolderName, bool NameIsFolder, bool NameIsTranslated) __declspec(dllexport) bool TITCALL HandlerIsFileLockedW(wchar_t* szFileOrFolderName, bool NameIsFolder, bool NameIsTranslated)
@ -821,7 +821,7 @@ __declspec(dllexport) bool TITCALL HandlerIsFileLockedW(wchar_t* szFileOrFolderN
VirtualFree(QuerySystemBuffer, NULL, MEM_RELEASE); VirtualFree(QuerySystemBuffer, NULL, MEM_RELEASE);
VirtualFree(HandleFullName, NULL, MEM_RELEASE); VirtualFree(HandleFullName, NULL, MEM_RELEASE);
EngineCloseHandle(myHandle); EngineCloseHandle(myHandle);
return(true); return true;
} }
} }
EngineCloseHandle(myHandle); EngineCloseHandle(myHandle);
@ -834,11 +834,11 @@ __declspec(dllexport) bool TITCALL HandlerIsFileLockedW(wchar_t* szFileOrFolderN
VirtualFree(ObjectNameInfo, NULL, MEM_RELEASE); VirtualFree(ObjectNameInfo, NULL, MEM_RELEASE);
VirtualFree(QuerySystemBuffer, NULL, MEM_RELEASE); VirtualFree(QuerySystemBuffer, NULL, MEM_RELEASE);
VirtualFree(HandleFullName, NULL, MEM_RELEASE); VirtualFree(HandleFullName, NULL, MEM_RELEASE);
return(false); return false;
} }
VirtualFree(ObjectNameInfo, NULL, MEM_RELEASE); VirtualFree(ObjectNameInfo, NULL, MEM_RELEASE);
VirtualFree(HandleFullName, NULL, MEM_RELEASE); VirtualFree(HandleFullName, NULL, MEM_RELEASE);
return(false); return false;
} }
// TitanEngine.Handler[Mutex].functions: // TitanEngine.Handler[Mutex].functions:
__declspec(dllexport) long TITCALL HandlerEnumerateOpenMutexes(HANDLE hProcess, DWORD ProcessId, LPVOID HandleBuffer, DWORD MaxHandleCount) __declspec(dllexport) long TITCALL HandlerEnumerateOpenMutexes(HANDLE hProcess, DWORD ProcessId, LPVOID HandleBuffer, DWORD MaxHandleCount)

View File

@ -22,7 +22,7 @@ static bool ProcessHookScanAddNewHook(PHOOK_ENTRY HookDetails, void* ptrOriginal
RtlMoveMemory(&MyhookEntry, HookDetails, sizeof HOOK_ENTRY); RtlMoveMemory(&MyhookEntry, HookDetails, sizeof HOOK_ENTRY);
hookEntry.push_back(MyhookEntry); hookEntry.push_back(MyhookEntry);
return(true); return true;
} }
// Global.Engine.Hook.functions: // Global.Engine.Hook.functions:
@ -86,15 +86,15 @@ __declspec(dllexport) bool TITCALL HooksSafeTransitionEx(LPVOID HookAddressArray
VirtualFree(hListThread, NULL, MEM_RELEASE); VirtualFree(hListThread, NULL, MEM_RELEASE);
hListThread = NULL; hListThread = NULL;
} }
return(true); return true;
} }
} }
else else
{ {
return(false); return false;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL HooksSafeTransition(LPVOID HookAddress, bool TransitionStart) __declspec(dllexport) bool TITCALL HooksSafeTransition(LPVOID HookAddress, bool TransitionStart)
{ {
@ -111,10 +111,10 @@ __declspec(dllexport) bool TITCALL HooksIsAddressRedirected(LPVOID HookAddress)
{ {
if(hookEntry[i].HookAddress == HookAddress && hookEntry[i].IATHook == false && hookEntry[i].HookIsEnabled == true) if(hookEntry[i].HookAddress == HookAddress && hookEntry[i].IATHook == false && hookEntry[i].HookIsEnabled == true)
{ {
return(true); return true;
} }
} }
return(false); return false;
} }
__declspec(dllexport) void* TITCALL HooksGetTrampolineAddress(LPVOID HookAddress) __declspec(dllexport) void* TITCALL HooksGetTrampolineAddress(LPVOID HookAddress)
{ {
@ -243,11 +243,11 @@ __declspec(dllexport) bool TITCALL HooksInsertNewRedirection(LPVOID HookAddress,
returnData = HooksInsertNewRedirection(HookAddress, RedirectTo, HookType); returnData = HooksInsertNewRedirection(HookAddress, RedirectTo, HookType);
if(returnData) if(returnData)
{ {
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
} }
@ -382,7 +382,7 @@ __declspec(dllexport) bool TITCALL HooksInsertNewRedirection(LPVOID HookAddress,
RtlMoveMemory(&myHook.HookBytes[0], HookAddress, TEE_MAXIMUM_HOOK_SIZE); RtlMoveMemory(&myHook.HookBytes[0], HookAddress, TEE_MAXIMUM_HOOK_SIZE);
VirtualProtect(HookAddress, TEE_MAXIMUM_HOOK_SIZE, OldProtect, &OldProtect); VirtualProtect(HookAddress, TEE_MAXIMUM_HOOK_SIZE, OldProtect, &OldProtect);
hookEntry.push_back(myHook); hookEntry.push_back(myHook);
return(true); return true;
} }
#else #else
if(VirtualProtect(HookAddress, TEE_MAXIMUM_HOOK_SIZE, PAGE_EXECUTE_READWRITE, &OldProtect)) if(VirtualProtect(HookAddress, TEE_MAXIMUM_HOOK_SIZE, PAGE_EXECUTE_READWRITE, &OldProtect))
@ -394,7 +394,7 @@ __declspec(dllexport) bool TITCALL HooksInsertNewRedirection(LPVOID HookAddress,
RtlMoveMemory(&myHook.HookBytes[0], HookAddress, TEE_MAXIMUM_HOOK_SIZE); RtlMoveMemory(&myHook.HookBytes[0], HookAddress, TEE_MAXIMUM_HOOK_SIZE);
VirtualProtect(HookAddress, TEE_MAXIMUM_HOOK_SIZE, OldProtect, &OldProtect); VirtualProtect(HookAddress, TEE_MAXIMUM_HOOK_SIZE, OldProtect, &OldProtect);
hookEntry.push_back(myHook); hookEntry.push_back(myHook);
return(true); return true;
} }
#endif #endif
} }
@ -409,7 +409,7 @@ __declspec(dllexport) bool TITCALL HooksInsertNewRedirection(LPVOID HookAddress,
RtlMoveMemory(&myHook.HookBytes[0], HookAddress, TEE_MAXIMUM_HOOK_SIZE); RtlMoveMemory(&myHook.HookBytes[0], HookAddress, TEE_MAXIMUM_HOOK_SIZE);
VirtualProtect(HookAddress, TEE_MAXIMUM_HOOK_SIZE, OldProtect, &OldProtect); VirtualProtect(HookAddress, TEE_MAXIMUM_HOOK_SIZE, OldProtect, &OldProtect);
hookEntry.push_back(myHook); hookEntry.push_back(myHook);
return(true); return true;
} }
#else #else
if(VirtualProtect(HookAddress, TEE_MAXIMUM_HOOK_SIZE, PAGE_EXECUTE_READWRITE, &OldProtect)) if(VirtualProtect(HookAddress, TEE_MAXIMUM_HOOK_SIZE, PAGE_EXECUTE_READWRITE, &OldProtect))
@ -421,12 +421,12 @@ __declspec(dllexport) bool TITCALL HooksInsertNewRedirection(LPVOID HookAddress,
RtlMoveMemory(&myHook.HookBytes[0], HookAddress, TEE_MAXIMUM_HOOK_SIZE); RtlMoveMemory(&myHook.HookBytes[0], HookAddress, TEE_MAXIMUM_HOOK_SIZE);
VirtualProtect(HookAddress, TEE_MAXIMUM_HOOK_SIZE, OldProtect, &OldProtect); VirtualProtect(HookAddress, TEE_MAXIMUM_HOOK_SIZE, OldProtect, &OldProtect);
hookEntry.push_back(myHook); hookEntry.push_back(myHook);
return(true); return true;
} }
#endif #endif
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL HooksInsertNewIATRedirectionEx(ULONG_PTR FileMapVA, ULONG_PTR LoadedModuleBase, char* szHookFunction, LPVOID RedirectTo) __declspec(dllexport) bool TITCALL HooksInsertNewIATRedirectionEx(ULONG_PTR FileMapVA, ULONG_PTR LoadedModuleBase, char* szHookFunction, LPVOID RedirectTo)
{ {
@ -466,7 +466,7 @@ __declspec(dllexport) bool TITCALL HooksInsertNewIATRedirectionEx(ULONG_PTR File
} }
else else
{ {
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -509,11 +509,11 @@ __declspec(dllexport) bool TITCALL HooksInsertNewIATRedirectionEx(ULONG_PTR File
} }
ImportIID = (PIMAGE_IMPORT_DESCRIPTOR)((ULONG_PTR)ImportIID + sizeof IMAGE_IMPORT_DESCRIPTOR); ImportIID = (PIMAGE_IMPORT_DESCRIPTOR)((ULONG_PTR)ImportIID + sizeof IMAGE_IMPORT_DESCRIPTOR);
} }
return(true); return true;
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
return(false); return false;
} }
} }
} }
@ -558,25 +558,25 @@ __declspec(dllexport) bool TITCALL HooksInsertNewIATRedirectionEx(ULONG_PTR File
} }
ImportIID = (PIMAGE_IMPORT_DESCRIPTOR)((ULONG_PTR)ImportIID + sizeof IMAGE_IMPORT_DESCRIPTOR); ImportIID = (PIMAGE_IMPORT_DESCRIPTOR)((ULONG_PTR)ImportIID + sizeof IMAGE_IMPORT_DESCRIPTOR);
} }
return(true); return true;
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
return(false); return false;
} }
} }
} }
} }
else else
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL HooksInsertNewIATRedirection(char* szModuleName, char* szHookFunction, LPVOID RedirectTo) __declspec(dllexport) bool TITCALL HooksInsertNewIATRedirection(char* szModuleName, char* szHookFunction, LPVOID RedirectTo)
{ {
@ -597,7 +597,7 @@ __declspec(dllexport) bool TITCALL HooksInsertNewIATRedirection(char* szModuleNa
if(HooksInsertNewIATRedirectionEx(FileMapVA, (ULONG_PTR)SelectedModule, szHookFunction, RedirectTo)) if(HooksInsertNewIATRedirectionEx(FileMapVA, (ULONG_PTR)SelectedModule, szHookFunction, RedirectTo))
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(true); return true;
} }
else else
{ {
@ -605,7 +605,7 @@ __declspec(dllexport) bool TITCALL HooksInsertNewIATRedirection(char* szModuleNa
} }
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL HooksRemoveRedirection(LPVOID HookAddress, bool RemoveAll) __declspec(dllexport) bool TITCALL HooksRemoveRedirection(LPVOID HookAddress, bool RemoveAll)
{ {
@ -623,11 +623,11 @@ __declspec(dllexport) bool TITCALL HooksRemoveRedirection(LPVOID HookAddress, bo
RtlMoveMemory(HookAddress, &hookEntry[i].OriginalBytes, hookEntry[i].HookSize); RtlMoveMemory(HookAddress, &hookEntry[i].OriginalBytes, hookEntry[i].HookSize);
VirtualProtect(HookAddress, TEE_MAXIMUM_HOOK_SIZE, OldProtect, &OldProtect); VirtualProtect(HookAddress, TEE_MAXIMUM_HOOK_SIZE, OldProtect, &OldProtect);
hookEntry.erase(hookEntry.begin() + i); hookEntry.erase(hookEntry.begin() + i);
return(true); return true;
} }
} }
} }
return(false); return false;
} }
else else
{ {
@ -640,7 +640,7 @@ __declspec(dllexport) bool TITCALL HooksRemoveRedirection(LPVOID HookAddress, bo
} }
} }
hookEntry.clear(); hookEntry.clear();
return(true); return true;
} }
} }
__declspec(dllexport) bool TITCALL HooksRemoveRedirectionsForModule(HMODULE ModuleBase) __declspec(dllexport) bool TITCALL HooksRemoveRedirectionsForModule(HMODULE ModuleBase)
@ -669,14 +669,14 @@ __declspec(dllexport) bool TITCALL HooksRemoveRedirectionsForModule(HMODULE Modu
} }
if(j == NULL) if(j == NULL)
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
return(true); return true;
} }
__declspec(dllexport) bool TITCALL HooksRemoveIATRedirection(char* szModuleName, char* szHookFunction, bool RemoveAll) __declspec(dllexport) bool TITCALL HooksRemoveIATRedirection(char* szModuleName, char* szHookFunction, bool RemoveAll)
{ {
@ -702,7 +702,7 @@ __declspec(dllexport) bool TITCALL HooksRemoveIATRedirection(char* szModuleName,
i--; i--;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL HooksDisableRedirection(LPVOID HookAddress, bool DisableAll) __declspec(dllexport) bool TITCALL HooksDisableRedirection(LPVOID HookAddress, bool DisableAll)
{ {
@ -720,11 +720,11 @@ __declspec(dllexport) bool TITCALL HooksDisableRedirection(LPVOID HookAddress, b
RtlMoveMemory(HookAddress, &hookEntry[i].OriginalBytes, hookEntry[i].HookSize); RtlMoveMemory(HookAddress, &hookEntry[i].OriginalBytes, hookEntry[i].HookSize);
VirtualProtect(HookAddress, TEE_MAXIMUM_HOOK_SIZE, OldProtect, &OldProtect); VirtualProtect(HookAddress, TEE_MAXIMUM_HOOK_SIZE, OldProtect, &OldProtect);
hookEntry[i].HookIsEnabled = false; hookEntry[i].HookIsEnabled = false;
return(true); return true;
} }
} }
} }
return(false); return false;
} }
else else
{ {
@ -737,7 +737,7 @@ __declspec(dllexport) bool TITCALL HooksDisableRedirection(LPVOID HookAddress, b
hookEntry[i].HookIsEnabled = false; hookEntry[i].HookIsEnabled = false;
} }
} }
return(true); return true;
} }
} }
__declspec(dllexport) bool TITCALL HooksDisableRedirectionsForModule(HMODULE ModuleBase) __declspec(dllexport) bool TITCALL HooksDisableRedirectionsForModule(HMODULE ModuleBase)
@ -766,14 +766,14 @@ __declspec(dllexport) bool TITCALL HooksDisableRedirectionsForModule(HMODULE Mod
} }
if(j == NULL) if(j == NULL)
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
return(true); return true;
} }
__declspec(dllexport) bool TITCALL HooksDisableIATRedirection(char* szModuleName, char* szHookFunction, bool DisableAll) __declspec(dllexport) bool TITCALL HooksDisableIATRedirection(char* szModuleName, char* szHookFunction, bool DisableAll)
{ {
@ -802,7 +802,7 @@ __declspec(dllexport) bool TITCALL HooksDisableIATRedirection(char* szModuleName
i--; i--;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL HooksEnableRedirection(LPVOID HookAddress, bool EnableAll) __declspec(dllexport) bool TITCALL HooksEnableRedirection(LPVOID HookAddress, bool EnableAll)
{ {
@ -820,11 +820,11 @@ __declspec(dllexport) bool TITCALL HooksEnableRedirection(LPVOID HookAddress, bo
RtlMoveMemory(HookAddress, &hookEntry[i].HookBytes, hookEntry[i].HookSize); RtlMoveMemory(HookAddress, &hookEntry[i].HookBytes, hookEntry[i].HookSize);
VirtualProtect(HookAddress, TEE_MAXIMUM_HOOK_SIZE, OldProtect, &OldProtect); VirtualProtect(HookAddress, TEE_MAXIMUM_HOOK_SIZE, OldProtect, &OldProtect);
hookEntry[i].HookIsEnabled = true; hookEntry[i].HookIsEnabled = true;
return(true); return true;
} }
} }
} }
return(false); return false;
} }
else else
{ {
@ -837,7 +837,7 @@ __declspec(dllexport) bool TITCALL HooksEnableRedirection(LPVOID HookAddress, bo
hookEntry[i].HookIsEnabled = true; hookEntry[i].HookIsEnabled = true;
} }
} }
return(true); return true;
} }
} }
__declspec(dllexport) bool TITCALL HooksEnableRedirectionsForModule(HMODULE ModuleBase) __declspec(dllexport) bool TITCALL HooksEnableRedirectionsForModule(HMODULE ModuleBase)
@ -866,14 +866,14 @@ __declspec(dllexport) bool TITCALL HooksEnableRedirectionsForModule(HMODULE Modu
} }
if(j == NULL) if(j == NULL)
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
return(true); return true;
} }
__declspec(dllexport) bool TITCALL HooksEnableIATRedirection(char* szModuleName, char* szHookFunction, bool EnableAll) __declspec(dllexport) bool TITCALL HooksEnableIATRedirection(char* szModuleName, char* szHookFunction, bool EnableAll)
{ {
@ -902,7 +902,7 @@ __declspec(dllexport) bool TITCALL HooksEnableIATRedirection(char* szModuleName,
i--; i--;
} }
} }
return(false); return false;
} }
__declspec(dllexport) void TITCALL HooksScanModuleMemory(HMODULE ModuleBase, LPVOID CallBack) __declspec(dllexport) void TITCALL HooksScanModuleMemory(HMODULE ModuleBase, LPVOID CallBack)
{ {

View File

@ -73,7 +73,7 @@ __declspec(dllexport) bool TITCALL ImporterExportIATEx(char* szDumpFileName, cha
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL ImporterExportIATExW(wchar_t* szDumpFileName, wchar_t* szExportFileName, wchar_t* szSectionName) __declspec(dllexport) bool TITCALL ImporterExportIATExW(wchar_t* szDumpFileName, wchar_t* szExportFileName, wchar_t* szSectionName)
@ -271,11 +271,11 @@ __declspec(dllexport) bool TITCALL ImporterIsForwardedAPI(HANDLE hProcess, ULONG
{ {
if((ULONG_PTR)EngineGlobalAPIHandler(hProcess, NULL, APIAddress, NULL, UE_OPTION_IMPORTER_RETURN_FORWARDER_DLLINDEX) > NULL) if((ULONG_PTR)EngineGlobalAPIHandler(hProcess, NULL, APIAddress, NULL, UE_OPTION_IMPORTER_RETURN_FORWARDER_DLLINDEX) > NULL)
{ {
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) void* TITCALL ImporterGetForwardedAPIName(HANDLE hProcess, ULONG_PTR APIAddress) __declspec(dllexport) void* TITCALL ImporterGetForwardedAPIName(HANDLE hProcess, ULONG_PTR APIAddress)
@ -316,7 +316,7 @@ __declspec(dllexport) bool TITCALL ImporterCopyOriginalIAT(char* szOriginalFile,
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL ImporterCopyOriginalIATW(wchar_t* szOriginalFile, wchar_t* szDumpFile) __declspec(dllexport) bool TITCALL ImporterCopyOriginalIATW(wchar_t* szOriginalFile, wchar_t* szDumpFile)
@ -362,7 +362,7 @@ __declspec(dllexport) bool TITCALL ImporterCopyOriginalIATW(wchar_t* szOriginalF
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
UnMapFileEx(FileHandle1, FileSize1, FileMap1, FileMapVA1); UnMapFileEx(FileHandle1, FileSize1, FileMap1, FileMapVA1);
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -388,13 +388,13 @@ __declspec(dllexport) bool TITCALL ImporterCopyOriginalIATW(wchar_t* szOriginalF
SetPE32DataForMappedFile(FileMapVA1, NULL, UE_IMPORTTABLESIZE, (ULONG_PTR)IATHeaderData); SetPE32DataForMappedFile(FileMapVA1, NULL, UE_IMPORTTABLESIZE, (ULONG_PTR)IATHeaderData);
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
UnMapFileEx(FileHandle1, FileSize1, FileMap1, FileMapVA1); UnMapFileEx(FileHandle1, FileSize1, FileMap1, FileMapVA1);
return(true); return true;
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
UnMapFileEx(FileHandle1, FileSize1, FileMap1, FileMapVA1); UnMapFileEx(FileHandle1, FileSize1, FileMap1, FileMapVA1);
return(false); return false;
} }
} }
} }
@ -403,7 +403,7 @@ __declspec(dllexport) bool TITCALL ImporterCopyOriginalIATW(wchar_t* szOriginalF
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL ImporterLoadImportTable(char* szFileName) __declspec(dllexport) bool TITCALL ImporterLoadImportTable(char* szFileName)
{ {
@ -417,7 +417,7 @@ __declspec(dllexport) bool TITCALL ImporterLoadImportTable(char* szFileName)
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL ImporterLoadImportTableW(wchar_t* szFileName) __declspec(dllexport) bool TITCALL ImporterLoadImportTableW(wchar_t* szFileName)
@ -456,7 +456,7 @@ __declspec(dllexport) bool TITCALL ImporterLoadImportTableW(wchar_t* szFileName)
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -495,13 +495,13 @@ __declspec(dllexport) bool TITCALL ImporterLoadImportTableW(wchar_t* szFileName)
ImportIID = (PIMAGE_IMPORT_DESCRIPTOR)((ULONG_PTR)ImportIID + sizeof IMAGE_IMPORT_DESCRIPTOR); ImportIID = (PIMAGE_IMPORT_DESCRIPTOR)((ULONG_PTR)ImportIID + sizeof IMAGE_IMPORT_DESCRIPTOR);
} }
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(true); return true;
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
ImporterCleanup(); ImporterCleanup();
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
} }
@ -542,13 +542,13 @@ __declspec(dllexport) bool TITCALL ImporterLoadImportTableW(wchar_t* szFileName)
ImportIID = (PIMAGE_IMPORT_DESCRIPTOR)((ULONG_PTR)ImportIID + sizeof IMAGE_IMPORT_DESCRIPTOR); ImportIID = (PIMAGE_IMPORT_DESCRIPTOR)((ULONG_PTR)ImportIID + sizeof IMAGE_IMPORT_DESCRIPTOR);
} }
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(true); return true;
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
ImporterCleanup(); ImporterCleanup();
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
} }
@ -556,15 +556,15 @@ __declspec(dllexport) bool TITCALL ImporterLoadImportTableW(wchar_t* szFileName)
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
*/ */
} }
__declspec(dllexport) bool TITCALL ImporterMoveOriginalIAT(char* szOriginalFile, char* szDumpFile, char* szSectionName) __declspec(dllexport) bool TITCALL ImporterMoveOriginalIAT(char* szOriginalFile, char* szDumpFile, char* szSectionName)
@ -574,7 +574,7 @@ __declspec(dllexport) bool TITCALL ImporterMoveOriginalIAT(char* szOriginalFile,
{ {
return(ImporterExportIATEx(szDumpFile, szSectionName)); return(ImporterExportIATEx(szDumpFile, szSectionName));
}*/ }*/
return(false); return false;
} }
__declspec(dllexport) bool TITCALL ImporterMoveOriginalIATW(wchar_t* szOriginalFile, wchar_t* szDumpFile, char* szSectionName) __declspec(dllexport) bool TITCALL ImporterMoveOriginalIATW(wchar_t* szOriginalFile, wchar_t* szDumpFile, char* szSectionName)
{ {
@ -583,7 +583,7 @@ __declspec(dllexport) bool TITCALL ImporterMoveOriginalIATW(wchar_t* szOriginalF
{ {
return(ImporterExportIATExW(szDumpFile, szSectionName)); return(ImporterExportIATExW(szDumpFile, szSectionName));
}*/ }*/
return(false); return false;
} }
__declspec(dllexport) void TITCALL ImporterAutoSearchIAT(DWORD ProcessId, char* szFileName, ULONG_PTR SearchStart, LPVOID pIATStart, LPVOID pIATSize) __declspec(dllexport) void TITCALL ImporterAutoSearchIAT(DWORD ProcessId, char* szFileName, ULONG_PTR SearchStart, LPVOID pIATStart, LPVOID pIATSize)
{ {

View File

@ -15,7 +15,7 @@ __declspec(dllexport) bool TITCALL RemoteLoadLibrary(HANDLE hProcess, char* szLi
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL RemoteLoadLibraryW(HANDLE hProcess, wchar_t* szLibraryFile, bool WaitForThreadExit) __declspec(dllexport) bool TITCALL RemoteLoadLibraryW(HANDLE hProcess, wchar_t* szLibraryFile, bool WaitForThreadExit)
@ -68,7 +68,7 @@ __declspec(dllexport) bool TITCALL RemoteLoadLibraryW(HANDLE hProcess, wchar_t*
{ {
if(ExitCode == NULL) if(ExitCode == NULL)
{ {
return(false); return false;
} }
} }
} }
@ -86,7 +86,7 @@ __declspec(dllexport) bool TITCALL RemoteLoadLibraryW(HANDLE hProcess, wchar_t*
engineReservedMemoryProcess = hProcess; engineReservedMemoryProcess = hProcess;
ThreaderSetCallBackForNextExitThreadEvent((LPVOID)&injectedTerminator); ThreaderSetCallBackForNextExitThreadEvent((LPVOID)&injectedTerminator);
} }
return(true); return true;
} }
else else
{ {
@ -94,7 +94,7 @@ __declspec(dllexport) bool TITCALL RemoteLoadLibraryW(HANDLE hProcess, wchar_t*
VirtualFreeEx(hProcess, remStringData, NULL, MEM_RELEASE); VirtualFreeEx(hProcess, remStringData, NULL, MEM_RELEASE);
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL RemoteFreeLibrary(HANDLE hProcess, HMODULE hModule, char* szLibraryFile, bool WaitForThreadExit) __declspec(dllexport) bool TITCALL RemoteFreeLibrary(HANDLE hProcess, HMODULE hModule, char* szLibraryFile, bool WaitForThreadExit)
{ {
@ -108,7 +108,7 @@ __declspec(dllexport) bool TITCALL RemoteFreeLibrary(HANDLE hProcess, HMODULE hM
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL RemoteFreeLibraryW(HANDLE hProcess, HMODULE hModule, wchar_t* szLibraryFile, bool WaitForThreadExit) __declspec(dllexport) bool TITCALL RemoteFreeLibraryW(HANDLE hProcess, HMODULE hModule, wchar_t* szLibraryFile, bool WaitForThreadExit)
@ -165,7 +165,7 @@ __declspec(dllexport) bool TITCALL RemoteFreeLibraryW(HANDLE hProcess, HMODULE h
{ {
if(ExitCode == NULL) if(ExitCode == NULL)
{ {
return(false); return false;
} }
} }
} }
@ -183,7 +183,7 @@ __declspec(dllexport) bool TITCALL RemoteFreeLibraryW(HANDLE hProcess, HMODULE h
engineReservedMemoryProcess = hProcess; engineReservedMemoryProcess = hProcess;
ThreaderSetCallBackForNextExitThreadEvent((LPVOID)&injectedTerminator); ThreaderSetCallBackForNextExitThreadEvent((LPVOID)&injectedTerminator);
} }
return(true); return true;
} }
else else
{ {
@ -211,7 +211,7 @@ __declspec(dllexport) bool TITCALL RemoteFreeLibraryW(HANDLE hProcess, HMODULE h
{ {
if(ExitCode == NULL) if(ExitCode == NULL)
{ {
return(false); return false;
} }
} }
} }
@ -229,7 +229,7 @@ __declspec(dllexport) bool TITCALL RemoteFreeLibraryW(HANDLE hProcess, HMODULE h
engineReservedMemoryProcess = hProcess; engineReservedMemoryProcess = hProcess;
ThreaderSetCallBackForNextExitThreadEvent((LPVOID)&injectedTerminator); ThreaderSetCallBackForNextExitThreadEvent((LPVOID)&injectedTerminator);
} }
return(true); return true;
} }
else else
{ {
@ -238,7 +238,7 @@ __declspec(dllexport) bool TITCALL RemoteFreeLibraryW(HANDLE hProcess, HMODULE h
} }
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL RemoteExitProcess(HANDLE hProcess, DWORD ExitCode) __declspec(dllexport) bool TITCALL RemoteExitProcess(HANDLE hProcess, DWORD ExitCode)
{ {
@ -268,7 +268,7 @@ __declspec(dllexport) bool TITCALL RemoteExitProcess(HANDLE hProcess, DWORD Exit
WriteProcessMemory(hProcess, remStringData, &APIData, sizeof InjectCodeData, &NumberOfBytesWritten); WriteProcessMemory(hProcess, remStringData, &APIData, sizeof InjectCodeData, &NumberOfBytesWritten);
hThread = CreateRemoteThread(hProcess, NULL, NULL, (LPTHREAD_START_ROUTINE)remCodeData, remStringData, NULL, &ThreadId); hThread = CreateRemoteThread(hProcess, NULL, NULL, (LPTHREAD_START_ROUTINE)remCodeData, remStringData, NULL, &ThreadId);
VirtualFreeEx(hProcess, remCodeData, NULL, MEM_RELEASE); VirtualFreeEx(hProcess, remCodeData, NULL, MEM_RELEASE);
return(true); return true;
} }
else else
{ {
@ -276,5 +276,5 @@ __declspec(dllexport) bool TITCALL RemoteExitProcess(HANDLE hProcess, DWORD Exit
VirtualFreeEx(hProcess, remStringData, NULL, MEM_RELEASE); VirtualFreeEx(hProcess, remStringData, NULL, MEM_RELEASE);
} }
} }
return(false); return false;
} }

View File

@ -20,9 +20,9 @@ __declspec(dllexport) bool TITCALL LibrarianSetBreakPoint(char* szLibraryName, D
ptrLibrarianData->bpxCallBack = bpxCallBack; ptrLibrarianData->bpxCallBack = bpxCallBack;
ptrLibrarianData->bpxSingleShoot = SingleShoot; ptrLibrarianData->bpxSingleShoot = SingleShoot;
ptrLibrarianData->bpxType = bpxType; ptrLibrarianData->bpxType = bpxType;
return(true); return true;
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL LibrarianRemoveBreakPoint(char* szLibraryName, DWORD bpxType) __declspec(dllexport) bool TITCALL LibrarianRemoveBreakPoint(char* szLibraryName, DWORD bpxType)
@ -45,9 +45,9 @@ __declspec(dllexport) bool TITCALL LibrarianRemoveBreakPoint(char* szLibraryName
ptrLibrarianData = (PLIBRARY_BREAK_DATA)((ULONG_PTR)ptrLibrarianData + sizeof LIBRARY_BREAK_DATA); ptrLibrarianData = (PLIBRARY_BREAK_DATA)((ULONG_PTR)ptrLibrarianData + sizeof LIBRARY_BREAK_DATA);
i--; i--;
} }
return(true); return true;
} }
return(false); return false;
} }
__declspec(dllexport) void* TITCALL LibrarianGetLibraryInfo(char* szLibraryName) __declspec(dllexport) void* TITCALL LibrarianGetLibraryInfo(char* szLibraryName)

View File

@ -19,7 +19,7 @@ __declspec(dllexport) bool TITCALL FindOEPGenerically(char* szFileName, LPVOID T
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL FindOEPGenericallyW(wchar_t* szFileName, LPVOID TraceInitCallBack, LPVOID CallBack) __declspec(dllexport) bool TITCALL FindOEPGenericallyW(wchar_t* szFileName, LPVOID TraceInitCallBack, LPVOID CallBack)
@ -36,5 +36,5 @@ __declspec(dllexport) bool TITCALL FindOEPGenericallyW(wchar_t* szFileName, LPVO
VirtualFree(glbEntryTracerData.SectionData[i].AllocatedSection, NULL, MEM_RELEASE); VirtualFree(glbEntryTracerData.SectionData[i].AllocatedSection, NULL, MEM_RELEASE);
} }
} }
return(false); return false;
} }

View File

@ -406,7 +406,7 @@ __declspec(dllexport) bool TITCALL GetPE32DataFromMappedFileEx(ULONG_PTR FileMap
} }
else else
{ {
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -436,7 +436,7 @@ __declspec(dllexport) bool TITCALL GetPE32DataFromMappedFileEx(ULONG_PTR FileMap
PE32Structure->SubSystem = PEHeader32->OptionalHeader.Subsystem; PE32Structure->SubSystem = PEHeader32->OptionalHeader.Subsystem;
PE32Structure->Characteristics = PEHeader32->FileHeader.Characteristics; PE32Structure->Characteristics = PEHeader32->FileHeader.Characteristics;
PE32Structure->NumberOfRvaAndSizes = PEHeader32->OptionalHeader.NumberOfRvaAndSizes; PE32Structure->NumberOfRvaAndSizes = PEHeader32->OptionalHeader.NumberOfRvaAndSizes;
return(true); return true;
} }
else else
{ {
@ -466,15 +466,15 @@ __declspec(dllexport) bool TITCALL GetPE32DataFromMappedFileEx(ULONG_PTR FileMap
PE64Structure->SubSystem = PEHeader64->OptionalHeader.Subsystem; PE64Structure->SubSystem = PEHeader64->OptionalHeader.Subsystem;
PE64Structure->Characteristics = PEHeader64->FileHeader.Characteristics; PE64Structure->Characteristics = PEHeader64->FileHeader.Characteristics;
PE64Structure->NumberOfRvaAndSizes = PEHeader64->OptionalHeader.NumberOfRvaAndSizes; PE64Structure->NumberOfRvaAndSizes = PEHeader64->OptionalHeader.NumberOfRvaAndSizes;
return(true); return true;
} }
} }
else else
{ {
return(false); return false;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL GetPE32DataEx(char* szFileName, LPVOID DataStorage) __declspec(dllexport) bool TITCALL GetPE32DataEx(char* szFileName, LPVOID DataStorage)
{ {
@ -491,16 +491,16 @@ __declspec(dllexport) bool TITCALL GetPE32DataEx(char* szFileName, LPVOID DataSt
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
if(ReturnValue) if(ReturnValue)
{ {
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL GetPE32DataExW(wchar_t* szFileName, LPVOID DataStorage) __declspec(dllexport) bool TITCALL GetPE32DataExW(wchar_t* szFileName, LPVOID DataStorage)
@ -518,16 +518,16 @@ __declspec(dllexport) bool TITCALL GetPE32DataExW(wchar_t* szFileName, LPVOID Da
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
if(ReturnValue) if(ReturnValue)
{ {
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL SetPE32DataForMappedFile(ULONG_PTR FileMapVA, DWORD WhichSection, DWORD WhichData, ULONG_PTR NewDataValue) __declspec(dllexport) bool TITCALL SetPE32DataForMappedFile(ULONG_PTR FileMapVA, DWORD WhichSection, DWORD WhichData, ULONG_PTR NewDataValue)
@ -557,7 +557,7 @@ __declspec(dllexport) bool TITCALL SetPE32DataForMappedFile(ULONG_PTR FileMapVA,
} }
else else
{ {
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -570,131 +570,131 @@ __declspec(dllexport) bool TITCALL SetPE32DataForMappedFile(ULONG_PTR FileMapVA,
if(WhichData == UE_PE_OFFSET) if(WhichData == UE_PE_OFFSET)
{ {
DOSHeader->e_lfanew = (DWORD)NewDataValue; DOSHeader->e_lfanew = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_IMAGEBASE) else if(WhichData == UE_IMAGEBASE)
{ {
PEHeader32->OptionalHeader.ImageBase = (DWORD)NewDataValue; PEHeader32->OptionalHeader.ImageBase = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_OEP) else if(WhichData == UE_OEP)
{ {
PEHeader32->OptionalHeader.AddressOfEntryPoint = (DWORD)NewDataValue; PEHeader32->OptionalHeader.AddressOfEntryPoint = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_BASEOFCODE) else if(WhichData == UE_BASEOFCODE)
{ {
PEHeader32->OptionalHeader.BaseOfCode = (DWORD)NewDataValue; PEHeader32->OptionalHeader.BaseOfCode = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_BASEOFDATA) else if(WhichData == UE_BASEOFDATA)
{ {
PEHeader32->OptionalHeader.BaseOfData = (DWORD)NewDataValue; PEHeader32->OptionalHeader.BaseOfData = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_SIZEOFIMAGE) else if(WhichData == UE_SIZEOFIMAGE)
{ {
PEHeader32->OptionalHeader.SizeOfImage = (DWORD)NewDataValue; PEHeader32->OptionalHeader.SizeOfImage = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_SIZEOFHEADERS) else if(WhichData == UE_SIZEOFHEADERS)
{ {
PEHeader32->OptionalHeader.SizeOfHeaders = (DWORD)NewDataValue; PEHeader32->OptionalHeader.SizeOfHeaders = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_SIZEOFOPTIONALHEADER) else if(WhichData == UE_SIZEOFOPTIONALHEADER)
{ {
PEHeader32->FileHeader.SizeOfOptionalHeader = (WORD)NewDataValue; PEHeader32->FileHeader.SizeOfOptionalHeader = (WORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_SECTIONALIGNMENT) else if(WhichData == UE_SECTIONALIGNMENT)
{ {
PEHeader32->OptionalHeader.SectionAlignment = (WORD)NewDataValue; PEHeader32->OptionalHeader.SectionAlignment = (WORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_IMPORTTABLEADDRESS) else if(WhichData == UE_IMPORTTABLEADDRESS)
{ {
PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress = (DWORD)NewDataValue; PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_IMPORTTABLESIZE) else if(WhichData == UE_IMPORTTABLESIZE)
{ {
PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].Size = (DWORD)NewDataValue; PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].Size = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_RESOURCETABLEADDRESS) else if(WhichData == UE_RESOURCETABLEADDRESS)
{ {
PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].VirtualAddress = (DWORD)NewDataValue; PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].VirtualAddress = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_RESOURCETABLESIZE) else if(WhichData == UE_RESOURCETABLESIZE)
{ {
PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].Size = (DWORD)NewDataValue; PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].Size = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_EXPORTTABLEADDRESS) else if(WhichData == UE_EXPORTTABLEADDRESS)
{ {
PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress = (DWORD)NewDataValue; PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_EXPORTTABLESIZE) else if(WhichData == UE_EXPORTTABLESIZE)
{ {
PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].Size = (DWORD)NewDataValue; PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].Size = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_TLSTABLEADDRESS) else if(WhichData == UE_TLSTABLEADDRESS)
{ {
PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress = (DWORD)NewDataValue; PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_TLSTABLESIZE) else if(WhichData == UE_TLSTABLESIZE)
{ {
PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].Size = (DWORD)NewDataValue; PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].Size = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_RELOCATIONTABLEADDRESS) else if(WhichData == UE_RELOCATIONTABLEADDRESS)
{ {
PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress = (DWORD)NewDataValue; PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_RELOCATIONTABLESIZE) else if(WhichData == UE_RELOCATIONTABLESIZE)
{ {
PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size = (DWORD)NewDataValue; PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_TIMEDATESTAMP) else if(WhichData == UE_TIMEDATESTAMP)
{ {
PEHeader32->FileHeader.TimeDateStamp = (DWORD)NewDataValue; PEHeader32->FileHeader.TimeDateStamp = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_SECTIONNUMBER) else if(WhichData == UE_SECTIONNUMBER)
{ {
PEHeader32->FileHeader.NumberOfSections = (WORD)NewDataValue; PEHeader32->FileHeader.NumberOfSections = (WORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_CHECKSUM) else if(WhichData == UE_CHECKSUM)
{ {
PEHeader32->OptionalHeader.CheckSum = (DWORD)NewDataValue; PEHeader32->OptionalHeader.CheckSum = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_SUBSYSTEM) else if(WhichData == UE_SUBSYSTEM)
{ {
PEHeader32->OptionalHeader.Subsystem = (WORD)NewDataValue; PEHeader32->OptionalHeader.Subsystem = (WORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_CHARACTERISTICS) else if(WhichData == UE_CHARACTERISTICS)
{ {
PEHeader32->FileHeader.Characteristics = (WORD)NewDataValue; PEHeader32->FileHeader.Characteristics = (WORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_NUMBEROFRVAANDSIZES) else if(WhichData == UE_NUMBEROFRVAANDSIZES)
{ {
PEHeader32->OptionalHeader.NumberOfRvaAndSizes = (DWORD)NewDataValue; PEHeader32->OptionalHeader.NumberOfRvaAndSizes = (DWORD)NewDataValue;
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
else else
@ -705,45 +705,45 @@ __declspec(dllexport) bool TITCALL SetPE32DataForMappedFile(ULONG_PTR FileMapVA,
if(WhichData == UE_SECTIONNAME) if(WhichData == UE_SECTIONNAME)
{ {
memcpy(PESections->Name, (void*)NewDataValue, 8); memcpy(PESections->Name, (void*)NewDataValue, 8);
return(true); return true;
} }
else if(WhichData == UE_SECTIONVIRTUALOFFSET) else if(WhichData == UE_SECTIONVIRTUALOFFSET)
{ {
PESections->VirtualAddress = (DWORD)NewDataValue; PESections->VirtualAddress = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_SECTIONVIRTUALSIZE) else if(WhichData == UE_SECTIONVIRTUALSIZE)
{ {
PESections->Misc.VirtualSize = (DWORD)NewDataValue; PESections->Misc.VirtualSize = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_SECTIONRAWOFFSET) else if(WhichData == UE_SECTIONRAWOFFSET)
{ {
PESections->PointerToRawData = (DWORD)NewDataValue; PESections->PointerToRawData = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_SECTIONRAWSIZE) else if(WhichData == UE_SECTIONRAWSIZE)
{ {
PESections->SizeOfRawData = (DWORD)NewDataValue; PESections->SizeOfRawData = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_SECTIONFLAGS) else if(WhichData == UE_SECTIONFLAGS)
{ {
PESections->Characteristics = (DWORD)NewDataValue; PESections->Characteristics = (DWORD)NewDataValue;
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
} }
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
return(false); return false;
} }
return(false); return false;
} }
else else
{ {
@ -756,127 +756,127 @@ __declspec(dllexport) bool TITCALL SetPE32DataForMappedFile(ULONG_PTR FileMapVA,
if(WhichData == UE_PE_OFFSET) if(WhichData == UE_PE_OFFSET)
{ {
DOSHeader->e_lfanew = (DWORD)NewDataValue; DOSHeader->e_lfanew = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_IMAGEBASE) else if(WhichData == UE_IMAGEBASE)
{ {
PEHeader64->OptionalHeader.ImageBase = NewDataValue; PEHeader64->OptionalHeader.ImageBase = NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_OEP) else if(WhichData == UE_OEP)
{ {
PEHeader64->OptionalHeader.AddressOfEntryPoint = (DWORD)NewDataValue; PEHeader64->OptionalHeader.AddressOfEntryPoint = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_BASEOFCODE) else if(WhichData == UE_BASEOFCODE)
{ {
PEHeader64->OptionalHeader.BaseOfCode = (DWORD)NewDataValue; PEHeader64->OptionalHeader.BaseOfCode = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_BASEOFDATA) else if(WhichData == UE_BASEOFDATA)
{ {
//non-existant in IMAGE_OPTIONAL_HEADER64 //non-existant in IMAGE_OPTIONAL_HEADER64
return(false); return false;
} }
else if(WhichData == UE_SIZEOFIMAGE) else if(WhichData == UE_SIZEOFIMAGE)
{ {
PEHeader64->OptionalHeader.SizeOfImage = (DWORD)NewDataValue; PEHeader64->OptionalHeader.SizeOfImage = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_SIZEOFHEADERS) else if(WhichData == UE_SIZEOFHEADERS)
{ {
PEHeader64->OptionalHeader.SizeOfHeaders = (DWORD)NewDataValue; PEHeader64->OptionalHeader.SizeOfHeaders = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_SIZEOFOPTIONALHEADER) else if(WhichData == UE_SIZEOFOPTIONALHEADER)
{ {
PEHeader64->FileHeader.SizeOfOptionalHeader = (WORD)NewDataValue; PEHeader64->FileHeader.SizeOfOptionalHeader = (WORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_SECTIONALIGNMENT) else if(WhichData == UE_SECTIONALIGNMENT)
{ {
PEHeader64->OptionalHeader.SectionAlignment = (DWORD)NewDataValue; PEHeader64->OptionalHeader.SectionAlignment = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_IMPORTTABLEADDRESS) else if(WhichData == UE_IMPORTTABLEADDRESS)
{ {
PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress = (DWORD)NewDataValue; PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_IMPORTTABLESIZE) else if(WhichData == UE_IMPORTTABLESIZE)
{ {
PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].Size = (DWORD)NewDataValue; PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].Size = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_RESOURCETABLEADDRESS) else if(WhichData == UE_RESOURCETABLEADDRESS)
{ {
PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].VirtualAddress = (DWORD)NewDataValue; PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].VirtualAddress = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_RESOURCETABLESIZE) else if(WhichData == UE_RESOURCETABLESIZE)
{ {
PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].Size = (DWORD)NewDataValue; PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].Size = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_EXPORTTABLEADDRESS) else if(WhichData == UE_EXPORTTABLEADDRESS)
{ {
PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress = (DWORD)NewDataValue; PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_EXPORTTABLESIZE) else if(WhichData == UE_EXPORTTABLESIZE)
{ {
PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].Size = (DWORD)NewDataValue; PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].Size = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_TLSTABLEADDRESS) else if(WhichData == UE_TLSTABLEADDRESS)
{ {
PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress = (DWORD)NewDataValue; PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_TLSTABLESIZE) else if(WhichData == UE_TLSTABLESIZE)
{ {
PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].Size = (DWORD)NewDataValue; PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].Size = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_RELOCATIONTABLEADDRESS) else if(WhichData == UE_RELOCATIONTABLEADDRESS)
{ {
PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress = (DWORD)NewDataValue; PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_RELOCATIONTABLESIZE) else if(WhichData == UE_RELOCATIONTABLESIZE)
{ {
PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size = (DWORD)NewDataValue; PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_TIMEDATESTAMP) else if(WhichData == UE_TIMEDATESTAMP)
{ {
PEHeader64->FileHeader.TimeDateStamp = (DWORD)NewDataValue; PEHeader64->FileHeader.TimeDateStamp = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_SECTIONNUMBER) else if(WhichData == UE_SECTIONNUMBER)
{ {
PEHeader64->FileHeader.NumberOfSections = (WORD)NewDataValue; PEHeader64->FileHeader.NumberOfSections = (WORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_CHECKSUM) else if(WhichData == UE_CHECKSUM)
{ {
PEHeader64->OptionalHeader.CheckSum = (DWORD)NewDataValue; PEHeader64->OptionalHeader.CheckSum = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_SUBSYSTEM) else if(WhichData == UE_SUBSYSTEM)
{ {
PEHeader64->OptionalHeader.Subsystem = (WORD)NewDataValue; PEHeader64->OptionalHeader.Subsystem = (WORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_CHARACTERISTICS) else if(WhichData == UE_CHARACTERISTICS)
{ {
PEHeader64->FileHeader.Characteristics = (WORD)NewDataValue; PEHeader64->FileHeader.Characteristics = (WORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_NUMBEROFRVAANDSIZES) else if(WhichData == UE_NUMBEROFRVAANDSIZES)
{ {
PEHeader64->OptionalHeader.NumberOfRvaAndSizes = (DWORD)NewDataValue; PEHeader64->OptionalHeader.NumberOfRvaAndSizes = (DWORD)NewDataValue;
return(true); return true;
} }
else else
{ {
@ -890,53 +890,53 @@ __declspec(dllexport) bool TITCALL SetPE32DataForMappedFile(ULONG_PTR FileMapVA,
PESections = (PIMAGE_SECTION_HEADER)((ULONG_PTR)PESections + WhichSection * IMAGE_SIZEOF_SECTION_HEADER); PESections = (PIMAGE_SECTION_HEADER)((ULONG_PTR)PESections + WhichSection * IMAGE_SIZEOF_SECTION_HEADER);
if(WhichData == UE_SECTIONNAME) if(WhichData == UE_SECTIONNAME)
{ {
return(false); return false;
} }
else if(WhichData == UE_SECTIONVIRTUALOFFSET) else if(WhichData == UE_SECTIONVIRTUALOFFSET)
{ {
PESections->VirtualAddress = (DWORD)NewDataValue; PESections->VirtualAddress = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_SECTIONVIRTUALSIZE) else if(WhichData == UE_SECTIONVIRTUALSIZE)
{ {
PESections->Misc.VirtualSize = (DWORD)NewDataValue; PESections->Misc.VirtualSize = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_SECTIONRAWOFFSET) else if(WhichData == UE_SECTIONRAWOFFSET)
{ {
PESections->PointerToRawData = (DWORD)NewDataValue; PESections->PointerToRawData = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_SECTIONRAWSIZE) else if(WhichData == UE_SECTIONRAWSIZE)
{ {
PESections->SizeOfRawData = (DWORD)NewDataValue; PESections->SizeOfRawData = (DWORD)NewDataValue;
return(true); return true;
} }
else if(WhichData == UE_SECTIONFLAGS) else if(WhichData == UE_SECTIONFLAGS)
{ {
PESections->Characteristics = (DWORD)NewDataValue; PESections->Characteristics = (DWORD)NewDataValue;
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
} }
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
return(false); return false;
} }
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL SetPE32Data(char* szFileName, DWORD WhichSection, DWORD WhichData, ULONG_PTR NewDataValue) __declspec(dllexport) bool TITCALL SetPE32Data(char* szFileName, DWORD WhichSection, DWORD WhichData, ULONG_PTR NewDataValue)
{ {
@ -953,16 +953,16 @@ __declspec(dllexport) bool TITCALL SetPE32Data(char* szFileName, DWORD WhichSect
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
if(ReturnValue) if(ReturnValue)
{ {
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL SetPE32DataW(wchar_t* szFileName, DWORD WhichSection, DWORD WhichData, ULONG_PTR NewDataValue) __declspec(dllexport) bool TITCALL SetPE32DataW(wchar_t* szFileName, DWORD WhichSection, DWORD WhichData, ULONG_PTR NewDataValue)
@ -980,16 +980,16 @@ __declspec(dllexport) bool TITCALL SetPE32DataW(wchar_t* szFileName, DWORD Which
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
if(ReturnValue) if(ReturnValue)
{ {
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL SetPE32DataForMappedFileEx(ULONG_PTR FileMapVA, LPVOID DataStorage) __declspec(dllexport) bool TITCALL SetPE32DataForMappedFileEx(ULONG_PTR FileMapVA, LPVOID DataStorage)
@ -1019,7 +1019,7 @@ __declspec(dllexport) bool TITCALL SetPE32DataForMappedFileEx(ULONG_PTR FileMapV
} }
else else
{ {
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -1051,11 +1051,11 @@ __declspec(dllexport) bool TITCALL SetPE32DataForMappedFileEx(ULONG_PTR FileMapV
PEHeader32->OptionalHeader.Subsystem = PE32Structure->SubSystem; PEHeader32->OptionalHeader.Subsystem = PE32Structure->SubSystem;
PEHeader32->FileHeader.Characteristics = PE32Structure->Characteristics; PEHeader32->FileHeader.Characteristics = PE32Structure->Characteristics;
PEHeader32->OptionalHeader.NumberOfRvaAndSizes = PE32Structure->NumberOfRvaAndSizes; PEHeader32->OptionalHeader.NumberOfRvaAndSizes = PE32Structure->NumberOfRvaAndSizes;
return(true); return true;
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
return(false); return false;
} }
} }
else else
@ -1087,20 +1087,20 @@ __declspec(dllexport) bool TITCALL SetPE32DataForMappedFileEx(ULONG_PTR FileMapV
PEHeader64->OptionalHeader.Subsystem = PE64Structure->SubSystem; PEHeader64->OptionalHeader.Subsystem = PE64Structure->SubSystem;
PEHeader64->FileHeader.Characteristics = PE64Structure->Characteristics; PEHeader64->FileHeader.Characteristics = PE64Structure->Characteristics;
PEHeader64->OptionalHeader.NumberOfRvaAndSizes = PE64Structure->NumberOfRvaAndSizes; PEHeader64->OptionalHeader.NumberOfRvaAndSizes = PE64Structure->NumberOfRvaAndSizes;
return(true); return true;
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
return(false); return false;
} }
} }
} }
else else
{ {
return(false); return false;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL SetPE32DataEx(char* szFileName, LPVOID DataStorage) __declspec(dllexport) bool TITCALL SetPE32DataEx(char* szFileName, LPVOID DataStorage)
{ {
@ -1117,16 +1117,16 @@ __declspec(dllexport) bool TITCALL SetPE32DataEx(char* szFileName, LPVOID DataSt
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
if(ReturnValue) if(ReturnValue)
{ {
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL SetPE32DataExW(wchar_t* szFileName, LPVOID DataStorage) __declspec(dllexport) bool TITCALL SetPE32DataExW(wchar_t* szFileName, LPVOID DataStorage)
@ -1144,16 +1144,16 @@ __declspec(dllexport) bool TITCALL SetPE32DataExW(wchar_t* szFileName, LPVOID Da
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
if(ReturnValue) if(ReturnValue)
{ {
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
} }
@ -1164,17 +1164,17 @@ __declspec(dllexport) bool TITCALL IsFileDLL(char* szFileName, ULONG_PTR FileMap
{ {
if((DWORD)GetPE32Data(szFileName, NULL, UE_CHARACTERISTICS) & 0x2000) if((DWORD)GetPE32Data(szFileName, NULL, UE_CHARACTERISTICS) & 0x2000)
{ {
return(true); return true;
} }
} }
else if(FileMapVA != NULL) else if(FileMapVA != NULL)
{ {
if((DWORD)GetPE32DataFromMappedFile(FileMapVA, NULL, UE_CHARACTERISTICS) & 0x2000) if((DWORD)GetPE32DataFromMappedFile(FileMapVA, NULL, UE_CHARACTERISTICS) & 0x2000)
{ {
return(true); return true;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL IsFileDLLW(wchar_t* szFileName, ULONG_PTR FileMapVA) __declspec(dllexport) bool TITCALL IsFileDLLW(wchar_t* szFileName, ULONG_PTR FileMapVA)
@ -1184,15 +1184,15 @@ __declspec(dllexport) bool TITCALL IsFileDLLW(wchar_t* szFileName, ULONG_PTR Fil
{ {
if((DWORD)GetPE32DataW(szFileName, NULL, UE_CHARACTERISTICS) & 0x2000) if((DWORD)GetPE32DataW(szFileName, NULL, UE_CHARACTERISTICS) & 0x2000)
{ {
return(true); return true;
} }
} }
else if(FileMapVA != NULL) else if(FileMapVA != NULL)
{ {
if((DWORD)GetPE32DataFromMappedFile(FileMapVA, NULL, UE_CHARACTERISTICS) & 0x2000) if((DWORD)GetPE32DataFromMappedFile(FileMapVA, NULL, UE_CHARACTERISTICS) & 0x2000)
{ {
return(true); return true;
} }
} }
return(false); return false;
} }

View File

@ -15,7 +15,7 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidEx(char* szFileName, DWORD Che
} }
else else
{ {
return(false); return false;
} }
} }
@ -84,7 +84,7 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
RtlMoveMemory(FileStatusInfo, &myFileStatusInfo, sizeof FILE_STATUS_INFO); RtlMoveMemory(FileStatusInfo, &myFileStatusInfo, sizeof FILE_STATUS_INFO);
} }
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -809,7 +809,7 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
if(myFileStatusInfo.OveralEvaluation == UE_RESULT_FILE_OK) if(myFileStatusInfo.OveralEvaluation == UE_RESULT_FILE_OK)
{ {
return(true); return true;
} }
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
@ -822,7 +822,7 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
RtlMoveMemory(FileStatusInfo, &myFileStatusInfo, sizeof FILE_STATUS_INFO); RtlMoveMemory(FileStatusInfo, &myFileStatusInfo, sizeof FILE_STATUS_INFO);
} }
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
else else
@ -1548,7 +1548,7 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
if(myFileStatusInfo.OveralEvaluation == UE_RESULT_FILE_OK) if(myFileStatusInfo.OveralEvaluation == UE_RESULT_FILE_OK)
{ {
return(true); return true;
} }
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
@ -1561,7 +1561,7 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
RtlMoveMemory(FileStatusInfo, &myFileStatusInfo, sizeof FILE_STATUS_INFO); RtlMoveMemory(FileStatusInfo, &myFileStatusInfo, sizeof FILE_STATUS_INFO);
} }
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
} }
@ -1574,14 +1574,14 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
RtlMoveMemory(FileStatusInfo, &myFileStatusInfo, sizeof FILE_STATUS_INFO); RtlMoveMemory(FileStatusInfo, &myFileStatusInfo, sizeof FILE_STATUS_INFO);
} }
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
if(FileStatusInfo != NULL) if(FileStatusInfo != NULL)
{ {
RtlMoveMemory(FileStatusInfo, &myFileStatusInfo, sizeof FILE_STATUS_INFO); RtlMoveMemory(FileStatusInfo, &myFileStatusInfo, sizeof FILE_STATUS_INFO);
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL FixBrokenPE32FileEx(char* szFileName, LPVOID FileStatusInfo, LPVOID FileFixInfo) __declspec(dllexport) bool TITCALL FixBrokenPE32FileEx(char* szFileName, LPVOID FileStatusInfo, LPVOID FileFixInfo)
{ {
@ -1595,7 +1595,7 @@ __declspec(dllexport) bool TITCALL FixBrokenPE32FileEx(char* szFileName, LPVOID
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL FixBrokenPE32FileExW(wchar_t* szFileName, LPVOID FileStatusInfo, LPVOID FileFixInfo) __declspec(dllexport) bool TITCALL FixBrokenPE32FileExW(wchar_t* szFileName, LPVOID FileStatusInfo, LPVOID FileFixInfo)
@ -1667,37 +1667,37 @@ __declspec(dllexport) bool TITCALL FixBrokenPE32FileExW(wchar_t* szFileName, LPV
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
if(myFileStatusInfo->SignatureMZ != UE_FIELD_OK) if(myFileStatusInfo->SignatureMZ != UE_FIELD_OK)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
else if(myFileStatusInfo->SignaturePE != UE_FIELD_OK) else if(myFileStatusInfo->SignaturePE != UE_FIELD_OK)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
else if(myFileStatusInfo->SectionAlignment != UE_FIELD_OK) else if(myFileStatusInfo->SectionAlignment != UE_FIELD_OK)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
else if(myFileStatusInfo->FileAlignment != UE_FIELD_OK) else if(myFileStatusInfo->FileAlignment != UE_FIELD_OK)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
else if(myFileStatusInfo->ImportTable != UE_FIELD_OK) else if(myFileStatusInfo->ImportTable != UE_FIELD_OK)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
else if(myFileStatusInfo->ImportTableData != UE_FIELD_OK) else if(myFileStatusInfo->ImportTableData != UE_FIELD_OK)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -1733,7 +1733,7 @@ __declspec(dllexport) bool TITCALL FixBrokenPE32FileExW(wchar_t* szFileName, LPV
if(!SetPE32DataForMappedFile(FileMapVA, SectionAttributes, UE_SECTIONFLAGS, 0xE0000020)) if(!SetPE32DataForMappedFile(FileMapVA, SectionAttributes, UE_SECTIONFLAGS, 0xE0000020))
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
if(PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress != NULL) if(PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress != NULL)
@ -2269,7 +2269,7 @@ __declspec(dllexport) bool TITCALL FixBrokenPE32FileExW(wchar_t* szFileName, LPV
if(!SetPE32DataForMappedFile(FileMapVA, SectionNumber, UE_SECTIONFLAGS, 0xE0000020)) if(!SetPE32DataForMappedFile(FileMapVA, SectionNumber, UE_SECTIONFLAGS, 0xE0000020))
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
} }
@ -2283,13 +2283,13 @@ __declspec(dllexport) bool TITCALL FixBrokenPE32FileExW(wchar_t* szFileName, LPV
myFileFixInfo->OveralEvaluation = UE_RESULT_FILE_OK; myFileFixInfo->OveralEvaluation = UE_RESULT_FILE_OK;
myFileFixInfo->FileFixPerformed = FileFixed; myFileFixInfo->FileFixPerformed = FileFixed;
} }
return(true); return true;
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
myFileFixInfo->FixingTerminatedByException = true; myFileFixInfo->FixingTerminatedByException = true;
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
else else
@ -2326,7 +2326,7 @@ __declspec(dllexport) bool TITCALL FixBrokenPE32FileExW(wchar_t* szFileName, LPV
if(!SetPE32DataForMappedFile(FileMapVA, SectionAttributes, UE_SECTIONFLAGS, 0xE0000020)) if(!SetPE32DataForMappedFile(FileMapVA, SectionAttributes, UE_SECTIONFLAGS, 0xE0000020))
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
if(PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress != NULL) if(PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress != NULL)
@ -2862,7 +2862,7 @@ __declspec(dllexport) bool TITCALL FixBrokenPE32FileExW(wchar_t* szFileName, LPV
if(!SetPE32DataForMappedFile(FileMapVA, SectionNumber, UE_SECTIONFLAGS, 0xE0000020)) if(!SetPE32DataForMappedFile(FileMapVA, SectionNumber, UE_SECTIONFLAGS, 0xE0000020))
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
} }
@ -2876,20 +2876,20 @@ __declspec(dllexport) bool TITCALL FixBrokenPE32FileExW(wchar_t* szFileName, LPV
myFileFixInfo->OveralEvaluation = UE_RESULT_FILE_OK; myFileFixInfo->OveralEvaluation = UE_RESULT_FILE_OK;
myFileFixInfo->FileFixPerformed = FileFixed; myFileFixInfo->FileFixPerformed = FileFixed;
} }
return(true); return true;
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
myFileFixInfo->FixingTerminatedByException = true; myFileFixInfo->FixingTerminatedByException = true;
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
} }
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
} }
@ -2913,7 +2913,7 @@ __declspec(dllexport) bool TITCALL FixBrokenPE32FileExW(wchar_t* szFileName, LPV
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -3002,9 +3002,9 @@ __declspec(dllexport) bool TITCALL FixBrokenPE32FileExW(wchar_t* szFileName, LPV
} }
} }
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(true); return true;
} }
} }
} }
return(false); return false;
} }

View File

@ -19,7 +19,7 @@ __declspec(dllexport) bool TITCALL FindOverlay(char* szFileName, LPDWORD Overlay
} }
else else
{ {
return(false); return false;
} }
} }
@ -57,7 +57,7 @@ __declspec(dllexport) bool TITCALL FindOverlayW(wchar_t* szFileName, LPDWORD Ove
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -86,17 +86,17 @@ __declspec(dllexport) bool TITCALL FindOverlayW(wchar_t* szFileName, LPDWORD Ove
*OverlayStart = (DWORD)(SectionRawOffset + SectionRawSize); *OverlayStart = (DWORD)(SectionRawOffset + SectionRawSize);
*OverlaySize = (DWORD)(FileSize - SectionRawOffset - SectionRawSize); *OverlaySize = (DWORD)(FileSize - SectionRawOffset - SectionRawSize);
} }
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
else else
@ -126,27 +126,27 @@ __declspec(dllexport) bool TITCALL FindOverlayW(wchar_t* szFileName, LPDWORD Ove
*OverlayStart = (DWORD)(SectionRawOffset + SectionRawSize); *OverlayStart = (DWORD)(SectionRawOffset + SectionRawSize);
*OverlaySize = (DWORD)(FileSize - SectionRawOffset - SectionRawSize); *OverlaySize = (DWORD)(FileSize - SectionRawOffset - SectionRawSize);
} }
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
} }
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL ExtractOverlay(char* szFileName, char* szExtactedFileName) __declspec(dllexport) bool TITCALL ExtractOverlay(char* szFileName, char* szExtactedFileName)
{ {
@ -162,7 +162,7 @@ __declspec(dllexport) bool TITCALL ExtractOverlay(char* szFileName, char* szExta
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL ExtractOverlayW(wchar_t* szFileName, wchar_t* szExtactedFileName) __declspec(dllexport) bool TITCALL ExtractOverlayW(wchar_t* szFileName, wchar_t* szExtactedFileName)
@ -224,19 +224,19 @@ __declspec(dllexport) bool TITCALL ExtractOverlayW(wchar_t* szFileName, wchar_t*
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
EngineCloseHandle(hFileWrite); EngineCloseHandle(hFileWrite);
return(true); return true;
} }
else else
{ {
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
return(false); return false;
} }
} }
} }
} }
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
return(false); return false;
} }
__declspec(dllexport) bool TITCALL AddOverlay(char* szFileName, char* szOverlayFileName) __declspec(dllexport) bool TITCALL AddOverlay(char* szFileName, char* szOverlayFileName)
{ {
@ -252,7 +252,7 @@ __declspec(dllexport) bool TITCALL AddOverlay(char* szFileName, char* szOverlayF
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL AddOverlayW(wchar_t* szFileName, wchar_t* szOverlayFileName) __declspec(dllexport) bool TITCALL AddOverlayW(wchar_t* szFileName, wchar_t* szOverlayFileName)
@ -310,15 +310,15 @@ __declspec(dllexport) bool TITCALL AddOverlayW(wchar_t* szFileName, wchar_t* szO
} }
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
EngineCloseHandle(hFileRead); EngineCloseHandle(hFileRead);
return(true); return true;
} }
else else
{ {
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
return(false); return false;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL CopyOverlay(char* szInFileName, char* szOutFileName) __declspec(dllexport) bool TITCALL CopyOverlay(char* szInFileName, char* szOutFileName)
{ {
@ -334,7 +334,7 @@ __declspec(dllexport) bool TITCALL CopyOverlay(char* szInFileName, char* szOutFi
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL CopyOverlayW(wchar_t* szInFileName, wchar_t* szOutFileName) __declspec(dllexport) bool TITCALL CopyOverlayW(wchar_t* szInFileName, wchar_t* szOutFileName)
@ -351,11 +351,11 @@ __declspec(dllexport) bool TITCALL CopyOverlayW(wchar_t* szInFileName, wchar_t*
{ {
AddOverlayW(szOutFileName, szTempName); AddOverlayW(szOutFileName, szTempName);
DeleteFileW(szTempName); DeleteFileW(szTempName);
return(true); return true;
} }
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL RemoveOverlay(char* szFileName) __declspec(dllexport) bool TITCALL RemoveOverlay(char* szFileName)
{ {
@ -369,7 +369,7 @@ __declspec(dllexport) bool TITCALL RemoveOverlay(char* szFileName)
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL RemoveOverlayW(wchar_t* szFileName) __declspec(dllexport) bool TITCALL RemoveOverlayW(wchar_t* szFileName)
@ -388,10 +388,10 @@ __declspec(dllexport) bool TITCALL RemoveOverlayW(wchar_t* szFileName)
{ {
FileSize = FileSize - OverlaySize; FileSize = FileSize - OverlaySize;
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(true); return true;
} }
} }
return(false); return false;
} }
__declspec(dllexport) void TITCALL SetSharedOverlay(char* szFileName) __declspec(dllexport) void TITCALL SetSharedOverlay(char* szFileName)

View File

@ -18,7 +18,7 @@ __declspec(dllexport) bool TITCALL ExtractSection(char* szFileName, char* szDump
} }
else else
{ {
return(false); return false;
} }
} }
@ -55,7 +55,7 @@ __declspec(dllexport) bool TITCALL ExtractSectionW(wchar_t* szFileName, wchar_t*
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -73,20 +73,20 @@ __declspec(dllexport) bool TITCALL ExtractSectionW(wchar_t* szFileName, wchar_t*
WriteFile(hFile, (LPCVOID)(FileMapVA + PESections->PointerToRawData), PESections->SizeOfRawData, &NumberOfBytesWritten, NULL); WriteFile(hFile, (LPCVOID)(FileMapVA + PESections->PointerToRawData), PESections->SizeOfRawData, &NumberOfBytesWritten, NULL);
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(true); return true;
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
DeleteFileW(szDumpFileName); DeleteFileW(szDumpFileName);
return(false); return false;
} }
} }
} }
} }
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
else else
{ {
@ -104,29 +104,29 @@ __declspec(dllexport) bool TITCALL ExtractSectionW(wchar_t* szFileName, wchar_t*
WriteFile(hFile, (LPCVOID)(FileMapVA + PESections->PointerToRawData), PESections->SizeOfRawData, &NumberOfBytesWritten, NULL); WriteFile(hFile, (LPCVOID)(FileMapVA + PESections->PointerToRawData), PESections->SizeOfRawData, &NumberOfBytesWritten, NULL);
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(true); return true;
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
DeleteFileW(szDumpFileName); DeleteFileW(szDumpFileName);
return(false); return false;
} }
} }
} }
} }
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL ResortFileSections(char* szFileName) __declspec(dllexport) bool TITCALL ResortFileSections(char* szFileName)
@ -141,7 +141,7 @@ __declspec(dllexport) bool TITCALL ResortFileSections(char* szFileName)
} }
else else
{ {
return(false); return false;
} }
} }
@ -198,7 +198,7 @@ __declspec(dllexport) bool TITCALL ResortFileSectionsW(wchar_t* szFileName)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -248,17 +248,17 @@ __declspec(dllexport) bool TITCALL ResortFileSectionsW(wchar_t* szFileName)
if(CopyFileW(szBackupFile, szFileName, false)) if(CopyFileW(szBackupFile, szFileName, false))
{ {
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(true); return true;
} }
else else
{ {
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
else else
{ {
return(true); return true;
} }
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
@ -266,7 +266,7 @@ __declspec(dllexport) bool TITCALL ResortFileSectionsW(wchar_t* szFileName)
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
VirtualFree(sortedFileName, NULL, MEM_RELEASE); VirtualFree(sortedFileName, NULL, MEM_RELEASE);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
else else
@ -317,17 +317,17 @@ __declspec(dllexport) bool TITCALL ResortFileSectionsW(wchar_t* szFileName)
if(CopyFileW(szBackupFile, szFileName, false)) if(CopyFileW(szBackupFile, szFileName, false))
{ {
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(true); return true;
} }
else else
{ {
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
else else
{ {
return(true); return true;
} }
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
@ -335,7 +335,7 @@ __declspec(dllexport) bool TITCALL ResortFileSectionsW(wchar_t* szFileName)
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
VirtualFree(sortedFileName, NULL, MEM_RELEASE); VirtualFree(sortedFileName, NULL, MEM_RELEASE);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
} }
@ -343,11 +343,11 @@ __declspec(dllexport) bool TITCALL ResortFileSectionsW(wchar_t* szFileName)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
__declspec(dllexport) bool TITCALL MakeAllSectionsRWE(char* szFileName) __declspec(dllexport) bool TITCALL MakeAllSectionsRWE(char* szFileName)
@ -362,7 +362,7 @@ __declspec(dllexport) bool TITCALL MakeAllSectionsRWE(char* szFileName)
} }
else else
{ {
return(false); return false;
} }
} }
@ -414,7 +414,7 @@ __declspec(dllexport) bool TITCALL MakeAllSectionsRWEW(wchar_t* szFileName)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -434,25 +434,25 @@ __declspec(dllexport) bool TITCALL MakeAllSectionsRWEW(wchar_t* szFileName)
if(CopyFileW(szBackupFile, szFileName, false)) if(CopyFileW(szBackupFile, szFileName, false))
{ {
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(true); return true;
} }
else else
{ {
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
else else
{ {
return(true); return true;
} }
return(true); return true;
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
else else
@ -473,25 +473,25 @@ __declspec(dllexport) bool TITCALL MakeAllSectionsRWEW(wchar_t* szFileName)
if(CopyFileW(szBackupFile, szFileName, false)) if(CopyFileW(szBackupFile, szFileName, false))
{ {
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(true); return true;
} }
else else
{ {
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
else else
{ {
return(true); return true;
} }
return(true); return true;
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
} }
@ -499,11 +499,11 @@ __declspec(dllexport) bool TITCALL MakeAllSectionsRWEW(wchar_t* szFileName)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
__declspec(dllexport) long TITCALL AddNewSectionEx(char* szFileName, char* szSectionName, DWORD SectionSize, DWORD SectionAttributes, LPVOID SectionContent, DWORD ContentSize) __declspec(dllexport) long TITCALL AddNewSectionEx(char* szFileName, char* szSectionName, DWORD SectionSize, DWORD SectionAttributes, LPVOID SectionContent, DWORD ContentSize)
@ -903,7 +903,7 @@ __declspec(dllexport) bool TITCALL ResizeLastSection(char* szFileName, DWORD Num
} }
else else
{ {
return(false); return false;
} }
} }
@ -957,7 +957,7 @@ __declspec(dllexport) bool TITCALL ResizeLastSectionW(wchar_t* szFileName, DWORD
FileSize = FileSize - NumberOfExpandBytes; FileSize = FileSize - NumberOfExpandBytes;
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -1009,23 +1009,23 @@ __declspec(dllexport) bool TITCALL ResizeLastSectionW(wchar_t* szFileName, DWORD
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
if(CopyFileW(szBackupFile, szFileName, false)) if(CopyFileW(szBackupFile, szFileName, false))
{ {
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
else else
{ {
return(true); return true;
} }
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
else else
@ -1078,24 +1078,24 @@ __declspec(dllexport) bool TITCALL ResizeLastSectionW(wchar_t* szFileName, DWORD
if(CopyFileW(szBackupFile, szFileName, false)) if(CopyFileW(szBackupFile, szFileName, false))
{ {
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(true); return true;
} }
else else
{ {
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
else else
{ {
return(true); return true;
} }
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
} }
@ -1104,11 +1104,11 @@ __declspec(dllexport) bool TITCALL ResizeLastSectionW(wchar_t* szFileName, DWORD
FileSize = FileSize - NumberOfExpandBytes; FileSize = FileSize - NumberOfExpandBytes;
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
__declspec(dllexport) bool TITCALL DeleteLastSection(char* szFileName) __declspec(dllexport) bool TITCALL DeleteLastSection(char* szFileName)
@ -1123,7 +1123,7 @@ __declspec(dllexport) bool TITCALL DeleteLastSection(char* szFileName)
} }
else else
{ {
return(false); return false;
} }
} }
@ -1175,7 +1175,7 @@ __declspec(dllexport) bool TITCALL DeleteLastSectionW(wchar_t* szFileName)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -1196,31 +1196,31 @@ __declspec(dllexport) bool TITCALL DeleteLastSectionW(wchar_t* szFileName)
if(CopyFileW(szBackupFile, szFileName, false)) if(CopyFileW(szBackupFile, szFileName, false))
{ {
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(true); return true;
} }
else else
{ {
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
else else
{ {
return(true); return true;
} }
} }
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
else else
@ -1242,31 +1242,31 @@ __declspec(dllexport) bool TITCALL DeleteLastSectionW(wchar_t* szFileName)
if(CopyFileW(szBackupFile, szFileName, false)) if(CopyFileW(szBackupFile, szFileName, false))
{ {
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(true); return true;
} }
else else
{ {
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
else else
{ {
return(true); return true;
} }
} }
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
} }
@ -1274,11 +1274,11 @@ __declspec(dllexport) bool TITCALL DeleteLastSectionW(wchar_t* szFileName)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
__declspec(dllexport) bool TITCALL DeleteLastSectionEx(char* szFileName, DWORD NumberOfSections) __declspec(dllexport) bool TITCALL DeleteLastSectionEx(char* szFileName, DWORD NumberOfSections)
@ -1289,7 +1289,7 @@ __declspec(dllexport) bool TITCALL DeleteLastSectionEx(char* szFileName, DWORD N
DeleteLastSection(szFileName); DeleteLastSection(szFileName);
NumberOfSections--; NumberOfSections--;
} }
return(true); return true;
} }
__declspec(dllexport) bool TITCALL DeleteLastSectionExW(wchar_t* szFileName, DWORD NumberOfSections) __declspec(dllexport) bool TITCALL DeleteLastSectionExW(wchar_t* szFileName, DWORD NumberOfSections)
@ -1300,7 +1300,7 @@ __declspec(dllexport) bool TITCALL DeleteLastSectionExW(wchar_t* szFileName, DWO
DeleteLastSectionW(szFileName); DeleteLastSectionW(szFileName);
NumberOfSections--; NumberOfSections--;
} }
return(true); return true;
} }
__declspec(dllexport) bool TITCALL WipeSection(char* szFileName, int WipeSectionNumber, bool RemovePhysically) __declspec(dllexport) bool TITCALL WipeSection(char* szFileName, int WipeSectionNumber, bool RemovePhysically)
@ -1315,7 +1315,7 @@ __declspec(dllexport) bool TITCALL WipeSection(char* szFileName, int WipeSection
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL WipeSectionW(wchar_t* szFileName, int WipeSectionNumber, bool RemovePhysically) __declspec(dllexport) bool TITCALL WipeSectionW(wchar_t* szFileName, int WipeSectionNumber, bool RemovePhysically)
@ -1375,7 +1375,7 @@ __declspec(dllexport) bool TITCALL WipeSectionW(wchar_t* szFileName, int WipeSec
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -1433,24 +1433,24 @@ __declspec(dllexport) bool TITCALL WipeSectionW(wchar_t* szFileName, int WipeSec
if(CopyFileW(szBackupFile, szFileName, false)) if(CopyFileW(szBackupFile, szFileName, false))
{ {
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(true); return true;
} }
else else
{ {
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
else else
{ {
return(true); return true;
} }
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
} }
@ -1519,24 +1519,24 @@ __declspec(dllexport) bool TITCALL WipeSectionW(wchar_t* szFileName, int WipeSec
if(CopyFileW(szBackupFile, szFileName, false)) if(CopyFileW(szBackupFile, szFileName, false))
{ {
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(true); return true;
} }
else else
{ {
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
else else
{ {
return(true); return true;
} }
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
} }
@ -1545,10 +1545,10 @@ __declspec(dllexport) bool TITCALL WipeSectionW(wchar_t* szFileName, int WipeSec
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }

View File

@ -15,7 +15,7 @@ __declspec(dllexport) bool TITCALL PastePEHeader(HANDLE hProcess, LPVOID ImageBa
} }
else else
{ {
return(false); return false;
} }
} }
@ -69,7 +69,7 @@ __declspec(dllexport) bool TITCALL PastePEHeaderW(HANDLE hProcess, LPVOID ImageB
{ {
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
return(false); return false;
} }
} }
if(PEHeader32->OptionalHeader.Magic == 0x10B) if(PEHeader32->OptionalHeader.Magic == 0x10B)
@ -92,7 +92,7 @@ __declspec(dllexport) bool TITCALL PastePEHeaderW(HANDLE hProcess, LPVOID ImageB
{ {
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -104,20 +104,20 @@ __declspec(dllexport) bool TITCALL PastePEHeaderW(HANDLE hProcess, LPVOID ImageB
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
VirtualProtectEx(hProcess, ImageBase, PEHeaderSize, OldProtect, &OldProtect); VirtualProtectEx(hProcess, ImageBase, PEHeaderSize, OldProtect, &OldProtect);
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
return(true); return true;
} }
else else
{ {
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
return(false); return false;
} }
} }
else else
{ {
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
return(false); return false;
} }
} }
else else
@ -130,20 +130,20 @@ __declspec(dllexport) bool TITCALL PastePEHeaderW(HANDLE hProcess, LPVOID ImageB
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
VirtualProtectEx(hProcess, ImageBase, PEHeaderSize, OldProtect, &OldProtect); VirtualProtectEx(hProcess, ImageBase, PEHeaderSize, OldProtect, &OldProtect);
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
return(true); return true;
} }
else else
{ {
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
return(false); return false;
} }
} }
else else
{ {
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
return(false); return false;
} }
} }
} }
@ -151,21 +151,21 @@ __declspec(dllexport) bool TITCALL PastePEHeaderW(HANDLE hProcess, LPVOID ImageB
{ {
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
return(false); return false;
} }
} }
else else
{ {
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
return(false); return false;
} }
} }
else else
{ {
EngineCloseHandle(hFile); EngineCloseHandle(hFile);
VirtualFree(ueReadBuffer, NULL, MEM_RELEASE); VirtualFree(ueReadBuffer, NULL, MEM_RELEASE);
return(false); return false;
} }
return(false); return false;
} }

View File

@ -15,11 +15,11 @@ __declspec(dllexport) bool TITCALL FixHeaderCheckSum(char* szFileName)
if(MapFileAndCheckSumA(szFileName, &HeaderSum, &CheckSum) == NULL) if(MapFileAndCheckSumA(szFileName, &HeaderSum, &CheckSum) == NULL)
{ {
SetPE32Data(szFileName, NULL, UE_CHECKSUM, (ULONG_PTR)CheckSum); SetPE32Data(szFileName, NULL, UE_CHECKSUM, (ULONG_PTR)CheckSum);
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL FixHeaderCheckSumW(wchar_t* szFileName) __declspec(dllexport) bool TITCALL FixHeaderCheckSumW(wchar_t* szFileName)
@ -31,11 +31,11 @@ __declspec(dllexport) bool TITCALL FixHeaderCheckSumW(wchar_t* szFileName)
if(MapFileAndCheckSumW(szFileName, &HeaderSum, &CheckSum) == NULL) if(MapFileAndCheckSumW(szFileName, &HeaderSum, &CheckSum) == NULL)
{ {
SetPE32DataW(szFileName, NULL, UE_CHECKSUM, (ULONG_PTR)CheckSum); SetPE32DataW(szFileName, NULL, UE_CHECKSUM, (ULONG_PTR)CheckSum);
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) long TITCALL RealignPE(ULONG_PTR FileMapVA, DWORD FileSize, DWORD RealingMode) __declspec(dllexport) long TITCALL RealignPE(ULONG_PTR FileMapVA, DWORD FileSize, DWORD RealingMode)

View File

@ -134,7 +134,7 @@ __declspec(dllexport) bool TITCALL RelocaterExportRelocation(ULONG_PTR StorePlac
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
return(false); return false;
} }
DOSHeader = (PIMAGE_DOS_HEADER)FileMapVA; DOSHeader = (PIMAGE_DOS_HEADER)FileMapVA;
@ -153,7 +153,7 @@ __declspec(dllexport) bool TITCALL RelocaterExportRelocation(ULONG_PTR StorePlac
else else
{ {
RelocationData = NULL; RelocationData = NULL;
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -168,10 +168,10 @@ __declspec(dllexport) bool TITCALL RelocaterExportRelocation(ULONG_PTR StorePlac
PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size = (DWORD)((ULONG_PTR)RelocationWritePosition - (ULONG_PTR)RelocationData); PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size = (DWORD)((ULONG_PTR)RelocationWritePosition - (ULONG_PTR)RelocationData);
} }
RelocationData = NULL; RelocationData = NULL;
return(true); return true;
} }
RelocationData = NULL; RelocationData = NULL;
return(false); return false;
} }
__declspec(dllexport) bool TITCALL RelocaterExportRelocationEx(char* szFileName, char* szSectionName) __declspec(dllexport) bool TITCALL RelocaterExportRelocationEx(char* szFileName, char* szSectionName)
{ {
@ -185,7 +185,7 @@ __declspec(dllexport) bool TITCALL RelocaterExportRelocationEx(char* szFileName,
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL RelocaterExportRelocationExW(wchar_t* szFileName, char* szSectionName) __declspec(dllexport) bool TITCALL RelocaterExportRelocationExW(wchar_t* szFileName, char* szSectionName)
@ -209,21 +209,21 @@ __declspec(dllexport) bool TITCALL RelocaterExportRelocationExW(wchar_t* szFileN
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
if(ReturnValue) if(ReturnValue)
{ {
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL RelocaterGrabRelocationTable(HANDLE hProcess, ULONG_PTR MemoryStart, DWORD MemorySize) __declspec(dllexport) bool TITCALL RelocaterGrabRelocationTable(HANDLE hProcess, ULONG_PTR MemoryStart, DWORD MemorySize)
@ -242,10 +242,10 @@ __declspec(dllexport) bool TITCALL RelocaterGrabRelocationTable(HANDLE hProcess,
{ {
RelocationWritePosition = (LPVOID)((ULONG_PTR)RelocationData + MemorySize); RelocationWritePosition = (LPVOID)((ULONG_PTR)RelocationData + MemorySize);
RelocationStartPosition = (LPVOID)(-1); RelocationStartPosition = (LPVOID)(-1);
return(true); return true;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL RelocaterGrabRelocationTableEx(HANDLE hProcess, ULONG_PTR MemoryStart, ULONG_PTR MemorySize, DWORD NtSizeOfImage) __declspec(dllexport) bool TITCALL RelocaterGrabRelocationTableEx(HANDLE hProcess, ULONG_PTR MemoryStart, ULONG_PTR MemorySize, DWORD NtSizeOfImage)
{ {
@ -287,10 +287,10 @@ __declspec(dllexport) bool TITCALL RelocaterGrabRelocationTableEx(HANDLE hProces
else else
{ {
VirtualFree(ReadMemoryStorage, NULL, MEM_RELEASE); VirtualFree(ReadMemoryStorage, NULL, MEM_RELEASE);
return(false); return false;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL RelocaterMakeSnapshot(HANDLE hProcess, char* szSaveFileName, LPVOID MemoryStart, ULONG_PTR MemorySize) __declspec(dllexport) bool TITCALL RelocaterMakeSnapshot(HANDLE hProcess, char* szSaveFileName, LPVOID MemoryStart, ULONG_PTR MemorySize)
@ -315,7 +315,7 @@ __declspec(dllexport) bool TITCALL RelocaterCompareTwoSnapshots(HANDLE hProcess,
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL RelocaterCompareTwoSnapshotsW(HANDLE hProcess, ULONG_PTR LoadedImageBase, ULONG_PTR NtSizeOfImage, wchar_t* szDumpFile1, wchar_t* szDumpFile2, ULONG_PTR MemStart) __declspec(dllexport) bool TITCALL RelocaterCompareTwoSnapshotsW(HANDLE hProcess, ULONG_PTR LoadedImageBase, ULONG_PTR NtSizeOfImage, wchar_t* szDumpFile1, wchar_t* szDumpFile2, ULONG_PTR MemStart)
@ -421,15 +421,15 @@ __declspec(dllexport) bool TITCALL RelocaterCompareTwoSnapshotsW(HANDLE hProcess
RelocaterCleanup(); RelocaterCleanup();
UnMapFileEx(FileHandle2, FileSize2, FileMap2, FileMapVA2); UnMapFileEx(FileHandle2, FileSize2, FileMap2, FileMapVA2);
UnMapFileEx(FileHandle1, FileSize1, FileMap1, FileMapVA1); UnMapFileEx(FileHandle1, FileSize1, FileMap1, FileMapVA1);
return(false); return false;
} }
} }
UnMapFileEx(FileHandle2, FileSize2, FileMap2, FileMapVA2); UnMapFileEx(FileHandle2, FileSize2, FileMap2, FileMapVA2);
} }
UnMapFileEx(FileHandle1, FileSize1, FileMap1, FileMapVA1); UnMapFileEx(FileHandle1, FileSize1, FileMap1, FileMapVA1);
return(true); return true;
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL RelocaterChangeFileBase(char* szFileName, ULONG_PTR NewImageBase) __declspec(dllexport) bool TITCALL RelocaterChangeFileBase(char* szFileName, ULONG_PTR NewImageBase)
{ {
@ -443,7 +443,7 @@ __declspec(dllexport) bool TITCALL RelocaterChangeFileBase(char* szFileName, ULO
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL RelocaterChangeFileBaseW(wchar_t* szFileName, ULONG_PTR NewImageBase) __declspec(dllexport) bool TITCALL RelocaterChangeFileBaseW(wchar_t* szFileName, ULONG_PTR NewImageBase)
@ -501,7 +501,7 @@ __declspec(dllexport) bool TITCALL RelocaterChangeFileBaseW(wchar_t* szFileName,
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -509,7 +509,7 @@ __declspec(dllexport) bool TITCALL RelocaterChangeFileBaseW(wchar_t* szFileName,
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(true); return true;
} }
RelocData = (ULONG_PTR)ConvertVAtoFileOffset(FileMapVA, (ULONG_PTR)(PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress + PEHeader32->OptionalHeader.ImageBase), true); RelocData = (ULONG_PTR)ConvertVAtoFileOffset(FileMapVA, (ULONG_PTR)(PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress + PEHeader32->OptionalHeader.ImageBase), true);
RelocSize = PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size; RelocSize = PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size;
@ -520,7 +520,7 @@ __declspec(dllexport) bool TITCALL RelocaterChangeFileBaseW(wchar_t* szFileName,
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(true); return true;
} }
RelocData = (ULONG_PTR)ConvertVAtoFileOffset(FileMapVA, (ULONG_PTR)(PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress + PEHeader64->OptionalHeader.ImageBase), true); RelocData = (ULONG_PTR)ConvertVAtoFileOffset(FileMapVA, (ULONG_PTR)(PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress + PEHeader64->OptionalHeader.ImageBase), true);
RelocSize = PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size; RelocSize = PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size;
@ -575,35 +575,35 @@ __declspec(dllexport) bool TITCALL RelocaterChangeFileBaseW(wchar_t* szFileName,
if(CopyFileW(szBackupFile, szFileName, false)) if(CopyFileW(szBackupFile, szFileName, false))
{ {
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(true); return true;
} }
else else
{ {
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
else else
{ {
return(true); return true;
} }
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
} }
RemoveGarbageItem(szBackupItem, true); RemoveGarbageItem(szBackupItem, true);
return(false); return false;
} }
__declspec(dllexport) bool TITCALL RelocaterRelocateMemoryBlock(ULONG_PTR FileMapVA, ULONG_PTR MemoryLocation, void* RelocateMemory, DWORD RelocateMemorySize, ULONG_PTR CurrentLoadedBase, ULONG_PTR RelocateBase) __declspec(dllexport) bool TITCALL RelocaterRelocateMemoryBlock(ULONG_PTR FileMapVA, ULONG_PTR MemoryLocation, void* RelocateMemory, DWORD RelocateMemorySize, ULONG_PTR CurrentLoadedBase, ULONG_PTR RelocateBase)
{ {
@ -638,13 +638,13 @@ __declspec(dllexport) bool TITCALL RelocaterRelocateMemoryBlock(ULONG_PTR FileMa
} }
else else
{ {
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
if(PEHeader32->OptionalHeader.ImageBase == (DWORD)RelocateBase) if(PEHeader32->OptionalHeader.ImageBase == (DWORD)RelocateBase)
{ {
return(true); return true;
} }
RelocData = (ULONG_PTR)ConvertVAtoFileOffset(FileMapVA, (ULONG_PTR)(PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress + PEHeader32->OptionalHeader.ImageBase), true); RelocData = (ULONG_PTR)ConvertVAtoFileOffset(FileMapVA, (ULONG_PTR)(PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress + PEHeader32->OptionalHeader.ImageBase), true);
RelocSize = PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size; RelocSize = PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size;
@ -653,7 +653,7 @@ __declspec(dllexport) bool TITCALL RelocaterRelocateMemoryBlock(ULONG_PTR FileMa
{ {
if((ULONG_PTR)PEHeader64->OptionalHeader.ImageBase == RelocateBase) if((ULONG_PTR)PEHeader64->OptionalHeader.ImageBase == RelocateBase)
{ {
return(true); return true;
} }
RelocData = (ULONG_PTR)ConvertVAtoFileOffset(FileMapVA, (ULONG_PTR)(PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress + PEHeader64->OptionalHeader.ImageBase), true); RelocData = (ULONG_PTR)ConvertVAtoFileOffset(FileMapVA, (ULONG_PTR)(PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress + PEHeader64->OptionalHeader.ImageBase), true);
RelocSize = PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size; RelocSize = PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size;
@ -698,18 +698,18 @@ __declspec(dllexport) bool TITCALL RelocaterRelocateMemoryBlock(ULONG_PTR FileMa
RelocData = RelocData + 2; RelocData = RelocData + 2;
} }
} }
return(true); return true;
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL RelocaterWipeRelocationTable(char* szFileName) __declspec(dllexport) bool TITCALL RelocaterWipeRelocationTable(char* szFileName)
{ {
@ -723,7 +723,7 @@ __declspec(dllexport) bool TITCALL RelocaterWipeRelocationTable(char* szFileName
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL RelocaterWipeRelocationTableW(wchar_t* szFileName) __declspec(dllexport) bool TITCALL RelocaterWipeRelocationTableW(wchar_t* szFileName)
@ -758,7 +758,7 @@ __declspec(dllexport) bool TITCALL RelocaterWipeRelocationTableW(wchar_t* szFile
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -784,5 +784,5 @@ __declspec(dllexport) bool TITCALL RelocaterWipeRelocationTableW(wchar_t* szFile
} }
} }
} }
return(false); return false;
} }

View File

@ -19,11 +19,11 @@ __declspec(dllexport) bool TITCALL ResourcerFreeLoadedFile(LPVOID LoadedFileBase
{ {
if(VirtualFree(LoadedFileBase, NULL, MEM_RELEASE)) if(VirtualFree(LoadedFileBase, NULL, MEM_RELEASE))
{ {
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
@ -55,13 +55,13 @@ __declspec(dllexport) bool TITCALL ResourcerExtractResourceFromFileEx(ULONG_PTR
} }
else else
{ {
return(false); return false;
} }
} }
} }
return(true); return true;
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL ResourcerExtractResourceFromFile(char* szFileName, char* szResourceType, char* szResourceName, char* szExtractedFileName) __declspec(dllexport) bool TITCALL ResourcerExtractResourceFromFile(char* szFileName, char* szResourceType, char* szResourceName, char* szExtractedFileName)
@ -79,10 +79,10 @@ __declspec(dllexport) bool TITCALL ResourcerExtractResourceFromFile(char* szFile
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
if(bReturn) if(bReturn)
{ {
return(true); return true;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL ResourcerExtractResourceFromFileW(wchar_t* szFileName, char* szResourceType, char* szResourceName, char* szExtractedFileName) __declspec(dllexport) bool TITCALL ResourcerExtractResourceFromFileW(wchar_t* szFileName, char* szResourceType, char* szResourceName, char* szExtractedFileName)
@ -100,10 +100,10 @@ __declspec(dllexport) bool TITCALL ResourcerExtractResourceFromFileW(wchar_t* sz
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
if(bReturn) if(bReturn)
{ {
return(true); return true;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL ResourcerFindResource(char* szFileName, char* szResourceType, DWORD ResourceType, char* szResourceName, DWORD ResourceName, DWORD ResourceLanguage, PULONG_PTR pResourceData, LPDWORD pResourceSize) __declspec(dllexport) bool TITCALL ResourcerFindResource(char* szFileName, char* szResourceType, DWORD ResourceType, char* szResourceName, DWORD ResourceName, DWORD ResourceLanguage, PULONG_PTR pResourceData, LPDWORD pResourceSize)
@ -138,7 +138,7 @@ __declspec(dllexport) bool TITCALL ResourcerFindResource(char* szFileName, char*
} }
else else
{ {
return(false); return false;
} }
} }
@ -157,14 +157,14 @@ __declspec(dllexport) bool TITCALL ResourcerFindResourceW(wchar_t* szFileName, w
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
if(ReturnValue) if(ReturnValue)
{ {
return(true); return true;
} }
} }
else else
{ {
return(false); return false;
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL ResourcerFindResourceEx(ULONG_PTR FileMapVA, DWORD FileSize, wchar_t* szResourceType, DWORD ResourceType, wchar_t* szResourceName, DWORD ResourceName, DWORD ResourceLanguage, PULONG_PTR pResourceData, LPDWORD pResourceSize) __declspec(dllexport) bool TITCALL ResourcerFindResourceEx(ULONG_PTR FileMapVA, DWORD FileSize, wchar_t* szResourceType, DWORD ResourceType, wchar_t* szResourceName, DWORD ResourceName, DWORD ResourceLanguage, PULONG_PTR pResourceData, LPDWORD pResourceSize)
@ -215,7 +215,7 @@ __declspec(dllexport) bool TITCALL ResourcerFindResourceEx(ULONG_PTR FileMapVA,
{ {
*pResourceData = PEResourceItem->OffsetToData; *pResourceData = PEResourceItem->OffsetToData;
*pResourceSize = PEResourceItem->Size; *pResourceSize = PEResourceItem->Size;
return(true); return true;
} }
PEResourceDir2 = (PIMAGE_RESOURCE_DIRECTORY_ENTRY)((ULONG_PTR)PEResourceDir2 + sizeof IMAGE_RESOURCE_DIRECTORY_ENTRY); PEResourceDir2 = (PIMAGE_RESOURCE_DIRECTORY_ENTRY)((ULONG_PTR)PEResourceDir2 + sizeof IMAGE_RESOURCE_DIRECTORY_ENTRY);
n--; n--;
@ -240,14 +240,14 @@ __declspec(dllexport) bool TITCALL ResourcerFindResourceEx(ULONG_PTR FileMapVA,
} }
else else
{ {
return(false); return false;
} }
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
} }
return(false); return false;
} }
__declspec(dllexport) void TITCALL ResourcerEnumerateResource(char* szFileName, void* CallBack) __declspec(dllexport) void TITCALL ResourcerEnumerateResource(char* szFileName, void* CallBack)

View File

@ -14,7 +14,7 @@ __declspec(dllexport) bool TITCALL StaticFileLoad(char* szFileName, DWORD Desire
{ {
if(MapFileEx(szFileName, DesiredAccess, FileHandle, LoadedSize, FileMap, FileMapVA, NULL)) if(MapFileEx(szFileName, DesiredAccess, FileHandle, LoadedSize, FileMap, FileMapVA, NULL))
{ {
return(true); return true;
} }
} }
else else
@ -25,10 +25,10 @@ __declspec(dllexport) bool TITCALL StaticFileLoad(char* szFileName, DWORD Desire
*LoadedSize = (DWORD)GetPE32DataFromMappedFile(*FileMapVA, NULL, UE_SIZEOFIMAGE); *LoadedSize = (DWORD)GetPE32DataFromMappedFile(*FileMapVA, NULL, UE_SIZEOFIMAGE);
*FileHandle = NULL; *FileHandle = NULL;
*FileMap = NULL; *FileMap = NULL;
return(true); return true;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL StaticFileLoadW(wchar_t* szFileName, DWORD DesiredAccess, bool SimulateLoad, LPHANDLE FileHandle, LPDWORD LoadedSize, LPHANDLE FileMap, PULONG_PTR FileMapVA) __declspec(dllexport) bool TITCALL StaticFileLoadW(wchar_t* szFileName, DWORD DesiredAccess, bool SimulateLoad, LPHANDLE FileHandle, LPDWORD LoadedSize, LPHANDLE FileMap, PULONG_PTR FileMapVA)
{ {
@ -37,7 +37,7 @@ __declspec(dllexport) bool TITCALL StaticFileLoadW(wchar_t* szFileName, DWORD De
{ {
if(MapFileExW(szFileName, DesiredAccess, FileHandle, LoadedSize, FileMap, FileMapVA, NULL)) if(MapFileExW(szFileName, DesiredAccess, FileHandle, LoadedSize, FileMap, FileMapVA, NULL))
{ {
return(true); return true;
} }
} }
else else
@ -48,10 +48,10 @@ __declspec(dllexport) bool TITCALL StaticFileLoadW(wchar_t* szFileName, DWORD De
*LoadedSize = (DWORD)GetPE32DataFromMappedFile(*FileMapVA, NULL, UE_SIZEOFIMAGE); *LoadedSize = (DWORD)GetPE32DataFromMappedFile(*FileMapVA, NULL, UE_SIZEOFIMAGE);
*FileHandle = NULL; *FileHandle = NULL;
*FileMap = NULL; *FileMap = NULL;
return(true); return true;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL StaticFileUnload(char* szFileName, bool CommitChanges, HANDLE FileHandle, DWORD LoadedSize, HANDLE FileMap, ULONG_PTR FileMapVA) __declspec(dllexport) bool TITCALL StaticFileUnload(char* szFileName, bool CommitChanges, HANDLE FileHandle, DWORD LoadedSize, HANDLE FileMap, ULONG_PTR FileMapVA)
{ {
@ -65,7 +65,7 @@ __declspec(dllexport) bool TITCALL StaticFileUnload(char* szFileName, bool Commi
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL StaticFileUnloadW(wchar_t* szFileName, bool CommitChanges, HANDLE FileHandle, DWORD LoadedSize, HANDLE FileMap, ULONG_PTR FileMapVA) __declspec(dllexport) bool TITCALL StaticFileUnloadW(wchar_t* szFileName, bool CommitChanges, HANDLE FileHandle, DWORD LoadedSize, HANDLE FileMap, ULONG_PTR FileMapVA)
@ -88,7 +88,7 @@ __declspec(dllexport) bool TITCALL StaticFileUnloadW(wchar_t* szFileName, bool C
if(FileHandle != NULL && FileMap != NULL) if(FileHandle != NULL && FileMap != NULL)
{ {
UnMapFileEx(FileHandle, LoadedSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, LoadedSize, FileMap, FileMapVA);
return(true); return true;
} }
else else
{ {
@ -117,7 +117,7 @@ __declspec(dllexport) bool TITCALL StaticFileUnloadW(wchar_t* szFileName, bool C
{ {
ResourcerFreeLoadedFile((LPVOID)FileMapVA); ResourcerFreeLoadedFile((LPVOID)FileMapVA);
UnMapFileEx(myFileHandle, myFileSize, myFileMap, myFileMapVA); UnMapFileEx(myFileHandle, myFileSize, myFileMap, myFileMapVA);
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -133,7 +133,7 @@ __declspec(dllexport) bool TITCALL StaticFileUnloadW(wchar_t* szFileName, bool C
} }
ResourcerFreeLoadedFile((LPVOID)FileMapVA); ResourcerFreeLoadedFile((LPVOID)FileMapVA);
UnMapFileEx(myFileHandle, myFileSize, myFileMap, myFileMapVA); UnMapFileEx(myFileHandle, myFileSize, myFileMap, myFileMapVA);
return(true); return true;
} }
else else
{ {
@ -149,19 +149,19 @@ __declspec(dllexport) bool TITCALL StaticFileUnloadW(wchar_t* szFileName, bool C
} }
ResourcerFreeLoadedFile((LPVOID)FileMapVA); ResourcerFreeLoadedFile((LPVOID)FileMapVA);
UnMapFileEx(myFileHandle, myFileSize, myFileMap, myFileMapVA); UnMapFileEx(myFileHandle, myFileSize, myFileMap, myFileMapVA);
return(true); return true;
} }
} }
else else
{ {
ResourcerFreeLoadedFile((LPVOID)FileMapVA); ResourcerFreeLoadedFile((LPVOID)FileMapVA);
UnMapFileEx(myFileHandle, myFileSize, myFileMap, myFileMapVA); UnMapFileEx(myFileHandle, myFileSize, myFileMap, myFileMapVA);
return(false); return false;
} }
} }
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL StaticFileOpen(char* szFileName, DWORD DesiredAccess, LPHANDLE FileHandle, LPDWORD FileSizeLow, LPDWORD FileSizeHigh) __declspec(dllexport) bool TITCALL StaticFileOpen(char* szFileName, DWORD DesiredAccess, LPHANDLE FileHandle, LPDWORD FileSizeLow, LPDWORD FileSizeHigh)
{ {
@ -175,7 +175,7 @@ __declspec(dllexport) bool TITCALL StaticFileOpen(char* szFileName, DWORD Desire
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL StaticFileOpenW(wchar_t* szFileName, DWORD DesiredAccess, LPHANDLE FileHandle, LPDWORD FileSizeLow, LPDWORD FileSizeHigh) __declspec(dllexport) bool TITCALL StaticFileOpenW(wchar_t* szFileName, DWORD DesiredAccess, LPHANDLE FileHandle, LPDWORD FileSizeLow, LPDWORD FileSizeHigh)
@ -187,16 +187,16 @@ __declspec(dllexport) bool TITCALL StaticFileOpenW(wchar_t* szFileName, DWORD De
if(FileHandle != INVALID_HANDLE_VALUE) if(FileHandle != INVALID_HANDLE_VALUE)
{ {
*FileSizeLow = GetFileSize(*FileHandle, FileSizeHigh); *FileSizeLow = GetFileSize(*FileHandle, FileSizeHigh);
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL StaticFileGetContent(HANDLE FileHandle, DWORD FilePositionLow, LPDWORD FilePositionHigh, void* Buffer, DWORD Size) __declspec(dllexport) bool TITCALL StaticFileGetContent(HANDLE FileHandle, DWORD FilePositionLow, LPDWORD FilePositionHigh, void* Buffer, DWORD Size)
@ -210,7 +210,7 @@ __declspec(dllexport) bool TITCALL StaticFileGetContent(HANDLE FileHandle, DWORD
{ {
if(rfNumberOfBytesRead == Size) if(rfNumberOfBytesRead == Size)
{ {
return(true); return true;
} }
else else
{ {
@ -218,7 +218,7 @@ __declspec(dllexport) bool TITCALL StaticFileGetContent(HANDLE FileHandle, DWORD
} }
} }
} }
return(false); return false;
} }
__declspec(dllexport) void TITCALL StaticFileClose(HANDLE FileHandle) __declspec(dllexport) void TITCALL StaticFileClose(HANDLE FileHandle)
{ {
@ -419,11 +419,11 @@ __declspec(dllexport) bool TITCALL StaticMemoryDecompress(void* Source, DWORD So
#if !defined (_WIN64) #if !defined (_WIN64)
if(aP_depack_asm_safe(Source, SourceSize, Destination, DestinationSize) != APLIB_ERROR) if(aP_depack_asm_safe(Source, SourceSize, Destination, DestinationSize) != APLIB_ERROR)
{ {
return(true); return true;
} }
else if(aPsafe_depack(Source, SourceSize, Destination, DestinationSize) != APLIB_ERROR) else if(aPsafe_depack(Source, SourceSize, Destination, DestinationSize) != APLIB_ERROR)
{ {
return(true); return true;
} }
#endif #endif
} }
@ -431,10 +431,10 @@ __declspec(dllexport) bool TITCALL StaticMemoryDecompress(void* Source, DWORD So
{ {
if(LzmaDecode((unsigned char*)Destination, (size_t*)DestinationSize, (unsigned char*)Source, (size_t*)SourceSize, (unsigned char*)&lzProps, LZMA_PROPS_SIZE, LZMA_FINISH_ANY, &lzStatus, &lzAlloc) == SZ_OK) if(LzmaDecode((unsigned char*)Destination, (size_t*)DestinationSize, (unsigned char*)Source, (size_t*)SourceSize, (unsigned char*)&lzProps, LZMA_PROPS_SIZE, LZMA_FINISH_ANY, &lzStatus, &lzAlloc) == SZ_OK)
{ {
return(true); return true;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL StaticRawMemoryCopy(HANDLE hFile, ULONG_PTR FileMapVA, ULONG_PTR VitualAddressToCopy, DWORD Size, bool AddressIsRVA, char* szDumpFileName) __declspec(dllexport) bool TITCALL StaticRawMemoryCopy(HANDLE hFile, ULONG_PTR FileMapVA, ULONG_PTR VitualAddressToCopy, DWORD Size, bool AddressIsRVA, char* szDumpFileName)
{ {
@ -448,7 +448,7 @@ __declspec(dllexport) bool TITCALL StaticRawMemoryCopy(HANDLE hFile, ULONG_PTR F
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL StaticRawMemoryCopyW(HANDLE hFile, ULONG_PTR FileMapVA, ULONG_PTR VitualAddressToCopy, DWORD Size, bool AddressIsRVA, wchar_t* szDumpFileName) __declspec(dllexport) bool TITCALL StaticRawMemoryCopyW(HANDLE hFile, ULONG_PTR FileMapVA, ULONG_PTR VitualAddressToCopy, DWORD Size, bool AddressIsRVA, wchar_t* szDumpFileName)
@ -529,7 +529,7 @@ __declspec(dllexport) bool TITCALL StaticRawMemoryCopyW(HANDLE hFile, ULONG_PTR
EngineCloseHandle(hReadFile); EngineCloseHandle(hReadFile);
EngineCloseHandle(hWriteFile); EngineCloseHandle(hWriteFile);
VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE); VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE);
return(true); return true;
} }
else else
{ {
@ -541,7 +541,7 @@ __declspec(dllexport) bool TITCALL StaticRawMemoryCopyW(HANDLE hFile, ULONG_PTR
EngineCloseHandle(hReadFile); EngineCloseHandle(hReadFile);
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL StaticRawMemoryCopyEx(HANDLE hFile, DWORD RawAddressToCopy, DWORD Size, char* szDumpFileName) __declspec(dllexport) bool TITCALL StaticRawMemoryCopyEx(HANDLE hFile, DWORD RawAddressToCopy, DWORD Size, char* szDumpFileName)
{ {
@ -555,7 +555,7 @@ __declspec(dllexport) bool TITCALL StaticRawMemoryCopyEx(HANDLE hFile, DWORD Raw
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL StaticRawMemoryCopyExW(HANDLE hFile, DWORD RawAddressToCopy, DWORD Size, wchar_t* szDumpFileName) __declspec(dllexport) bool TITCALL StaticRawMemoryCopyExW(HANDLE hFile, DWORD RawAddressToCopy, DWORD Size, wchar_t* szDumpFileName)
@ -624,7 +624,7 @@ __declspec(dllexport) bool TITCALL StaticRawMemoryCopyExW(HANDLE hFile, DWORD Ra
EngineCloseHandle(hReadFile); EngineCloseHandle(hReadFile);
EngineCloseHandle(hWriteFile); EngineCloseHandle(hWriteFile);
VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE); VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE);
return(true); return true;
} }
else else
{ {
@ -635,7 +635,7 @@ __declspec(dllexport) bool TITCALL StaticRawMemoryCopyExW(HANDLE hFile, DWORD Ra
} }
EngineCloseHandle(hReadFile); EngineCloseHandle(hReadFile);
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL StaticRawMemoryCopyEx64(HANDLE hFile, DWORD64 RawAddressToCopy, DWORD64 Size, char* szDumpFileName) __declspec(dllexport) bool TITCALL StaticRawMemoryCopyEx64(HANDLE hFile, DWORD64 RawAddressToCopy, DWORD64 Size, char* szDumpFileName)
{ {
@ -649,7 +649,7 @@ __declspec(dllexport) bool TITCALL StaticRawMemoryCopyEx64(HANDLE hFile, DWORD64
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL StaticRawMemoryCopyEx64W(HANDLE hFile, DWORD64 RawAddressToCopy, DWORD64 Size, wchar_t* szDumpFileName) __declspec(dllexport) bool TITCALL StaticRawMemoryCopyEx64W(HANDLE hFile, DWORD64 RawAddressToCopy, DWORD64 Size, wchar_t* szDumpFileName)
@ -722,7 +722,7 @@ __declspec(dllexport) bool TITCALL StaticRawMemoryCopyEx64W(HANDLE hFile, DWORD6
EngineCloseHandle(hReadFile); EngineCloseHandle(hReadFile);
EngineCloseHandle(hWriteFile); EngineCloseHandle(hWriteFile);
VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE); VirtualFree(ueCopyBuffer, NULL, MEM_RELEASE);
return(true); return true;
} }
else else
{ {
@ -733,7 +733,7 @@ __declspec(dllexport) bool TITCALL StaticRawMemoryCopyEx64W(HANDLE hFile, DWORD6
} }
EngineCloseHandle(hReadFile); EngineCloseHandle(hReadFile);
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL StaticHashMemory(void* MemoryToHash, DWORD SizeOfMemory, void* HashDigest, bool OutputString, int Algorithm) __declspec(dllexport) bool TITCALL StaticHashMemory(void* MemoryToHash, DWORD SizeOfMemory, void* HashDigest, bool OutputString, int Algorithm)
{ {
@ -756,7 +756,7 @@ __declspec(dllexport) bool TITCALL StaticHashMemory(void* MemoryToHash, DWORD Si
{ {
if(!CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, CRYPT_NEWKEYSET)) if(!CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, CRYPT_NEWKEYSET))
{ {
return(false); return false;
} }
} }
if(Algorithm == UE_STATIC_HASH_MD5) if(Algorithm == UE_STATIC_HASH_MD5)
@ -770,7 +770,7 @@ __declspec(dllexport) bool TITCALL StaticHashMemory(void* MemoryToHash, DWORD Si
if(!CryptCreateHash(hProv, hashAlgo, NULL, NULL, &hHash)) if(!CryptCreateHash(hProv, hashAlgo, NULL, NULL, &hHash))
{ {
CryptReleaseContext(hProv, NULL); CryptReleaseContext(hProv, NULL);
return(false); return false;
} }
else else
{ {
@ -778,7 +778,7 @@ __declspec(dllexport) bool TITCALL StaticHashMemory(void* MemoryToHash, DWORD Si
{ {
CryptReleaseContext(hProv, NULL); CryptReleaseContext(hProv, NULL);
CryptDestroyHash(hHash); CryptDestroyHash(hHash);
return(false); return false;
} }
} }
if(Algorithm == UE_STATIC_HASH_MD5) if(Algorithm == UE_STATIC_HASH_MD5)
@ -788,7 +788,7 @@ __declspec(dllexport) bool TITCALL StaticHashMemory(void* MemoryToHash, DWORD Si
{ {
CryptDestroyHash(hHash); CryptDestroyHash(hHash);
CryptReleaseContext(hProv, NULL); CryptReleaseContext(hProv, NULL);
return(false); return false;
} }
else else
{ {
@ -811,11 +811,11 @@ __declspec(dllexport) bool TITCALL StaticHashMemory(void* MemoryToHash, DWORD Si
{ {
CryptDestroyHash(hHash); CryptDestroyHash(hHash);
CryptReleaseContext(hProv, NULL); CryptReleaseContext(hProv, NULL);
return(false); return false;
} }
CryptDestroyHash(hHash); CryptDestroyHash(hHash);
CryptReleaseContext(hProv, NULL); CryptReleaseContext(hProv, NULL);
return(true); return true;
} }
} }
else if(Algorithm == UE_STATIC_HASH_SHA1) else if(Algorithm == UE_STATIC_HASH_SHA1)
@ -825,7 +825,7 @@ __declspec(dllexport) bool TITCALL StaticHashMemory(void* MemoryToHash, DWORD Si
{ {
CryptDestroyHash(hHash); CryptDestroyHash(hHash);
CryptReleaseContext(hProv, NULL); CryptReleaseContext(hProv, NULL);
return(false); return false;
} }
else else
{ {
@ -849,11 +849,11 @@ __declspec(dllexport) bool TITCALL StaticHashMemory(void* MemoryToHash, DWORD Si
{ {
CryptDestroyHash(hHash); CryptDestroyHash(hHash);
CryptReleaseContext(hProv, NULL); CryptReleaseContext(hProv, NULL);
return(false); return false;
} }
CryptDestroyHash(hHash); CryptDestroyHash(hHash);
CryptReleaseContext(hProv, NULL); CryptReleaseContext(hProv, NULL);
return(true); return true;
} }
} }
} }
@ -869,9 +869,9 @@ __declspec(dllexport) bool TITCALL StaticHashMemory(void* MemoryToHash, DWORD Si
{ {
RtlMoveMemory(HashDigest, &crc32, sizeof crc32); RtlMoveMemory(HashDigest, &crc32, sizeof crc32);
} }
return(true); return true;
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL StaticHashFile(char* szFileName, char* HashDigest, bool OutputString, int Algorithm) __declspec(dllexport) bool TITCALL StaticHashFile(char* szFileName, char* HashDigest, bool OutputString, int Algorithm)
{ {
@ -885,7 +885,7 @@ __declspec(dllexport) bool TITCALL StaticHashFile(char* szFileName, char* HashDi
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL StaticHashFileW(wchar_t* szFileName, char* HashDigest, bool OutputString, int Algorithm) __declspec(dllexport) bool TITCALL StaticHashFileW(wchar_t* szFileName, char* HashDigest, bool OutputString, int Algorithm)
@ -909,7 +909,7 @@ __declspec(dllexport) bool TITCALL StaticHashFileW(wchar_t* szFileName, char* Ha
hFile = CreateFileW(szFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL); hFile = CreateFileW(szFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL);
if(hFile == INVALID_HANDLE_VALUE || HashDigest == NULL) if(hFile == INVALID_HANDLE_VALUE || HashDigest == NULL)
{ {
return(false); return false;
} }
if(Algorithm != UE_STATIC_HASH_CRC32) if(Algorithm != UE_STATIC_HASH_CRC32)
{ {
@ -918,7 +918,7 @@ __declspec(dllexport) bool TITCALL StaticHashFileW(wchar_t* szFileName, char* Ha
if(!CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, CRYPT_NEWKEYSET)) if(!CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, CRYPT_NEWKEYSET))
{ {
CloseHandle(hFile); CloseHandle(hFile);
return(false); return false;
} }
} }
if(Algorithm == UE_STATIC_HASH_MD5) if(Algorithm == UE_STATIC_HASH_MD5)
@ -933,7 +933,7 @@ __declspec(dllexport) bool TITCALL StaticHashFileW(wchar_t* szFileName, char* Ha
{ {
CloseHandle(hFile); CloseHandle(hFile);
CryptReleaseContext(hProv, NULL); CryptReleaseContext(hProv, NULL);
return(false); return false;
} }
while(bResult) while(bResult)
{ {
@ -950,7 +950,7 @@ __declspec(dllexport) bool TITCALL StaticHashFileW(wchar_t* szFileName, char* Ha
CryptReleaseContext(hProv, NULL); CryptReleaseContext(hProv, NULL);
CryptDestroyHash(hHash); CryptDestroyHash(hHash);
CloseHandle(hFile); CloseHandle(hFile);
return(false); return false;
} }
} }
if(!bResult) if(!bResult)
@ -958,7 +958,7 @@ __declspec(dllexport) bool TITCALL StaticHashFileW(wchar_t* szFileName, char* Ha
CryptReleaseContext(hProv, NULL); CryptReleaseContext(hProv, NULL);
CryptDestroyHash(hHash); CryptDestroyHash(hHash);
CloseHandle(hFile); CloseHandle(hFile);
return(false); return false;
} }
if(Algorithm == UE_STATIC_HASH_MD5) if(Algorithm == UE_STATIC_HASH_MD5)
{ {
@ -968,7 +968,7 @@ __declspec(dllexport) bool TITCALL StaticHashFileW(wchar_t* szFileName, char* Ha
CryptDestroyHash(hHash); CryptDestroyHash(hHash);
CryptReleaseContext(hProv, NULL); CryptReleaseContext(hProv, NULL);
CloseHandle(hFile); CloseHandle(hFile);
return(false); return false;
} }
else else
{ {
@ -992,12 +992,12 @@ __declspec(dllexport) bool TITCALL StaticHashFileW(wchar_t* szFileName, char* Ha
CryptDestroyHash(hHash); CryptDestroyHash(hHash);
CryptReleaseContext(hProv, NULL); CryptReleaseContext(hProv, NULL);
CloseHandle(hFile); CloseHandle(hFile);
return(false); return false;
} }
CryptDestroyHash(hHash); CryptDestroyHash(hHash);
CryptReleaseContext(hProv, NULL); CryptReleaseContext(hProv, NULL);
CloseHandle(hFile); CloseHandle(hFile);
return(true); return true;
} }
} }
else if(Algorithm == UE_STATIC_HASH_SHA1) else if(Algorithm == UE_STATIC_HASH_SHA1)
@ -1008,7 +1008,7 @@ __declspec(dllexport) bool TITCALL StaticHashFileW(wchar_t* szFileName, char* Ha
CryptDestroyHash(hHash); CryptDestroyHash(hHash);
CryptReleaseContext(hProv, NULL); CryptReleaseContext(hProv, NULL);
CloseHandle(hFile); CloseHandle(hFile);
return(false); return false;
} }
else else
{ {
@ -1033,12 +1033,12 @@ __declspec(dllexport) bool TITCALL StaticHashFileW(wchar_t* szFileName, char* Ha
CryptDestroyHash(hHash); CryptDestroyHash(hHash);
CryptReleaseContext(hProv, NULL); CryptReleaseContext(hProv, NULL);
CloseHandle(hFile); CloseHandle(hFile);
return(false); return false;
} }
CryptDestroyHash(hHash); CryptDestroyHash(hHash);
CryptReleaseContext(hProv, NULL); CryptReleaseContext(hProv, NULL);
CloseHandle(hFile); CloseHandle(hFile);
return(true); return true;
} }
} }
} }
@ -1066,8 +1066,8 @@ __declspec(dllexport) bool TITCALL StaticHashFileW(wchar_t* szFileName, char* Ha
RtlMoveMemory(HashDigest, &crc32, sizeof crc32); RtlMoveMemory(HashDigest, &crc32, sizeof crc32);
} }
CloseHandle(hFile); CloseHandle(hFile);
return(true); return true;
} }
CloseHandle(hFile); CloseHandle(hFile);
return(false); return false;
} }

View File

@ -28,11 +28,11 @@ __declspec(dllexport) bool TITCALL TLSBreakOnCallBack(LPVOID ArrayOfCallBacks, D
} }
engineTLSBreakOnCallBackAddress = (ULONG_PTR)bpxCallBack; engineTLSBreakOnCallBackAddress = (ULONG_PTR)bpxCallBack;
engineTLSBreakOnCallBack = true; engineTLSBreakOnCallBack = true;
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL TLSGrabCallBackData(char* szFileName, LPVOID ArrayOfCallBacks, LPDWORD NumberOfCallBacks) __declspec(dllexport) bool TITCALL TLSGrabCallBackData(char* szFileName, LPVOID ArrayOfCallBacks, LPDWORD NumberOfCallBacks)
@ -47,7 +47,7 @@ __declspec(dllexport) bool TITCALL TLSGrabCallBackData(char* szFileName, LPVOID
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL TLSGrabCallBackDataW(wchar_t* szFileName, LPVOID ArrayOfCallBacks, LPDWORD NumberOfCallBacks) __declspec(dllexport) bool TITCALL TLSGrabCallBackDataW(wchar_t* szFileName, LPVOID ArrayOfCallBacks, LPDWORD NumberOfCallBacks)
@ -86,7 +86,7 @@ __declspec(dllexport) bool TITCALL TLSGrabCallBackDataW(wchar_t* szFileName, LPV
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -106,20 +106,20 @@ __declspec(dllexport) bool TITCALL TLSGrabCallBackDataW(wchar_t* szFileName, LPV
} }
*NumberOfCallBacks = NumberOfTLSCallBacks; *NumberOfCallBacks = NumberOfTLSCallBacks;
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(true); return true;
} }
else else
{ {
*NumberOfCallBacks = NULL; *NumberOfCallBacks = NULL;
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
else else
{ {
*NumberOfCallBacks = NULL; *NumberOfCallBacks = NULL;
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
else else
@ -140,20 +140,20 @@ __declspec(dllexport) bool TITCALL TLSGrabCallBackDataW(wchar_t* szFileName, LPV
} }
*NumberOfCallBacks = NumberOfTLSCallBacks; *NumberOfCallBacks = NumberOfTLSCallBacks;
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(true); return true;
} }
else else
{ {
*NumberOfCallBacks = NULL; *NumberOfCallBacks = NULL;
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
else else
{ {
*NumberOfCallBacks = NULL; *NumberOfCallBacks = NULL;
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
} }
@ -161,10 +161,10 @@ __declspec(dllexport) bool TITCALL TLSGrabCallBackDataW(wchar_t* szFileName, LPV
{ {
*NumberOfCallBacks = NULL; *NumberOfCallBacks = NULL;
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL TLSBreakOnCallBackEx(char* szFileName, LPVOID bpxCallBack) __declspec(dllexport) bool TITCALL TLSBreakOnCallBackEx(char* szFileName, LPVOID bpxCallBack)
{ {
@ -178,7 +178,7 @@ __declspec(dllexport) bool TITCALL TLSBreakOnCallBackEx(char* szFileName, LPVOID
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL TLSBreakOnCallBackExW(wchar_t* szFileName, LPVOID bpxCallBack) __declspec(dllexport) bool TITCALL TLSBreakOnCallBackExW(wchar_t* szFileName, LPVOID bpxCallBack)
@ -193,16 +193,16 @@ __declspec(dllexport) bool TITCALL TLSBreakOnCallBackExW(wchar_t* szFileName, LP
if(TLSGrabCallBackDataW(szFileName, &TlsArrayOfCallBacks, &TlsNumberOfCallBacks)) if(TLSGrabCallBackDataW(szFileName, &TlsArrayOfCallBacks, &TlsNumberOfCallBacks))
{ {
TLSBreakOnCallBack(&TlsArrayOfCallBacks, TlsNumberOfCallBacks, bpxCallBack); TLSBreakOnCallBack(&TlsArrayOfCallBacks, TlsNumberOfCallBacks, bpxCallBack);
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL TLSRemoveCallback(char* szFileName) __declspec(dllexport) bool TITCALL TLSRemoveCallback(char* szFileName)
@ -217,7 +217,7 @@ __declspec(dllexport) bool TITCALL TLSRemoveCallback(char* szFileName)
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL TLSRemoveCallbackW(wchar_t* szFileName) __declspec(dllexport) bool TITCALL TLSRemoveCallbackW(wchar_t* szFileName)
@ -253,7 +253,7 @@ __declspec(dllexport) bool TITCALL TLSRemoveCallbackW(wchar_t* szFileName)
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -267,24 +267,24 @@ __declspec(dllexport) bool TITCALL TLSRemoveCallbackW(wchar_t* szFileName)
{ {
TLSDirectoryX86->AddressOfCallBacks = NULL; TLSDirectoryX86->AddressOfCallBacks = NULL;
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(true); return true;
} }
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
else else
@ -299,34 +299,34 @@ __declspec(dllexport) bool TITCALL TLSRemoveCallbackW(wchar_t* szFileName)
{ {
TLSDirectoryX64->AddressOfCallBacks = NULL; TLSDirectoryX64->AddressOfCallBacks = NULL;
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(true); return true;
} }
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
} }
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL TLSRemoveTable(char* szFileName) __declspec(dllexport) bool TITCALL TLSRemoveTable(char* szFileName)
{ {
@ -340,7 +340,7 @@ __declspec(dllexport) bool TITCALL TLSRemoveTable(char* szFileName)
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL TLSRemoveTableW(wchar_t* szFileName) __declspec(dllexport) bool TITCALL TLSRemoveTableW(wchar_t* szFileName)
@ -376,7 +376,7 @@ __declspec(dllexport) bool TITCALL TLSRemoveTableW(wchar_t* szFileName)
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -390,18 +390,18 @@ __declspec(dllexport) bool TITCALL TLSRemoveTableW(wchar_t* szFileName)
PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].Size = NULL; PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].Size = NULL;
RtlZeroMemory(TLSDirectoryX86, sizeof IMAGE_TLS_DIRECTORY32); RtlZeroMemory(TLSDirectoryX86, sizeof IMAGE_TLS_DIRECTORY32);
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(true); return true;
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
else else
@ -416,28 +416,28 @@ __declspec(dllexport) bool TITCALL TLSRemoveTableW(wchar_t* szFileName)
PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].Size = NULL; PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].Size = NULL;
RtlZeroMemory(TLSDirectoryX64, sizeof IMAGE_TLS_DIRECTORY64); RtlZeroMemory(TLSDirectoryX64, sizeof IMAGE_TLS_DIRECTORY64);
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(true); return true;
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
} }
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL TLSBackupData(char* szFileName) __declspec(dllexport) bool TITCALL TLSBackupData(char* szFileName)
{ {
@ -451,7 +451,7 @@ __declspec(dllexport) bool TITCALL TLSBackupData(char* szFileName)
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL TLSBackupDataW(wchar_t* szFileName) __declspec(dllexport) bool TITCALL TLSBackupDataW(wchar_t* szFileName)
@ -496,7 +496,7 @@ __declspec(dllexport) bool TITCALL TLSBackupDataW(wchar_t* szFileName)
else else
{ {
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -521,27 +521,27 @@ __declspec(dllexport) bool TITCALL TLSBackupDataW(wchar_t* szFileName)
} }
*NumberOfCallBacks = NumberOfTLSCallBacks; *NumberOfCallBacks = NumberOfTLSCallBacks;
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(true); return true;
} }
else else
{ {
*NumberOfCallBacks = NULL; *NumberOfCallBacks = NULL;
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
*NumberOfCallBacks = NULL; *NumberOfCallBacks = NULL;
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
else else
{ {
*NumberOfCallBacks = NULL; *NumberOfCallBacks = NULL;
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
else else
@ -567,27 +567,27 @@ __declspec(dllexport) bool TITCALL TLSBackupDataW(wchar_t* szFileName)
} }
*NumberOfCallBacks = NumberOfTLSCallBacks; *NumberOfCallBacks = NumberOfTLSCallBacks;
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(true); return true;
} }
else else
{ {
*NumberOfCallBacks = NULL; *NumberOfCallBacks = NULL;
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
*NumberOfCallBacks = NULL; *NumberOfCallBacks = NULL;
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
else else
{ {
*NumberOfCallBacks = NULL; *NumberOfCallBacks = NULL;
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
} }
@ -595,10 +595,10 @@ __declspec(dllexport) bool TITCALL TLSBackupDataW(wchar_t* szFileName)
{ {
*NumberOfCallBacks = NULL; *NumberOfCallBacks = NULL;
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
return(false); return false;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL TLSRestoreData() __declspec(dllexport) bool TITCALL TLSRestoreData()
{ {
@ -616,13 +616,13 @@ __declspec(dllexport) bool TITCALL TLSRestoreData()
if(WriteProcessMemory(dbgProcessInformation.hProcess, (LPVOID)(engineBackupTLSDataX64.AddressOfCallBacks + GetDebuggedFileBaseAddress()), engineBackupArrayOfCallBacks, sizeof IMAGE_TLS_DIRECTORY64, &ueNumberOfBytesRead)) if(WriteProcessMemory(dbgProcessInformation.hProcess, (LPVOID)(engineBackupTLSDataX64.AddressOfCallBacks + GetDebuggedFileBaseAddress()), engineBackupArrayOfCallBacks, sizeof IMAGE_TLS_DIRECTORY64, &ueNumberOfBytesRead))
{ {
engineBackupTLSAddress = NULL; engineBackupTLSAddress = NULL;
return(true); return true;
} }
} }
else else
{ {
engineBackupTLSAddress = NULL; engineBackupTLSAddress = NULL;
return(true); return true;
} }
} }
} }
@ -635,18 +635,18 @@ __declspec(dllexport) bool TITCALL TLSRestoreData()
if(WriteProcessMemory(dbgProcessInformation.hProcess, (LPVOID)(engineBackupTLSDataX86.AddressOfCallBacks + GetDebuggedFileBaseAddress()), engineBackupArrayOfCallBacks, sizeof IMAGE_TLS_DIRECTORY32, &ueNumberOfBytesRead)) if(WriteProcessMemory(dbgProcessInformation.hProcess, (LPVOID)(engineBackupTLSDataX86.AddressOfCallBacks + GetDebuggedFileBaseAddress()), engineBackupArrayOfCallBacks, sizeof IMAGE_TLS_DIRECTORY32, &ueNumberOfBytesRead))
{ {
engineBackupTLSAddress = NULL; engineBackupTLSAddress = NULL;
return(true); return true;
} }
} }
else else
{ {
engineBackupTLSAddress = NULL; engineBackupTLSAddress = NULL;
return(true); return true;
} }
} }
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL TLSBuildNewTable(ULONG_PTR FileMapVA, ULONG_PTR StorePlace, ULONG_PTR StorePlaceRVA, LPVOID ArrayOfCallBacks, DWORD NumberOfCallBacks) __declspec(dllexport) bool TITCALL TLSBuildNewTable(ULONG_PTR FileMapVA, ULONG_PTR StorePlace, ULONG_PTR StorePlaceRVA, LPVOID ArrayOfCallBacks, DWORD NumberOfCallBacks)
{ {
@ -676,7 +676,7 @@ __declspec(dllexport) bool TITCALL TLSBuildNewTable(ULONG_PTR FileMapVA, ULONG_P
} }
else else
{ {
return(false); return false;
} }
if(!FileIs64) if(!FileIs64)
{ {
@ -690,11 +690,11 @@ __declspec(dllexport) bool TITCALL TLSBuildNewTable(ULONG_PTR FileMapVA, ULONG_P
TLSDirectoryX86->AddressOfIndex = (DWORD)TLSWriteData + 0x14; TLSDirectoryX86->AddressOfIndex = (DWORD)TLSWriteData + 0x14;
TLSDirectoryX86->AddressOfCallBacks = (DWORD)TLSWriteData + sizeof IMAGE_TLS_DIRECTORY32 + 8; TLSDirectoryX86->AddressOfCallBacks = (DWORD)TLSWriteData + sizeof IMAGE_TLS_DIRECTORY32 + 8;
RtlMoveMemory((LPVOID)(StorePlace + sizeof IMAGE_TLS_DIRECTORY32 + 8), ArrayOfCallBacks, NumberOfCallBacks * 4); RtlMoveMemory((LPVOID)(StorePlace + sizeof IMAGE_TLS_DIRECTORY32 + 8), ArrayOfCallBacks, NumberOfCallBacks * 4);
return(true); return true;
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
return(false); return false;
} }
} }
else else
@ -709,20 +709,20 @@ __declspec(dllexport) bool TITCALL TLSBuildNewTable(ULONG_PTR FileMapVA, ULONG_P
TLSDirectoryX64->AddressOfIndex = TLSWriteData + 0x28; TLSDirectoryX64->AddressOfIndex = TLSWriteData + 0x28;
TLSDirectoryX64->AddressOfCallBacks = TLSWriteData + sizeof IMAGE_TLS_DIRECTORY64 + 12; TLSDirectoryX64->AddressOfCallBacks = TLSWriteData + sizeof IMAGE_TLS_DIRECTORY64 + 12;
RtlMoveMemory((LPVOID)(StorePlace + sizeof IMAGE_TLS_DIRECTORY64 + 12), ArrayOfCallBacks, NumberOfCallBacks * 8); RtlMoveMemory((LPVOID)(StorePlace + sizeof IMAGE_TLS_DIRECTORY64 + 12), ArrayOfCallBacks, NumberOfCallBacks * 8);
return(true); return true;
} }
__except(EXCEPTION_EXECUTE_HANDLER) __except(EXCEPTION_EXECUTE_HANDLER)
{ {
return(false); return false;
} }
} }
} }
else else
{ {
return(false); return false;
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL TLSBuildNewTableEx(char* szFileName, char* szSectionName, LPVOID ArrayOfCallBacks, DWORD NumberOfCallBacks) __declspec(dllexport) bool TITCALL TLSBuildNewTableEx(char* szFileName, char* szSectionName, LPVOID ArrayOfCallBacks, DWORD NumberOfCallBacks)
{ {
@ -736,7 +736,7 @@ __declspec(dllexport) bool TITCALL TLSBuildNewTableEx(char* szFileName, char* sz
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL TLSBuildNewTableExW(wchar_t* szFileName, char* szSectionName, LPVOID ArrayOfCallBacks, DWORD NumberOfCallBacks) __declspec(dllexport) bool TITCALL TLSBuildNewTableExW(wchar_t* szFileName, char* szSectionName, LPVOID ArrayOfCallBacks, DWORD NumberOfCallBacks)
@ -760,15 +760,15 @@ __declspec(dllexport) bool TITCALL TLSBuildNewTableExW(wchar_t* szFileName, char
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA); UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
if(ReturnValue) if(ReturnValue)
{ {
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
} }

View File

@ -43,10 +43,10 @@ __declspec(dllexport) bool TITCALL ThreaderImportRunningThreadData(DWORD Process
while(Thread32Next(hSnapShot, &ThreadEntry)); while(Thread32Next(hSnapShot, &ThreadEntry));
} }
EngineCloseHandle(hSnapShot); EngineCloseHandle(hSnapShot);
return(true); return true;
} }
} }
return(false); return false;
} }
__declspec(dllexport) void* TITCALL ThreaderGetThreadInfo(HANDLE hThread, DWORD ThreadId) __declspec(dllexport) void* TITCALL ThreaderGetThreadInfo(HANDLE hThread, DWORD ThreadId)
{ {
@ -123,20 +123,20 @@ __declspec(dllexport) bool TITCALL ThreaderPauseThread(HANDLE hThread)
{ {
if(SuspendThread(hThread) != -1) if(SuspendThread(hThread) != -1)
{ {
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL ThreaderResumeThread(HANDLE hThread) __declspec(dllexport) bool TITCALL ThreaderResumeThread(HANDLE hThread)
{ {
@ -155,20 +155,20 @@ __declspec(dllexport) bool TITCALL ThreaderResumeThread(HANDLE hThread)
{ {
if(ResumeThread(hThread) != -1) if(ResumeThread(hThread) != -1)
{ {
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL ThreaderTerminateThread(HANDLE hThread, DWORD ThreadExitCode) __declspec(dllexport) bool TITCALL ThreaderTerminateThread(HANDLE hThread, DWORD ThreadExitCode)
{ {
@ -191,20 +191,20 @@ __declspec(dllexport) bool TITCALL ThreaderTerminateThread(HANDLE hThread, DWORD
hListThreadPtr->dwThreadId = NULL; hListThreadPtr->dwThreadId = NULL;
hListThreadPtr->ThreadLocalBase = NULL; hListThreadPtr->ThreadLocalBase = NULL;
hListThreadPtr->ThreadStartAddress = NULL; hListThreadPtr->ThreadStartAddress = NULL;
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
else else
{ {
return(false); return false;
} }
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL ThreaderPauseAllThreads(bool LeaveMainRunning) __declspec(dllexport) bool TITCALL ThreaderPauseAllThreads(bool LeaveMainRunning)
{ {
@ -228,9 +228,9 @@ __declspec(dllexport) bool TITCALL ThreaderPauseAllThreads(bool LeaveMainRunning
} }
hListThreadPtr = (PTHREAD_ITEM_DATA)((ULONG_PTR)hListThreadPtr + sizeof THREAD_ITEM_DATA); hListThreadPtr = (PTHREAD_ITEM_DATA)((ULONG_PTR)hListThreadPtr + sizeof THREAD_ITEM_DATA);
} }
return(true); return true;
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL ThreaderResumeAllThreads(bool LeaveMainPaused) __declspec(dllexport) bool TITCALL ThreaderResumeAllThreads(bool LeaveMainPaused)
{ {
@ -254,9 +254,9 @@ __declspec(dllexport) bool TITCALL ThreaderResumeAllThreads(bool LeaveMainPaused
} }
hListThreadPtr = (PTHREAD_ITEM_DATA)((ULONG_PTR)hListThreadPtr + sizeof THREAD_ITEM_DATA); hListThreadPtr = (PTHREAD_ITEM_DATA)((ULONG_PTR)hListThreadPtr + sizeof THREAD_ITEM_DATA);
} }
return(true); return true;
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL ThreaderPauseProcess() __declspec(dllexport) bool TITCALL ThreaderPauseProcess()
{ {
@ -298,14 +298,14 @@ __declspec(dllexport) bool TITCALL ThreaderInjectAndExecuteCode(LPVOID InjectCod
if(WriteProcessMemory(dbgProcessInformation.hProcess, ThreadBase, InjectCode, InjectSize, &ueNumberOfBytesRead)) if(WriteProcessMemory(dbgProcessInformation.hProcess, ThreadBase, InjectCode, InjectSize, &ueNumberOfBytesRead))
{ {
ThreaderCreateRemoteThread((ULONG_PTR)((ULONG_PTR)InjectCode + StartDelta), true, NULL, NULL); ThreaderCreateRemoteThread((ULONG_PTR)((ULONG_PTR)InjectCode + StartDelta), true, NULL, NULL);
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
return(false); return false;
} }
__declspec(dllexport) long long TITCALL ThreaderCreateRemoteThreadEx(HANDLE hProcess, ULONG_PTR ThreadStartAddress, bool AutoCloseTheHandle, LPVOID ThreadPassParameter, LPDWORD ThreadId) __declspec(dllexport) long long TITCALL ThreaderCreateRemoteThreadEx(HANDLE hProcess, ULONG_PTR ThreadStartAddress, bool AutoCloseTheHandle, LPVOID ThreadPassParameter, LPDWORD ThreadId)
{ {
@ -339,14 +339,14 @@ __declspec(dllexport) bool TITCALL ThreaderInjectAndExecuteCodeEx(HANDLE hProces
if(WriteProcessMemory(hProcess, ThreadBase, InjectCode, InjectSize, &ueNumberOfBytesRead)) if(WriteProcessMemory(hProcess, ThreadBase, InjectCode, InjectSize, &ueNumberOfBytesRead))
{ {
ThreaderCreateRemoteThread((ULONG_PTR)((ULONG_PTR)InjectCode + StartDelta), true, NULL, NULL); ThreaderCreateRemoteThread((ULONG_PTR)((ULONG_PTR)InjectCode + StartDelta), true, NULL, NULL);
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
return(false); return false;
} }
__declspec(dllexport) void TITCALL ThreaderSetCallBackForNextExitThreadEvent(LPVOID exitThreadCallBack) __declspec(dllexport) void TITCALL ThreaderSetCallBackForNextExitThreadEvent(LPVOID exitThreadCallBack)
{ {
@ -361,11 +361,11 @@ __declspec(dllexport) bool TITCALL ThreaderIsThreadStillRunning(HANDLE hThread)
myDBGContext.ContextFlags = CONTEXT_ALL; myDBGContext.ContextFlags = CONTEXT_ALL;
if(GetThreadContext(hThread, &myDBGContext)) if(GetThreadContext(hThread, &myDBGContext))
{ {
return(true); return true;
} }
else else
{ {
return(false); return false;
} }
} }
__declspec(dllexport) bool TITCALL ThreaderIsThreadActive(HANDLE hThread) __declspec(dllexport) bool TITCALL ThreaderIsThreadActive(HANDLE hThread)
@ -373,9 +373,9 @@ __declspec(dllexport) bool TITCALL ThreaderIsThreadActive(HANDLE hThread)
if(SuspendThread(hThread)) //if previous suspend count is above 0 (which means thread is suspended) if(SuspendThread(hThread)) //if previous suspend count is above 0 (which means thread is suspended)
{ {
ResumeThread(hThread); //decrement suspend count ResumeThread(hThread); //decrement suspend count
return(true); return true;
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL ThreaderIsAnyThreadActive() __declspec(dllexport) bool TITCALL ThreaderIsAnyThreadActive()
{ {
@ -390,13 +390,13 @@ __declspec(dllexport) bool TITCALL ThreaderIsAnyThreadActive()
{ {
if(ThreaderIsThreadActive(hListThreadPtr->hThread)) if(ThreaderIsThreadActive(hListThreadPtr->hThread))
{ {
return(true); return true;
} }
} }
hListThreadPtr = (PTHREAD_ITEM_DATA)((ULONG_PTR)hListThreadPtr + sizeof THREAD_ITEM_DATA); hListThreadPtr = (PTHREAD_ITEM_DATA)((ULONG_PTR)hListThreadPtr + sizeof THREAD_ITEM_DATA);
} }
} }
return(false); return false;
} }
__declspec(dllexport) bool TITCALL ThreaderExecuteOnlyInjectedThreads() __declspec(dllexport) bool TITCALL ThreaderExecuteOnlyInjectedThreads()
{ {
@ -404,9 +404,9 @@ __declspec(dllexport) bool TITCALL ThreaderExecuteOnlyInjectedThreads()
if(ThreaderPauseProcess()) if(ThreaderPauseProcess())
{ {
engineResumeProcessIfNoThreadIsActive = true; engineResumeProcessIfNoThreadIsActive = true;
return(true); return true;
} }
return(false); return false;
} }
__declspec(dllexport) long long TITCALL ThreaderGetOpenHandleForThread(DWORD ThreadId) __declspec(dllexport) long long TITCALL ThreaderGetOpenHandleForThread(DWORD ThreadId)
{ {
@ -438,7 +438,7 @@ __declspec(dllexport) bool TITCALL ThreaderIsExceptionInMainThread()
myDBGEvent = (LPDEBUG_EVENT)GetDebugData(); myDBGEvent = (LPDEBUG_EVENT)GetDebugData();
if(myDBGEvent->dwThreadId == dbgProcessInformation.dwThreadId) if(myDBGEvent->dwThreadId == dbgProcessInformation.dwThreadId)
{ {
return(true); return true;
} }
return(false); return false;
} }

View File

@ -72,6 +72,8 @@
<Unit filename="Global.Engine.Hook.h" /> <Unit filename="Global.Engine.Hook.h" />
<Unit filename="Global.Engine.Simplification.cpp" /> <Unit filename="Global.Engine.Simplification.cpp" />
<Unit filename="Global.Engine.Simplification.h" /> <Unit filename="Global.Engine.Simplification.h" />
<Unit filename="Global.Engine.Threading.cpp" />
<Unit filename="Global.Engine.Threading.h" />
<Unit filename="Global.Engine.cpp" /> <Unit filename="Global.Engine.cpp" />
<Unit filename="Global.Engine.h" /> <Unit filename="Global.Engine.h" />
<Unit filename="Global.Garbage.cpp" /> <Unit filename="Global.Garbage.cpp" />

View File

@ -88,7 +88,6 @@ StopDebug
SetBPXOptions SetBPXOptions
IsBPXEnabled IsBPXEnabled
SetBPX SetBPX
SetBPXEx
DisableBPX DisableBPX
EnableBPX EnableBPX
DeleteBPX DeleteBPX

View File

@ -169,12 +169,11 @@ __declspec(dllexport) bool TITCALL IsBPXEnabled(ULONG_PTR bpxAddress);
__declspec(dllexport) bool TITCALL EnableBPX(ULONG_PTR bpxAddress); __declspec(dllexport) bool TITCALL EnableBPX(ULONG_PTR bpxAddress);
__declspec(dllexport) bool TITCALL DisableBPX(ULONG_PTR bpxAddress); __declspec(dllexport) bool TITCALL DisableBPX(ULONG_PTR bpxAddress);
__declspec(dllexport) bool TITCALL SetBPX(ULONG_PTR bpxAddress, DWORD bpxType, LPVOID bpxCallBack); __declspec(dllexport) bool TITCALL SetBPX(ULONG_PTR bpxAddress, DWORD bpxType, LPVOID bpxCallBack);
__declspec(dllexport) bool TITCALL SetBPXEx(ULONG_PTR bpxAddress, DWORD bpxType, DWORD NumberOfExecution, DWORD CmpRegister, DWORD CmpCondition, ULONG_PTR CmpValue, LPVOID bpxCallBack, LPVOID bpxCompareCallBack, LPVOID bpxRemoveCallBack);
__declspec(dllexport) bool TITCALL DeleteBPX(ULONG_PTR bpxAddress); __declspec(dllexport) bool TITCALL DeleteBPX(ULONG_PTR bpxAddress);
__declspec(dllexport) bool TITCALL SafeDeleteBPX(ULONG_PTR bpxAddress); __declspec(dllexport) bool TITCALL SafeDeleteBPX(ULONG_PTR bpxAddress);
__declspec(dllexport) bool TITCALL SetAPIBreakPoint(char* szDLLName, char* szAPIName, DWORD bpxType, DWORD bpxPlace, LPVOID bpxCallBack); __declspec(dllexport) bool TITCALL SetAPIBreakPoint(const char* szDLLName, const char* szAPIName, DWORD bpxType, DWORD bpxPlace, LPVOID bpxCallBack);
__declspec(dllexport) bool TITCALL DeleteAPIBreakPoint(char* szDLLName, char* szAPIName, DWORD bpxPlace); __declspec(dllexport) bool TITCALL DeleteAPIBreakPoint(const char* szDLLName, const char* szAPIName, DWORD bpxPlace);
__declspec(dllexport) bool TITCALL SafeDeleteAPIBreakPoint(char* szDLLName, char* szAPIName, DWORD bpxPlace); __declspec(dllexport) bool TITCALL SafeDeleteAPIBreakPoint(const char* szDLLName, const char* szAPIName, DWORD bpxPlace);
__declspec(dllexport) bool TITCALL SetMemoryBPX(ULONG_PTR MemoryStart, SIZE_T SizeOfMemory, LPVOID bpxCallBack); __declspec(dllexport) bool TITCALL SetMemoryBPX(ULONG_PTR MemoryStart, SIZE_T SizeOfMemory, LPVOID bpxCallBack);
__declspec(dllexport) bool TITCALL SetMemoryBPXEx(ULONG_PTR MemoryStart, SIZE_T SizeOfMemory, DWORD BreakPointType, bool RestoreOnHit, LPVOID bpxCallBack); __declspec(dllexport) bool TITCALL SetMemoryBPXEx(ULONG_PTR MemoryStart, SIZE_T SizeOfMemory, DWORD BreakPointType, bool RestoreOnHit, LPVOID bpxCallBack);
__declspec(dllexport) bool TITCALL RemoveMemoryBPX(ULONG_PTR MemoryStart, SIZE_T SizeOfMemory); __declspec(dllexport) bool TITCALL RemoveMemoryBPX(ULONG_PTR MemoryStart, SIZE_T SizeOfMemory);

View File

@ -115,18 +115,11 @@ typedef struct
BYTE BreakPointActive; BYTE BreakPointActive;
ULONG_PTR BreakPointAddress; ULONG_PTR BreakPointAddress;
SIZE_T BreakPointSize; SIZE_T BreakPointSize;
BYTE OriginalByte[10]; BYTE OriginalByte[UE_MAX_BREAKPOINT_SIZE];
int BreakPointType; int BreakPointType;
int AdvancedBreakPointType; int AdvancedBreakPointType;
int MemoryBpxRestoreOnHit; int MemoryBpxRestoreOnHit;
DWORD NumberOfExecutions;
DWORD CmpRegister;
int CmpCondition;
ULONG_PTR CmpValue;
ULONG_PTR ExecuteCallBack; ULONG_PTR ExecuteCallBack;
ULONG_PTR CompareCallBack;
ULONG_PTR RemoveCallBack;
DWORD UniqueLinkId;
} BreakPointDetail, *PBreakPointDetail; } BreakPointDetail, *PBreakPointDetail;
typedef struct typedef struct