繁体   English   中英

如何更改另一个进程的内存空间中的值

[英]How to change a value in memory space of another process

如果你能帮助我解决这个困境。 现在,我知道C \\ C ++,我知道asm,我知道dll注入,我知道虚拟内存寻址,但我无法弄清楚CheatEngine等软件如何设法在另一个进程中更改变量的值。

对于那些不知道的人,第三方作弊引擎工具可以扫描程序存储空间中的值,并识别具有给定值的变量的位置并进行更改。

我的问题是,他们是如何做到的?

给定一个地址,如果我要编写C代码,如何在不得到无效寻址错误的情况下更改属于另一个进程的该地址的值?

谢谢。

我很确定那些程序假装是调试器。 在Windows上,我将从DebugActiveProcess()开始并从那里开始。

哦,非常有用的ReadProcessMemory()函数(和WriteProcessMemory())。

在unix上:ptrace()

您无法使用标准C或C ++执行此操作 - 您必须使用特定于操作系统的功能。 所以你需要告诉我们你感兴趣的操作系统。

您可能也对Detours感兴趣:

软件包装用于绕过Win32和应用程序API。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM