将 dll 挂接到 exe

Posted

技术标签:

【中文标题】将 dll 挂接到 exe【英文标题】:Hook dll into exe 【发布时间】:2013-09-10 11:04:43 【问题描述】:

我有我的 C# dll 文件,我想将这个 dll 挂接到一个 exe 文件(exe 不是我的和 C++)

例如,我的 dll 中有代码,例如

MessageBox.Show("Active");

我想在双击 exe 后显示此消息,

抱歉我的英语不好。

【问题讨论】:

简答:你不能。 C# 程序需要大量运行时支持。您不仅需要注入 C# DLL,还必须注入 CLR 和抖动。没有任何对内置的支持,该过程必须合作。不会的。 如果我在 C++ dll 中调用 C# 代码会怎样?这能解决我的问题吗? 是的,如果你制作一个小型的原生 DLL 来包装 C#,那么你就很好。大概你想在 PE 导入表中添加一些东西来让你的 DLL 进入进程? 是的,将PE导入表DLL到进程中,我没有C++知识,我能找到任何包含C#的C++项目吗? 【参考方案1】:

在基本层面上,您的要求并不简单 - 如果您无法编辑和重新编译 .exe,就无法轻松地让 .exe 运行您的代码。

但是,如果您只想知道流程何时开始,您可以查看Monitor process start in the system。

【讨论】:

不是这样。例如,您可以安装一个全局挂钩。或者你可以检测进程启动并注入CreateRemoteThread 为清晰起见进行了编辑。我的回答确实有挂钩技术的链接,但 CreateRemoteThread 示例会很有趣! C++ dll 使用 LordPE 之类的工具很容易做到这一点,为什么不使用 C# 呢?其他的我会尝试在 C++ Dll 下制作 C# 代码,只有看方法

以上是关于将 dll 挂接到 exe的主要内容,如果未能解决你的问题,请参考以下文章

如何把dll嵌入到exe文件中

dll与exe之间怎么共享数据

电脑.exe文件、.dll文件是啥文件?

是否可以通过 MS 绕道注入多个 Dll?

如何将cs文件编译成exe和dll,先谢! C#

如何将 Log Analytics / Azure Monitor 挂接到角色分配中?