【问题标题】:C++ hook process and show statusC++钩子进程和显示状态
【发布时间】:2010-05-24 19:36:31
【问题描述】:

好的,所以我正在慢慢学习 C++。我熟悉所有控制台语法和一切,但现在我正在转向 Windows 编程。现在我想要做的是创建一个我注入到进程中的 DLL,所以它被钩住了。我想要 C++ 应用程序做的就是在其中包含文本,如果它成功注入,则显示“Hooked”,以及如果发生错误,则出错。或者即使我可以在没有 DLL 的情况下执行此操作,只需打开一个可执行文件,当我尝试挂钩的某个进程打开时,状态就会更改为“已挂钩”。另外,我有一个 safaribooksonline.com 帐户,所以如果您推荐任何好的读物,请将其写下来。谢谢

【问题讨论】:

    标签: c++ dll hook


    【解决方案1】:

    我想你可能会向后看。在 C/C++ 中,应用程序“拉入”DLL,而不是将 DLL “注入”到应用程序中。通常对于插件/挂钩,有一些机制可以通知应用程序 DLL 的可用性(通常只是它存在于特定目录中),并且使用配置文件或其他一些逻辑来指示应用程序显式加载库,提取函数或两个,并调用它们。

    对于 Windows 编程,我建议搜索 LoadLibrary() API 调用的示例。您可能会找到a tutorial 或两个关于如何操作的信息。

    【讨论】:

      【解决方案2】:

      如果“挂钩”是指“让我的 DLL 在该进程的地址空间中运行”,则需要 CreateRemoteThread()。这是相当先进且难以调试的,因为您的错误会使其他程序崩溃。顺便说一句,这就是许多恶意软件的工作原理。

      如果您的意思是“让我的 DLL 在其他进程中收到活动通知”,您需要SetWindowsHookEx()

      【讨论】:

        【解决方案3】:

        听起来您想在应用程序启动后立即注入?您可以通过 Microsoft 的 Detours DetourCreateProcessWithDll() 做到这一点。示例here

        【讨论】:

          猜你喜欢
          • 2020-04-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-10-26
          • 1970-01-01
          • 2023-03-26
          • 2020-05-23
          • 2020-06-24
          相关资源
          最近更新 更多