Add Example08 to the project, rewrite GetFunctionPointer started.

This commit is contained in:
Michael Dirks
2015-12-30 04:14:53 +01:00
parent 519cd5c577
commit 95dd86e6af
3 changed files with 25 additions and 12 deletions
+3 -1
View File
@@ -56,8 +56,9 @@ DLL_METHOD intptr_t DLL_CALL BP_GetFunctionPointer()
if (*(curPtr + 2) == 0x57) // push edi if (*(curPtr + 2) == 0x57) // push edi
if (*(curPtr + 3) == 0x55) // push ebp if (*(curPtr + 3) == 0x55) // push ebp
if (*(curPtr + 4) == 0x89 && *(curPtr + 5) == 0xE5) // mov ebp,esp if (*(curPtr + 4) == 0x89 && *(curPtr + 5) == 0xE5) // mov ebp,esp
return (intptr_t)curPtr; return reinterpret_cast<intptr_t>(curPtr);
} }
// This can be done more efficiently, just look twice for the return address.
return 0; return 0;
} }
@@ -74,6 +75,7 @@ DLL_METHOD intptr_t DLL_CALL BP_GetVariablePointer(int32_t pVariable)
pop ReturnAddress; // Just like this. pop ReturnAddress; // Just like this.
mov esp, [StackPointer]; // And then reset the Stack Pointer. mov esp, [StackPointer]; // And then reset the Stack Pointer.
} }
// The Variable pointer that is used is at -9 bytes offset to the return address. // The Variable pointer that is used is at -9 bytes offset to the return address.
return *reinterpret_cast<int32_t*>(ReturnAddress - 9); return *reinterpret_cast<int32_t*>(ReturnAddress - 9);
} }
+5
View File
@@ -213,6 +213,11 @@
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</DeploymentContent> <DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</DeploymentContent>
</None> </None>
<None Include="Examples\Example08.bb">
<Link>Examples\Example08.bb</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</DeploymentContent>
</None>
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">
+17 -11
View File
@@ -18,6 +18,9 @@
<UniqueIdentifier>{df5bf7dd-7995-49a8-b534-f2c83a65ad87}</UniqueIdentifier> <UniqueIdentifier>{df5bf7dd-7995-49a8-b534-f2c83a65ad87}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter> </Filter>
<Filter Include="Blitz Files\Examples">
<UniqueIdentifier>{2045f2b8-f3b8-4e65-80eb-459d4e00cd5a}</UniqueIdentifier>
</Filter>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="dllmain.cpp"> <ClCompile Include="dllmain.cpp">
@@ -48,32 +51,35 @@
<None Include="BlitzPointer.decls"> <None Include="BlitzPointer.decls">
<Filter>Blitz Files</Filter> <Filter>Blitz Files</Filter>
</None> </None>
<None Include="Examples\BlitzPointer.ipf">
<Filter>Blitz Files</Filter>
</None>
<None Include="Examples\Example_Shared.bb"> <None Include="Examples\Example_Shared.bb">
<Filter>Blitz Files</Filter> <Filter>Blitz Files\Examples</Filter>
</None> </None>
<None Include="Examples\Example01.bb"> <None Include="Examples\Example01.bb">
<Filter>Blitz Files</Filter> <Filter>Blitz Files\Examples</Filter>
</None> </None>
<None Include="Examples\Example02.bb"> <None Include="Examples\Example02.bb">
<Filter>Blitz Files</Filter> <Filter>Blitz Files\Examples</Filter>
</None> </None>
<None Include="Examples\Example03.bb"> <None Include="Examples\Example03.bb">
<Filter>Blitz Files</Filter> <Filter>Blitz Files\Examples</Filter>
</None> </None>
<None Include="Examples\Example04.bb"> <None Include="Examples\Example04.bb">
<Filter>Blitz Files</Filter> <Filter>Blitz Files\Examples</Filter>
</None> </None>
<None Include="Examples\Example05.bb"> <None Include="Examples\Example05.bb">
<Filter>Blitz Files</Filter> <Filter>Blitz Files\Examples</Filter>
</None> </None>
<None Include="Examples\Example06.bb"> <None Include="Examples\Example06.bb">
<Filter>Blitz Files</Filter> <Filter>Blitz Files\Examples</Filter>
</None> </None>
<None Include="Examples\Example07.bb"> <None Include="Examples\Example07.bb">
<Filter>Blitz Files</Filter> <Filter>Blitz Files\Examples</Filter>
</None>
<None Include="Examples\Example08.bb">
<Filter>Blitz Files\Examples</Filter>
</None>
<None Include="Examples\BlitzPointer.ipf">
<Filter>Blitz Files\Examples</Filter>
</None> </None>
</ItemGroup> </ItemGroup>
</Project> </Project>