Loading... 1. <span style="color:#DC143C">注意必须同样为32位程序,DLL可以自己写</span> 2. 使用Openprocess 获取目标进程句柄 3. 在目标进程中申请一块空间 vritualAllocEx 1. 将DLL路径写入空间 4. 在目标进程创建线程 5. 释放空间 和 用到的句柄 ``` // 远程注入.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; //写入进程内存 pAddress为远程申请的内存空间地址可以应用 WriteProcessMemory(hpro, pAddress, PATH, nlenth, &Resourt); //注入远程 LoadLibrary 加载指定dll文件到进程中执行 //创建线程 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 年 03 月 01 日 © 允许规范转载 赞 0 如果觉得我的文章对你有用,请随意赞赏