[英]Best Practices for DLL Injection?
假设我想将一个 DLL 注入一个想要每 250 毫秒编辑一次地址 A 值的进程。 我需要使用 DllMain,对吗? 问题是我不允许在 DllMain 内等待。 所以我必须创建一个线程? 还是没有绕过限制? 我该怎么做呢?
另外,与使用 EXE 相比,使用 DLL 注入来编辑应用程序的内存有什么好处吗?
另外,CreateThread 中的堆栈大小应该是多少? 如果它太小或太大怎么办? 我怎么知道我需要多少?
根据您的描述,您似乎已经知道如何让目标进程加载您的 DLL。 如果我的假设是正确的,那么答案很简单:从 DLLMain 创建一个线程并在该线程中实现您的逻辑。 只要您的代码遵守下面概述的规则,您就应该没问题。
本 文档描述了在 DLLMain 中可以做什么和不可以做什么以及为什么。
如文档所述,您不应在 DllMain 中执行以下任务:
在 DllMain 中执行以下任务是安全的:
你的第二个问题对我来说不太清楚。 要将代码注入另一个进程,您必须从某个地方(浏览器、exe 等)开始,然后写入目标进程内存以使其加载您的 DLL。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.