c++ - C++中的内存修改

标签 c++ memory

我正在尝试学习用 C++ 修改游戏,而不是游戏,只是学习它用来获取弹药的内存,所以有人可以指点我看书吗

最佳答案

操作远程进程内存的最方便的方法是在该程序的上下文中创建一个线程。这通常是通过在目标进程中强行注入(inject)一个dll来实现的。一旦您在目标应用程序中执行了代码,您就可以自由使用标准内存例程。例如(memcpy、malloc、memset)。

我现在可以告诉你,最方便、最容易实现的方法是 CreateRemoteThread/LoadLibrary 技巧。

正如其他人所提到的,可以通过扫描内存中的已知值来执行简单的黑客攻击。但是,如果您想执行更高级的操作,则需要研究调试和死列表分析。 (工具:分别为ollydbg和IDA pro)。

您已经触及了一个非常广泛的黑客主题的皮毛,那里有丰富的知识..

首先是一些互联网资源:

gamedeception.net - 致力于游戏 RE(逆向工程)和黑客攻击的社区。

http://www.edgeofnowhere.cc/viewtopic.php?p=2483118 - 关于各种 DLL 注入(inject)方法的优秀教程。

Openrce.org - 逆向代码工程社区。

我还可以向您推荐一本书 - 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/

相关文章:

c++ - 传递 Lambda 时,Visual Studio 2017 中的什么扩展消除了 "bool"与 "std::function"的歧义?

c++ - #endif GUARD_H 是好的做法吗?

c++ - 用 C++ 编写的程序如何工作?

php - 测量最大 PHP 内存使用量

android - 为什么 Android ART 有时不会在离开作用域时对局部变量进行 GC?

c++ - 删除 TXMLDocument 对象 Embarcadero

c++ - STL:从已作为第二对添加到映射的结构中访问数据

c++ - 虚函数是否不太可能导致堆栈溢出?

c - 内存错误(我猜)- C - 结构中的指针(用作数组)

c - 关于从 C 语言转换为汇编语言的字长按 4 缩放的问题