如何改变在另一个进程的存储器空间中的值 [英] How to change a value in memory space of another process
问题描述
如果你能帮助我这个两难我有。现在,我知道的C \\ C ++,我知道ASM,我知道dll注入,我是知道的虚拟内存寻址,但我只是无法弄清楚如何
像CheatEngine和其他软件,管理在另一个进程中改变一个变量的值。
If you could help me with this dilemma I have. Now, I know C \ C++, I know asm, I know about dll injection, I know about virtual memory addressing, but I just can't figure out how software like CheatEngine, and others, manage to change a variable's value in another process.
对于那些不知道是谁,第三方作弊引擎工具可以在程序的内存空间扫描值与给定值确定一个变量的位置和改变它。
For those who don't know, 3rd party cheat engine tools can scan for values in the memory space of a program and identify the location of a variable with a given value and change it.
我的问题是,他们是如何做到的?
My question is, how do they do it?
提供的地址,如果我是写C code,我怎么能在属于另一个进程没有得到一个无效地址错误地址更改值?
Given an address, if I were to write C code, how could I change the value at that address belonging to another process without getting an invalid addressing error?
感谢。
推荐答案
我相当肯定这些程序是pretending是调试器。在Windows中,我将开始与的DebugActiveProcess()并从那里
I'm fairly certain those programs are pretending to be debuggers. On Windows, I would start with DebugActiveProcess() and go from there.
哦,非常有用的寻找 ReadProcessMemory()函数 (和WriteProcessMemory的())。
Oh, and the very useful looking ReadProcessMemory() function (and WriteProcessMemory()).
这篇关于如何改变在另一个进程的存储器空间中的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!