C ++:Dll注入。为什么CreateRemoteThread()在记事本上失败?

时间:2016-12-13 08:16:42

标签: c++ dll-injection createremotethread

我对DLL注入很陌生,通过好奇心来做这件事,因为我想在游戏中创建一个叠加,而不需要修改他的源代码。

但是现在,我仍然坚持使用基本的DLL注入:使用CreateRemoteThread()的那个。

我按照本教程(法语,小心): http://xevia.webege.com/old/atoray/2010/06180.php

我做了什么:

  • 注射在基本程序Target.exe上工作正常(参见Xevia的链接)
  • 我可以看到由EnumProcessModules()
  • 进程加载的DLL
  • 在Target.exe中注入后,我可以看到我的" Hook.dll"已被添加。
  • [edit]检查了exe版本:记事本和我的注入器都是32位

但是当我在其他进程中注入dll时,即使CreateRemoteThread()没有返回NULL,它似乎也不起作用。

所以我查了很多帖子,包括这个帖子:How do I prevent DLL injection

这一个:C++ - CreateRemoteThread DLL Injection [Windows 7](试过绝对路径,没有成功)

还有很多其他人,没有能够真正指出错误。所以我援引了太神。

1)这可能是访问权限问题吗?

2)这可能是我的注射方法,太经典了吗?我应该尝试哪一个?

3)[主题提问]为什么我的dll没有用CreateRemoteThread注入记事本?

感谢您的时间。

[对任何语法/配方编辑开放]

1 个答案:

答案 0 :(得分:0)

有效!

我需要改变的地方:

  • 在x86中构建以匹配目标应用
  • 使用绝对路径

我做了两个但是在x86 / x64切换时忘了改变我的绝对路径......

感谢 Adrian Roman ,他让我以正确的方式。

enter image description here