diff --git a/BlitzPointer.cpp b/BlitzPointer.cpp index 17b03a4..8612527 100644 --- a/BlitzPointer.cpp +++ b/BlitzPointer.cpp @@ -56,8 +56,9 @@ DLL_METHOD intptr_t DLL_CALL BP_GetFunctionPointer() if (*(curPtr + 2) == 0x57) // push edi if (*(curPtr + 3) == 0x55) // push ebp if (*(curPtr + 4) == 0x89 && *(curPtr + 5) == 0xE5) // mov ebp,esp - return (intptr_t)curPtr; + return reinterpret_cast(curPtr); } + // This can be done more efficiently, just look twice for the return address. return 0; } @@ -74,6 +75,7 @@ DLL_METHOD intptr_t DLL_CALL BP_GetVariablePointer(int32_t pVariable) pop ReturnAddress; // Just like this. mov esp, [StackPointer]; // And then reset the Stack Pointer. } + // The Variable pointer that is used is at -9 bytes offset to the return address. return *reinterpret_cast(ReturnAddress - 9); } diff --git a/BlitzPointer.vcxproj b/BlitzPointer.vcxproj index 07cac11..cf9c51f 100644 --- a/BlitzPointer.vcxproj +++ b/BlitzPointer.vcxproj @@ -213,6 +213,11 @@ PreserveNewest true + + Examples\Example08.bb + PreserveNewest + true + diff --git a/BlitzPointer.vcxproj.filters b/BlitzPointer.vcxproj.filters index 6a6639d..8ecdabf 100644 --- a/BlitzPointer.vcxproj.filters +++ b/BlitzPointer.vcxproj.filters @@ -18,6 +18,9 @@ {df5bf7dd-7995-49a8-b534-f2c83a65ad87} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + {2045f2b8-f3b8-4e65-80eb-459d4e00cd5a} + @@ -48,32 +51,35 @@ Blitz Files - - Blitz Files - - Blitz Files + Blitz Files\Examples - Blitz Files + Blitz Files\Examples - Blitz Files + Blitz Files\Examples - Blitz Files + Blitz Files\Examples - Blitz Files + Blitz Files\Examples - Blitz Files + Blitz Files\Examples - Blitz Files + Blitz Files\Examples - Blitz Files + Blitz Files\Examples + + + Blitz Files\Examples + + + Blitz Files\Examples \ No newline at end of file