【问题标题】:CreateRemoteThread failing with ERROR_ACCESS_DENIEDCreateRemoteThread 失败并显示 ERROR_ACCESS_DENIED
【发布时间】:2012-12-20 20:51:22
【问题描述】:

我正在尝试学习 dll 注入的基础知识,因此我创建了一个非常简单的 hello-world 类型的 DLL 和一个基于我在网上找到的代码的注入器。我找不到任何开箱即用的东西,所以我不得不进行一些调整。

Injection Code, DLL Code

我在 64 位窗口上运行这些。我正在使用 Visual Studio 2010 进行编译。注入器是一个 win32 控制台应用程序,而 dll 也是 win32。我正在尝试将我的代码注入现有的记事本进程(也是 32 位)。所有这些都在 Windows 7 x64 上运行。

当我运行注入器时,它每次都在CreateRemoteThread 失败,GetLastError 返回 5(即ERROR_ACCESS_DENIED)。我已经确认 dll 路径是正确的(尽管将其更改为虚假路径会产生相同的行为),并且我已经确认该路径正在使用 Cheat Engine 以正确的地址写入记事本的内存。我遇到了困难,因为我不确定如何进一步调试问题。

什么可能导致 CreateRemoteThread 失败?

【问题讨论】:

    标签: windows-7-x64 dll-injection


    【解决方案1】:

    问题是notepad.exe是64位windows下的64位进程,我试图用32位进程注入。

    【讨论】:

    • 是的,我遇到了同样的问题。结果就像你说的,平台不匹配。为你 +1。
    【解决方案2】:

    我也遇到了同样的问题。我的情况是这样的:

    1. 我的系统是64位的,记事本也是64位的。

    2. 但是注入器是32位进程。

    我的解决办法是把系统目录下的64位记事本换成32位记事本。

    【讨论】:

    • 虽然这在技术上是可行的,但这真的不应该是一个严肃的答案,哈哈。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    • 2012-03-16
    • 2023-03-15
    • 1970-01-01
    • 2012-08-28
    • 2016-05-04
    • 1970-01-01
    相关资源
    最近更新 更多