简单DLL注入
简单的dll注入:DLL注入就是将一个DLL放进某个进程的地址空间里,让它成为那个进程的一部分。
dll注入的步骤:
- 附加目标进程
- 在目标进程中申请一个空间
- 把dll的路径写入到目标进程的内存空间
- 创建一个远程线程,让目标进程调用句柄
- 释放空间
注入dll的代码:

#include "stdlib.h" #include <tchar.h> #include <Windows.h> #include <direct.h> //注入dll函数的实现 bool Inject(DWORD dwId, //目标进程PID WCHAR *szPath)//DLL路径 { HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,//获取进程权限 FALSE,//表示所得的进程是否可以被继承 dwId);//被打开进程的PID //执行成功分配内存单元的首地址,不成功就为NULL LPVOID pRemoteAddress = VirtualAllocEx(hProcess,//目标句柄 NULL,//保留页面的内存地址,一般NULL自动分配 1,//预分配的内存大小,字节单位 MEM_COMMIT,//为特定的页面区域分配内存中或磁盘的页面文件中的物理存储 PAGE_READWRITE);//区域可被应用程序读写 DWORD dwWriteSize = 0; WriteProcessMemory(hProcess,//OpenProcess返回来的句柄 pRemoteAddress, //准备写入的内存地址 szPath, wcslen(szPath)*2+2, //要写入的字节数 &dwWriteSize); //返回值,返回写入的字节 HANDLE hThread = CreateRemoteThread(hProcess, //该远程线程属进程的句柄 NULL, //一个指向SECURITY_ATTRIBUTES结构体的指针,该结构体指定线程的安全属性 0, //线程栈初始化大小,如果为0,那么使用系统默认的大小 (LPTHREAD_START_ROUTINE)LoadLibrary, //在远程进程地址空间中,该线程的起始位置 pRemoteAddress, //传给线程函数的参数(刚才在内存中写入的东西) NULL, //控制线程创建标志,NULL表示线程正在运行 NULL);//指向接收线程标识符的变量指针,如果为NULL,则不返回标识符 //返回线程句柄 WaitForSingleObject(hThread, -1);//当句柄所指定的线程有信号的时候,才会返回 VirtualFreeEx(hProcess,//目标进程句柄 pRemoteAddress,//只想要释放的空间 1, //虚拟内存空间的字节数 MEM_COMMIT);//MEM_COMMIT仅标示内存空间不可用 return 0; } int _tmain(int argc, _TCHAR *argv[]) { wchar_t szPath[] = L"D:\\myhack.dll"; //要注入的dll DWORD dwId = 0; HWND hCalc = FindWindow(NULL,L"QQ"); if(hCalc == NULL) { MessageBox(NULL,L"获取窗口句柄失败!",L"提示",MB_OK); } DWORD dwPid = 0; DWORD dwRub = GetWindowThreadProcessId(hCalc, &dwPid); if(dwPid == NULL) { MessageBox(NULL,L"获取目标进程pid失败!",L"提示",MB_OK); } Inject(dwPid, szPath); //注入dll函数 //system("pause"); return 0; }
基本dll编写代码:

#include <Windows.h> BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, //调用DllMain时赋值为DLL_PROCESS_ATTACH LPVOID lpReservd) { switch(ul_reason_for_call) { case DLL_PROCESS_ATTACH: MessageBoxA(NULL,"hello word!","你好呀!",MB_OK|MB_TOPMOST); break; } return TRUE; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南