【发布时间】:2015-05-21 18:54:26
【问题描述】:
所以我最近一直在学习C++,这部分我看不懂,我看到有人在他注入的dll文件中使用了这个函数:
void WriteToMemory(DWORD AddressToWrite, char* ValueToWrite, int byteNum){
unsigned long oldProtection;
VirtualProtect((LPVOID)AddressToWrite, byteNum, PAGE_EXECUTE_READWRITE, &oldProtection);memcpy((LPVOID)AddressToWrite, ValueToWrite, byteNum);
VirtualProtect((LPVOID)AddressToWrite, byteNum, oldProtection, NULL);}
但是当我用普通脚本尝试这个功能时,我的程序一直在崩溃,那么为什么需要先注入它,注入 DLL 文件有什么意义呢?
【问题讨论】:
-
这与 C++ 无关,真的。 DLL 注入需要对 Windows 进程和内存体系结构有很好的了解。也许另一个项目会更好地开始,比如写一个记事本克隆?
-
没有明显的原因导致该代码崩溃,您可能只是调用不正确。另一方面,很难想象你一开始会用它做什么。
-
好吧,我用它来改变游戏的 Opcodes 值,首先我尝试使用 WriteProcessMemory() 函数,但它不起作用,然后我看到这个家伙使用 memcpy() 并且它适用于他,但他必须先注入一个 DLL 文件。
标签: c++ windows memory dll inject