4
假设我想将一个DLL注入一个想要每隔250毫秒编辑地址A值的进程。我需要使用DllMain,对吧?问题是我不允许在DllMain中等待。所以我将不得不创建一个线程?或者是否没有绕过限制?我会如何去做这件事?DLL注入的最佳实践?
另外,使用DLL注入来编辑应用程序的内存使用EXE有什么好处吗?
另外,CreateThread中的堆栈大小应该是多少?如果它太小或太大会怎样?我如何知道我需要多少?
假设我想将一个DLL注入一个想要每隔250毫秒编辑地址A值的进程。我需要使用DllMain,对吧?问题是我不允许在DllMain中等待。所以我将不得不创建一个线程?或者是否没有绕过限制?我会如何去做这件事?DLL注入的最佳实践?
另外,使用DLL注入来编辑应用程序的内存使用EXE有什么好处吗?
另外,CreateThread中的堆栈大小应该是多少?如果它太小或太大会怎样?我如何知道我需要多少?
从您的描述看来,您已经知道如何让目标进程加载您的DLL。如果我的假设是正确的,那么答案很简单:从DLLMain创建一个线程并在线程中实现您的逻辑。只要你的代码遵守下面列出的规则,你应该没问题。
这个document描述了DLLMain能做什么和不能做什么以及为什么。
如记录,你永远不应该从内部的DllMain执行下列任务:
以下任务是安全的范围内的DllMain执行:
你的第二个问题对我来说不太清楚。要将代码注入到另一个进程中,您必须从某处(浏览器,exe或其他任何地方)启动,然后写入目标进程内存以加载您的DLL。