远程线程注入 c语言实现
来源:互联网 发布:阿里云cdn速度提高多少 编辑:程序博客网 时间:2024/06/13 03:43
/************************************************************************//* 云守护email:542335496@qq.com *//************************************************************************/#include <windows.h>#include <stdio.h>#include <tlhelp32.h>/**函数:创建远程线程,使其加载DLL*参数:dwProcessId是要创建远程线程的进程ID* lpszDllName是DLL的名字*/BOOL LoadDll(DWORD dwProcessId,LPTSTR lpszDllName){HANDLEhProcess= NULL;HANDLEhThread= NULL;PSTRpszDllFile= NULL;// 打开进程hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwProcessId);if(hProcess == NULL)return FALSE;printf("打开进程 %d 成功!\n\n",dwProcessId);// 分配远程空间int cch = 1 + strlen(lpszDllName);pszDllFile = (PSTR)VirtualAllocEx(hProcess,NULL,cch,MEM_COMMIT,PAGE_READWRITE);if(pszDllFile == NULL)return FALSE;printf("分配远程空间成功!\n\n");// 把DLL的名字变量地址写入到远程空间中if((WriteProcessMemory(hProcess,(PVOID)pszDllFile,(PVOID)lpszDllName,cch,NULL)) == FALSE){return FALSE;}printf("写远程内存成功!\n\n");// 获取远程进程地址空间中LoadLibrary函数的地址PTHREAD_START_ROUTINE pfnThreadRtn = (PTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle("kernel32"),"LoadLibraryA");if(pfnThreadRtn == NULL)return FALSE;printf("获取LoadLibrary函数地址成功!\n\n");// 创建远程线程hThread = CreateRemoteThread(hProcess,NULL,0,pfnThreadRtn,(PVOID)pszDllFile,0,NULL);if(hThread == NULL)return FALSE;printf("创建远程线程成功!\n\n");// 等待远程线程执行结束,并非必要system("pause");WaitForSingleObject(hThread,INFINITE);VirtualFreeEx(hProcess,(PVOID)pszDllFile,0,MEM_RELEASE);CloseHandle(hThread);CloseHandle(hProcess);return TRUE;}void main(){char lpDllName[MAX_PATH] = TEXT("mydll.dll");// 枚举进程,得到指定进程IDPROCESSENTRY32 ProcessEntry = { 0 };HANDLE hProcessSnap;ProcessEntry.dwSize = sizeof(PROCESSENTRY32);hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);BOOL bRet = Process32First(hProcessSnap,&ProcessEntry);while(bRet){// 判断进程是否为 calc.exe,注入计算器进程if(strcmp("calc.exe",ProcessEntry.szExeFile) == 0){LoadDll(ProcessEntry.th32ProcessID,lpDllName);break;}bRet = Process32Next(hProcessSnap,&ProcessEntry);}}
//在自己写的mydll.dll做你想做的事情。。
- 远程线程注入 c语言实现
- vc实现无dll远程线程注入
- 用远程线程技术实现DLL注入
- 远程线程注入实现自删除
- 利用远程线程实现dll的注入
- 创建远程线程实现DLL注入
- 将注入进行到底--------远程线程实现 Dll 注入 汇编实现
- 线程的远程注入
- 远程线程注入代码
- 远程注入线程
- 远程线程注入
- 线程远程注入
- 线程的远程注入
- 线程远程注入
- 远程线程dll注入
- 线程的远程注入
- 线程的远程注入
- 远程线程DLL注入
- 深入浅出MFC---Frame8
- ubuntu安装ftp服务器
- JSON与JAVA的数据转换
- Linux 下 Redis 安装详解
- 同步/异步与阻塞/非阻塞的区别
- 远程线程注入 c语言实现
- vim 命令<待续>
- 开源框架之Bonita BPM的使用(一):bonita源代码下载
- Android之打开闪光灯关键代码
- linux logger 命令的使用
- 使用qq邮箱SMTP服务器来为你的网站实现用户注册的邮件回复功能
- mongodb client
- 开源框架之Bonita BPM的使用(二):bonita源代码编译
- HTML5与Flash相比有哪些好处?