C+中的内存修改+; 我试图学会在C++中修改游戏,而不是游戏,只是它的内存,它用来弹药,所以有人指出我的书 < p>有足够的程序,可以让你修改运行程序的内存。他们经常被用来作弊。但在网络游戏中使用这些工具时要小心,因为大多数作弊行为都会被发现,而且你会在没有警告的情况下被禁止

C+中的内存修改+; 我试图学会在C++中修改游戏,而不是游戏,只是它的内存,它用来弹药,所以有人指出我的书 < p>有足够的程序,可以让你修改运行程序的内存。他们经常被用来作弊。但在网络游戏中使用这些工具时要小心,因为大多数作弊行为都会被发现,而且你会在没有警告的情况下被禁止,c++,memory,C++,Memory,如果您想自己创建它们,只需看看描述WindowsAPI的书籍。您将在那里找到足够的信息。可以使用windows上的挂钩访问进程的内存空间。注入代码: 我认为最好的方法是修改exe,将代码注入其中一个加载的模块 相关短故事: P> > 10多年前,我记得用一个简单的C++程序成功地修改了我在Windows纸牌上的分数。我通过在某个基址上启动int*指针并遍历内存地址(使用try/catch捕捉异常)来实现这一点 我会在其中一个指针变量中查找我当前的分数,并用一个新的整数值替换它。我只是确定我当前

如果您想自己创建它们,只需看看描述WindowsAPI的书籍。您将在那里找到足够的信息。

可以使用windows上的挂钩访问进程的内存空间。

注入代码:

我认为最好的方法是修改exe,将代码注入其中一个加载的模块

相关短故事:

<> P> > 10多年前,我记得用一个简单的C++程序成功地修改了我在Windows纸牌上的分数。我通过在某个基址上启动int*指针并遍历内存地址(使用try/catch捕捉异常)来实现这一点

我会在其中一个指针变量中查找我当前的分数,并用一个新的整数值替换它。我只是确定我当前的分数是一些模糊的值,不会包含在许多内存地址中

一旦我找到了一组与我的分数匹配的内存地址,我就会在纸牌中手动更改我的分数,并且只查看在上一次迭代中找到的内存地址。通常,这将缩小到包含分数的单个内存地址。在这一点上,我得到了神奇的简单代码行*pCode=我的期望分数


尽管有了新的内存安全模型,这可能不再可能了。但是这个方法在10-20行C++程序中运行得很好,只需要一分钟就可以修改我的分数。p> 操作远程进程内存最方便的方法是在该程序的上下文中创建线程。这通常是通过强制将dll注入目标进程来实现的。一旦在目标应用程序中执行了代码,就可以自由地使用标准内存例程。e、 g(memcpy、malloc、memset)

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

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

你已经触及了一个非常广泛的黑客话题的表面,那里有丰富的知识

首先是一些互联网资源:

GameFacion.net-一个致力于游戏重建(逆向工程)和黑客攻击的社区

-关于各种DLL注入方法的优秀教程

org-反向代码工程社区

我也可以向你推荐一本书-

您应该研究的Windows API例程(msdn.com):


有一个叫Cheat-O-Matic的程序可以帮你做到这一点:)我认为这是不道德的,除非你自己写了这个游戏。有了H4cKl0rD这样的名字,这对你肯定不会有问题吧?:)@保罗·迪克森,哈哈,我也这么想。。。如果我可以作弊的话,也就是说:PValve的反作弊曾经使用一些启发式方法来检查mod是否可以用于作弊,但在非作弊mod导致禁令后,他们现在只使用已知的作弊。所以如果他写下自己的,并把它留给自己,他可能会很安全。
CreateRemoteThread
LoadLibraryA
VirtualAllocEx
VirtualProtectEx
WriteProcessMemory
ReadProcessMemory
CreateToolhelp32Snapshot
Process32First
Process32Next