程序是否可以检测到另一个程序正在直接读取其内存(例如使用 ReadProcessMemory)?

程序是否可以检测到另一个程序正在直接读取其内存(例如使用 ReadProcessMemory)?

当我在 Github 公共仓库中浏览时,我偶然发现了一个程序(A)根据从另一个程序的内存中读取的内容在屏幕上显示信息() 是一款在线电脑游戏。

声称readmeA绝对没有写信,但也警告用户有些人已被禁止因为A

现在,很明显一个程序可以检测另一个程序是否正在更改其进程的内存......但检测一个程序是否正在读取它,例如通过使用读取进程内存从 Windows API 来看,这怎么可能呢?据我所知,该过程根本不知道系统上发生了什么,除非你有一些具有高级管理员权限的讨厌的“反作弊”软件,这些软件会监视整个系统,同时减慢系统速度。

有人能帮我解决这个问题吗?

提前致谢。

答案1

不。

问题在于,这个“readme”文件是为了分发“A”而创建的。当“A”分发了足够长的时间后,“B”意识到了“A”的存在,因此它开始专门寻找“A”。

如果“B”不知道“A”的存在,它将很难检测到“A”,甚至很难将其与“C”,“D”,“E”和“F”区分开来,并且几乎不可能理解“A”在做什么并据此采取行动。

从技术上讲,“A”可以在许多其他级别上运行,并且可以通过多种方式读取“B”内存,而不是简单的 API 调用。

如果有的话,“A”可以冻结“B”,阅读有趣的内容,然后杀死“B”,阻止“B”采取任何行动。(这就是为什么“B”通常由“X”、“Y”和“Z”同时守护)

“B” 可以使“A”更加困难,但是考虑到两者投入的努力相同,它根本无法阻止或检测到它。

相关内容