Loading... 1. 使用Openprocess 获取目标进程句柄 2. 在目标进程中申请一块空间 vritualAllocEx 1. 将DLL路径写入空间 3. 在目标进程创建线程 4. 释放空间 和 用到的句柄 ``` // 远程注入.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <iostream> #include <Windows.h> #define PATH L"C:\\Users\\Administrator\\source\\repos\\PE\\pe1\\Debug\\Dll1.dll" int main() { //如果远程注入其他程序 注意。需要在远程程序中申请空间 然后放入 自己的路径字符串用作寻找dll的路径 (远程调用的时候送入的是地址 //PS: 因为回调函数 和 LoadLibrary 参数和回调函数类型(字节相似)所以可以直接强转调用 HANDLE hpro = OpenProcess(PROCESS_ALL_ACCESS, FALSE, 26064); //在目标进程申请空间 int nlenth = wcslen(PATH)*2+2; //这个内存是在 目标exe文件中的空间 LPVOID pAddress = VirtualAllocEx(hpro, 0, nlenth , MEM_COMMIT, PAGE_READWRITE); DWORD Resourt; WriteProcessMemory(hpro, pAddress, PATH, nlenth, &Resourt); //注入远程 LoadLibrary 加载指定dll文件到进程中执行 pAddress为远程申请的内存空间地址可以应用 HANDLE hthre = CreateRemoteThread(hpro, 0,0, (LPTHREAD_START_ROUTINE)LoadLibrary, (LPVOID)pAddress, 0, 0); WaitForSingleObject(hthre, -1); VirtualFreeEx(hthre, pAddress, nlenth * 2 + 2,MEM_RELEASE); CloseHandle(hthre); CloseHandle(hpro); return 0; } ``` 最后修改:2021 年 01 月 22 日 © 允许规范转载 赞 0 如果觉得我的文章对你有用,请随意赞赏