mirror of https://github.com/x64dbg/TitanEngine
- resolved issue #20 (problems with MapFileAndCheckSumW)
This commit is contained in:
parent
41c8fa80c3
commit
bc75cfe305
|
|
@ -8,36 +8,46 @@
|
||||||
// TitanEngine.Realigner.functions:
|
// TitanEngine.Realigner.functions:
|
||||||
__declspec(dllexport) bool TITCALL FixHeaderCheckSum(char* szFileName)
|
__declspec(dllexport) bool TITCALL FixHeaderCheckSum(char* szFileName)
|
||||||
{
|
{
|
||||||
|
HANDLE FileHandle;
|
||||||
DWORD HeaderSum = NULL;
|
DWORD FileSize;
|
||||||
DWORD CheckSum = NULL;
|
HANDLE FileMap;
|
||||||
|
ULONG_PTR FileMapVA;
|
||||||
if(MapFileAndCheckSumA(szFileName, &HeaderSum, &CheckSum) == NULL)
|
if(MapFileEx(szFileName, UE_ACCESS_READ, &FileHandle, &FileSize, &FileMap, &FileMapVA, 0))
|
||||||
{
|
{
|
||||||
SetPE32Data(szFileName, NULL, UE_CHECKSUM, (ULONG_PTR)CheckSum);
|
DWORD HeaderSum;
|
||||||
return true;
|
DWORD CheckSum;
|
||||||
}
|
if(CheckSumMappedFile((PVOID)FileMapVA, FileSize, &HeaderSum, &CheckSum) != NULL)
|
||||||
else
|
|
||||||
{
|
{
|
||||||
|
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
|
||||||
|
return SetPE32Data(szFileName, NULL, UE_CHECKSUM, (ULONG_PTR)CheckSum);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
__declspec(dllexport) bool TITCALL FixHeaderCheckSumW(wchar_t* szFileName)
|
__declspec(dllexport) bool TITCALL FixHeaderCheckSumW(wchar_t* szFileName)
|
||||||
{
|
{
|
||||||
|
HANDLE FileHandle;
|
||||||
DWORD HeaderSum = NULL;
|
DWORD FileSize;
|
||||||
DWORD CheckSum = NULL;
|
HANDLE FileMap;
|
||||||
|
ULONG_PTR FileMapVA;
|
||||||
if(MapFileAndCheckSumW(szFileName, &HeaderSum, &CheckSum) == NULL)
|
if(MapFileExW(szFileName, UE_ACCESS_READ, &FileHandle, &FileSize, &FileMap, &FileMapVA, 0))
|
||||||
{
|
{
|
||||||
SetPE32DataW(szFileName, NULL, UE_CHECKSUM, (ULONG_PTR)CheckSum);
|
DWORD HeaderSum;
|
||||||
return true;
|
DWORD CheckSum;
|
||||||
}
|
if(CheckSumMappedFile((PVOID)FileMapVA, FileSize, &HeaderSum, &CheckSum) != NULL)
|
||||||
else
|
|
||||||
{
|
{
|
||||||
|
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
UnMapFileEx(FileHandle, FileSize, FileMap, FileMapVA);
|
||||||
|
return SetPE32DataW(szFileName, NULL, UE_CHECKSUM, (ULONG_PTR)CheckSum);
|
||||||
|
}
|
||||||
|
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)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue