0

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

注入代码, DLL代码

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

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

什么可能导致 CreateRemoteThread 失败?

4

2 回答 2

3

问题是 notepad.exe 是 64 位窗口中的 64 位进程,而我试图用 32 位进程注入。

于 2012-12-23T18:25:13.940 回答
0

我也想出了同样的问题。我的情况是这样的:

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

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

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

于 2015-12-28T08:39:57.867 回答