mirror of https://github.com/x64dbg/TitanEngine
- fixed a small SDK bug (with UE_MEMORY_EXECUTE)
- fixed a bug with MEMORY_EXECUTE (which was excluded as memory breakpoint type) - slightly bigger buffer, to avoid undefined output when you directly use the returned char pointer as string
This commit is contained in:
parent
592f618a9c
commit
d585941ba9
|
|
@ -10,3 +10,4 @@ Release/*/*
|
||||||
*.suo
|
*.suo
|
||||||
*.bmarks
|
*.bmarks
|
||||||
TitanEngine/TitanEngine.cscope_file_list
|
TitanEngine/TitanEngine.cscope_file_list
|
||||||
|
*.opensdf
|
||||||
|
|
|
||||||
|
|
@ -138,7 +138,7 @@ const BYTE UE_HARDWARE = 2;
|
||||||
const BYTE UE_MEMORY = 3;
|
const BYTE UE_MEMORY = 3;
|
||||||
const BYTE UE_MEMORY_READ = 4;
|
const BYTE UE_MEMORY_READ = 4;
|
||||||
const BYTE UE_MEMORY_WRITE = 5;
|
const BYTE UE_MEMORY_WRITE = 5;
|
||||||
const BYTE UE_MEMORY_EXECUTE = 5;
|
const BYTE UE_MEMORY_EXECUTE = 6;
|
||||||
const DWORD UE_BREAKPOINT_TYPE_INT3 = 0x10000000;
|
const DWORD UE_BREAKPOINT_TYPE_INT3 = 0x10000000;
|
||||||
const DWORD UE_BREAKPOINT_TYPE_LONG_INT3 = 0x20000000;
|
const DWORD UE_BREAKPOINT_TYPE_LONG_INT3 = 0x20000000;
|
||||||
const DWORD UE_BREAKPOINT_TYPE_UD2 = 0x30000000;
|
const DWORD UE_BREAKPOINT_TYPE_UD2 = 0x30000000;
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
#define TITCALL
|
#define TITCALL
|
||||||
|
|
||||||
#if _MSC_VER > 1000
|
#if _MSC_VER > 1000
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
namespace TE
|
namespace TE
|
||||||
|
|
@ -14,11 +14,11 @@ namespace TE
|
||||||
|
|
||||||
namespace UE
|
namespace UE
|
||||||
{
|
{
|
||||||
#ifdef TITANENGINE
|
#ifdef TITANENGINE
|
||||||
#undef TITANENGINE
|
#undef TITANENGINE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "TitanEngine.h"
|
#include "TitanEngine.h"
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----
|
// ----
|
||||||
|
|
@ -687,11 +687,11 @@ public:
|
||||||
using DumperW::ResizeLastSection;
|
using DumperW::ResizeLastSection;
|
||||||
using DumperA::SetSharedOverlay;
|
using DumperA::SetSharedOverlay;
|
||||||
using DumperW::SetSharedOverlay;
|
using DumperW::SetSharedOverlay;
|
||||||
#ifndef UNICODE
|
#ifndef UNICODE
|
||||||
using DumperA::GetSharedOverlay;
|
using DumperA::GetSharedOverlay;
|
||||||
#else
|
#else
|
||||||
using DumperW::GetSharedOverlay;
|
using DumperW::GetSharedOverlay;
|
||||||
#endif
|
#endif
|
||||||
using DumperA::DeleteLastSection;
|
using DumperA::DeleteLastSection;
|
||||||
using DumperW::DeleteLastSection;
|
using DumperW::DeleteLastSection;
|
||||||
using DumperA::DeleteLastSectionEx;
|
using DumperA::DeleteLastSectionEx;
|
||||||
|
|
@ -1997,28 +1997,28 @@ class Librarian : LibrarianX, LibrarianA, LibrarianW
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
#ifndef UNICODE
|
#ifndef UNICODE
|
||||||
typedef LibrarianA::LIBRARY_ITEM_DATA LIBRARY_ITEM_DATA;
|
typedef LibrarianA::LIBRARY_ITEM_DATA LIBRARY_ITEM_DATA;
|
||||||
#else
|
#else
|
||||||
typedef LibrarianW::LIBRARY_ITEM_DATA LIBRARY_ITEM_DATA;
|
typedef LibrarianW::LIBRARY_ITEM_DATA LIBRARY_ITEM_DATA;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
using LibrarianX::fLibraryBreakPointCallback;
|
using LibrarianX::fLibraryBreakPointCallback;
|
||||||
#ifndef UNICODE
|
#ifndef UNICODE
|
||||||
typedef LibrarianA::fLibraryEnumCallback fLibraryEnumCallback;
|
typedef LibrarianA::fLibraryEnumCallback fLibraryEnumCallback;
|
||||||
#else
|
#else
|
||||||
typedef LibrarianW::fLibraryEnumCallback fLibraryEnumCallback;
|
typedef LibrarianW::fLibraryEnumCallback fLibraryEnumCallback;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
using LibrarianX::SetBreakPoint;
|
using LibrarianX::SetBreakPoint;
|
||||||
using LibrarianX::RemoveBreakPoint;
|
using LibrarianX::RemoveBreakPoint;
|
||||||
using LibrarianA::GetLibraryInfo;
|
using LibrarianA::GetLibraryInfo;
|
||||||
using LibrarianW::GetLibraryInfo;
|
using LibrarianW::GetLibraryInfo;
|
||||||
#ifndef UNICODE
|
#ifndef UNICODE
|
||||||
using LibrarianA::GetLibraryInfoEx;
|
using LibrarianA::GetLibraryInfoEx;
|
||||||
#else
|
#else
|
||||||
using LibrarianW::GetLibraryInfoEx;
|
using LibrarianW::GetLibraryInfoEx;
|
||||||
#endif
|
#endif
|
||||||
using LibrarianA::EnumLibraryInfo;
|
using LibrarianA::EnumLibraryInfo;
|
||||||
using LibrarianW::EnumLibraryInfo;
|
using LibrarianW::EnumLibraryInfo;
|
||||||
};
|
};
|
||||||
|
|
@ -2511,11 +2511,11 @@ public:
|
||||||
|
|
||||||
using HandlerX::GetActiveHandleCount;
|
using HandlerX::GetActiveHandleCount;
|
||||||
using HandlerX::IsHandleOpen;
|
using HandlerX::IsHandleOpen;
|
||||||
#ifndef UNICODE
|
#ifndef UNICODE
|
||||||
using HandlerA::GetHandleName;
|
using HandlerA::GetHandleName;
|
||||||
#else
|
#else
|
||||||
using HandlerW::GetHandleName;
|
using HandlerW::GetHandleName;
|
||||||
#endif
|
#endif
|
||||||
using HandlerX::EnumerateOpenHandles;
|
using HandlerX::EnumerateOpenHandles;
|
||||||
using HandlerX::GetHandleDetails;
|
using HandlerX::GetHandleDetails;
|
||||||
using HandlerX::CloseRemoteHandle;
|
using HandlerX::CloseRemoteHandle;
|
||||||
|
|
|
||||||
|
|
@ -5005,7 +5005,7 @@ __declspec(dllexport) long long TITCALL GetPE32DataFromMappedFile(ULONG_PTR File
|
||||||
PIMAGE_SECTION_HEADER PESections;
|
PIMAGE_SECTION_HEADER PESections;
|
||||||
DWORD SectionNumber = 0;
|
DWORD SectionNumber = 0;
|
||||||
BOOL FileIs64;
|
BOOL FileIs64;
|
||||||
static char sectionName[8] = "";
|
static char sectionName[9] = "";
|
||||||
|
|
||||||
if(FileMapVA != NULL)
|
if(FileMapVA != NULL)
|
||||||
{
|
{
|
||||||
|
|
@ -13540,7 +13540,8 @@ __declspec(dllexport) bool TITCALL RemoveMemoryBPX(ULONG_PTR MemoryStart, DWORD
|
||||||
if(BreakPointBuffer[i].BreakPointAddress == MemoryStart &&
|
if(BreakPointBuffer[i].BreakPointAddress == MemoryStart &&
|
||||||
(BreakPointBuffer[i].BreakPointType == UE_MEMORY ||
|
(BreakPointBuffer[i].BreakPointType == UE_MEMORY ||
|
||||||
BreakPointBuffer[i].BreakPointType == UE_MEMORY_READ ||
|
BreakPointBuffer[i].BreakPointType == UE_MEMORY_READ ||
|
||||||
BreakPointBuffer[i].BreakPointType == UE_MEMORY_WRITE)
|
BreakPointBuffer[i].BreakPointType == UE_MEMORY_WRITE ||
|
||||||
|
BreakPointBuffer[i].BreakPointType == UE_MEMORY_EXECUTE)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
if(i - 1 == BreakPointSetCount)
|
if(i - 1 == BreakPointSetCount)
|
||||||
|
|
@ -16101,7 +16102,7 @@ __declspec(dllexport) bool TITCALL RemoveAllBreakPoints(DWORD RemoveOption)
|
||||||
{
|
{
|
||||||
DeleteBPX((ULONG_PTR)BreakPointBuffer[i].BreakPointAddress);
|
DeleteBPX((ULONG_PTR)BreakPointBuffer[i].BreakPointAddress);
|
||||||
}
|
}
|
||||||
else if(BreakPointBuffer[i].BreakPointType >= UE_MEMORY && BreakPointBuffer[i].BreakPointType <= UE_MEMORY_WRITE)
|
else if(BreakPointBuffer[i].BreakPointType >= UE_MEMORY && BreakPointBuffer[i].BreakPointType <= UE_MEMORY_EXECUTE)
|
||||||
{
|
{
|
||||||
RemoveMemoryBPX((ULONG_PTR)BreakPointBuffer[i].BreakPointAddress, BreakPointBuffer[i].BreakPointSize);
|
RemoveMemoryBPX((ULONG_PTR)BreakPointBuffer[i].BreakPointAddress, BreakPointBuffer[i].BreakPointSize);
|
||||||
}
|
}
|
||||||
|
|
@ -16126,7 +16127,7 @@ __declspec(dllexport) bool TITCALL RemoveAllBreakPoints(DWORD RemoveOption)
|
||||||
{
|
{
|
||||||
DisableBPX((ULONG_PTR)BreakPointBuffer[i].BreakPointAddress);
|
DisableBPX((ULONG_PTR)BreakPointBuffer[i].BreakPointAddress);
|
||||||
}
|
}
|
||||||
else if(BreakPointBuffer[i].BreakPointType >= UE_MEMORY && BreakPointBuffer[i].BreakPointType <= UE_MEMORY_WRITE)
|
else if(BreakPointBuffer[i].BreakPointType >= UE_MEMORY && BreakPointBuffer[i].BreakPointType <= UE_MEMORY_EXECUTE)
|
||||||
{
|
{
|
||||||
RemoveMemoryBPX((ULONG_PTR)BreakPointBuffer[i].BreakPointAddress, BreakPointBuffer[i].BreakPointSize);
|
RemoveMemoryBPX((ULONG_PTR)BreakPointBuffer[i].BreakPointAddress, BreakPointBuffer[i].BreakPointSize);
|
||||||
RtlZeroMemory(&BreakPointBuffer[i], sizeof BreakPointDetail);
|
RtlZeroMemory(&BreakPointBuffer[i], sizeof BreakPointDetail);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue