将 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的主要内容,如果未能解决你的问题,请参考以下文章