我正在尝试学习用 C++ 修改游戏,而不是游戏,只是学习它用来获取弹药的内存,所以有人可以指点我看书吗
最佳答案
操作远程进程内存的最方便的方法是在该程序的上下文中创建一个线程。这通常是通过在目标进程中强行注入(inject)一个dll来实现的。一旦您在目标应用程序中执行了代码,您就可以自由使用标准内存例程。例如(memcpy、malloc、memset)。
我现在可以告诉你,最方便、最容易实现的方法是 CreateRemoteThread/LoadLibrary 技巧。
正如其他人所提到的,可以通过扫描内存中的已知值来执行简单的黑客攻击。但是,如果您想执行更高级的操作,则需要研究调试和死列表分析。 (工具:分别为ollydbg和IDA pro)。
您已经触及了一个非常广泛的黑客主题的皮毛,那里有丰富的知识..
首先是一些互联网资源:
gamedeception.net - 致力于游戏 RE(逆向工程)和黑客攻击的社区。p>
http://www.edgeofnowhere.cc/viewtopic.php?p=2483118 - 关于各种 DLL 注入(inject)方法的优秀教程。
Openrce.org - 逆向代码工程社区。p>
我还可以向您推荐一本书 - http://www.exploitingonlinegames.com/
您应该研究的 Windows API 例程 (msdn.com):
CreateRemoteThread
LoadLibraryA
VirtualAllocEx
VirtualProtectEx
WriteProcessMemory
ReadProcessMemory
CreateToolhelp32Snapshot
Process32First
Process32Next
关于c++ - C++中的内存修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/598584/