【问题标题】:How do I accessing a protected process's .exe address?如何访问受保护进程的 .exe 地址?
【发布时间】:2020-06-11 20:32:36
【问题描述】:

我正在为视频游戏编写反作弊软件。使用 CreateToolhelp32Snapshot 我可以获得打开进程的列表。从那里我想找到每个进程的地址并通读它的 .exe 文件。虽然这适用于大多数进程,但受保护的进程拒绝访问 OpenProcess 或 GetModuleFileNameEx 等方法。假设我的应用程序以管理员身份运行,是否有办法找到受保护的进程地址?

【问题讨论】:

  • 您需要打开/使用受保护的进程吗?我认为任何作弊都不会在受保护的进程中运行
  • 我认为 RbMm 是正确的。 PP 不会是作弊软件。为了让您的反作弊软件打开和读取 PP,它需要在 PP 的相同或更低的签名级别上进行签名。
  • 不,在这种情况下,第三方程序是 pp。这个特定的游戏有很多,我的程序的想法是通读 .exe 以准确识别那些已知程序。我可以获得进程列表并以最低权限读取任何进程(如果我有它的地址)。问题是如何找到一个pp地址?
  • 如果一个程序成功地将自己注册为一个受保护的进程,它就拥有攻击你的反作弊软件所需的一切权限。
  • 怎么样?地址是我完成程序所需的唯一信息。有没有办法从 Windows 中检索该信息?

标签: c++ winapi directory openprocess


【解决方案1】:

作弊引擎不是Protected Process,99.9% 的作弊也不是。您可以在 Process Hacker 中检查 exe 的证书,您会看到它只有代码签名,没有受保护的进程名称。

如果您无法访问作弊者的内存,那是因为他们正在使用内核驱动程序对其进行保护。如果你想接触这个进程,你还必须在内核中运行。如果他们以某种方式创建了 PP,那么您需要在内核中。

他们也可以使用许多用户模式方法来保护自己,他们可以简单地将 OpenProcess() 挂接到每个正在运行的进程中,包括您的进程,并在您尝试打开他们的进程时返回 0。

您需要获取作弊的副本并对其进行逆向工程以弄清楚它是如何保护自己的,然后您可以开始删除或绕过这些保护。

【讨论】:

    猜你喜欢
    • 2014-05-28
    • 2019-01-01
    • 2013-02-09
    • 2015-04-21
    • 2016-03-26
    • 2013-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多