回答不易,求求您采纳点赞哦
DLL 注入是一种技术,它允许你在运行时加载一个 DLL 到另一个进程中。在进程中注入 DLL 后,DLL 就成为了进程的一部分,但是它在访问和修改进程内存时受到某些限制。
在 Windows 中,进程的内存可能被标记为只读或只执行。当你尝试在 DLL 中修改这些区域的内存时,可能会触发异常,因为内存不可写。
解决这个问题的一种方法是使用 VirtualProtect 函数来修改内存属性。 VirtualProtect 函数可以改变一个内存区域的保护属性,使其可读,可写或可执行。但是有些进程可能有一些保护,因此 VirtualProtect 函数返回0.
若是这样的话,你可以尝试使用更高级的技术,如内存修改技术来解决这个问题,但是这些技术可能更加复杂,也可能会导致不稳定的结果。
还有一种方法就是直接使用调试器来修改进程的内存。这种方法需要使用调试器来附加到进程中,然后使用调试器的内存修改功能来修改进程的内存。这种方法可能会更加稳定,但是也可能会导致不稳定的结果。
总而言之, 这种问题可能会因进程的保护级别和 DLL 注入的方式而有所不同,需要根据实际情况来解决。
你可以使用VirtualProtect函数来改变某个内存区域的保护属性,但是这需要一定的权限,如果你的dll注入的进程没有足够的权限,就会返回0。所以,即使你的dll加入到了进程之中,也不能修改进程的内存属性,除非你有足够的权限。