【问题标题】:C++ : Dll injection. Why CreateRemoteThread() fail on Notepad?C++:DLL注入。为什么 CreateRemoteThread() 在记事本上失败?
【发布时间】:2017-04-28 05:38:40
【问题描述】:

我对 DLL 注入非常陌生,出于好奇这样做,因为我想在游戏中创建一个覆盖,而不修改他的源代码。

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

我遵循了这个教程(法语,小心): http://xevia.webege.com/old/atoray/2010/06180.php

我做了什么:

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

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

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

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

还有许多其他人,无法真正指出哪里出了问题。所以我召唤了神。

1) 会不会是访问权限问题?

2) 会不会是我的注射方法,太经典了?我应该尝试哪一个?

3) [主题问题] 为什么我的 dll 没有通过 CreateRemoteThread 注入到记事本中?

感谢您的宝贵时间。

[对任何语法/公式编辑开放]

【问题讨论】:

  • 你是用了dll的绝对路径还是只用了dll的名字?
  • 我尝试了绝对路径和相对路径。他们都在我自己的“target.exe”上工作,但在“notepad++.exe”上都没有。还检查了 x64/x86 版本。

标签: c++ dll-injection createremotethread


【解决方案1】:

有效!

我需要改变什么:

  • 内置 x86 以匹配目标应用
  • 使用绝对路径

我都做了,但是在 x86/x64 之间切换时忘记更改我的绝对路径...

感谢 Adrian Roman,他让我走上了正确的道路。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 2012-03-16
    相关资源
    最近更新 更多