创建远程线程
来源:互联网 发布:阿里云ca证书安装 编辑:程序博客网 时间:2024/05/16 23:02
#include <windows.h>
#include <tlhelp32.h>
char* pszlibfilename = "D://dllT.dll";
DWORD GetProcessIdFromName(LPCTSTR name)
{
PROCESSENTRY32 pe;
DWORD id = 0;
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
pe.dwSize = sizeof(PROCESSENTRY32);
if( !Process32First(hSnapshot,&pe) )
return 0;
do
{
pe.dwSize = sizeof(PROCESSENTRY32);
if( Process32Next(hSnapshot,&pe)==FALSE )
break;
if(strcmp(pe.szExeFile,name) == 0)
{
id = pe.th32ProcessID;
break;
}
} while(1);
CloseHandle(hSnapshot);
return id;
}
void main()
{
HINSTANCE hinstDLL=NULL;
DWORD dwremoteprocessid = GetProcessIdFromName("ipmsg.exe");
HANDLE h = OpenProcess(PROCESS_CREATE_THREAD | PROCESS_VM_OPERATION | PROCESS_VM_WRITE,
false, dwremoteprocessid );
if(h==NULL){
return;
}
int cb = (1 + strlen(pszlibfilename)) * sizeof(char);
char* pszlibfileremote = (char*)VirtualAllocEx( h, NULL, cb,MEM_COMMIT,PAGE_READWRITE);
BOOL b = WriteProcessMemory(h,(void *)pszlibfileremote,
(PVOID)pszlibfilename, cb, NULL);
if(b==FALSE){
return;
}
LPTHREAD_START_ROUTINE pfnstartaddr=(LPTHREAD_START_ROUTINE )
GetProcAddress(GetModuleHandle(TEXT("kernel32.dll")), "LoadLibraryA");
HANDLE thrH = CreateRemoteThread(h,NULL,0, pfnstartaddr,pszlibfileremote,0,NULL);
if(thrH ==NULL)
return;
FreeLibrary(hinstDLL);
CloseHandle(h);
CloseHandle(thrH);
}
- 创建远程线程
- CreateRemoteThread创建远程线程
- 创建远程线程
- 监视远程线程的创建
- 监视远程线程的创建
- 监视远程线程的创建
- 监视远程线程的创建
- 创建远程线程注入DLL
- 创建远程线程注入DLL
- 创建远程线程注入DLL
- 监视远程线程的创建
- 监视远程线程的创建[收藏]
- (转载)监视远程线程的创建
- 创建远程线程注入指定进程
- win7下面创建远程线程的解决方案
- 创建远程线程实现DLL注入
- 如何在远程线程中创建新的线程
- 代码注入(提升当前进程权限,创建远程线程)
- JUnit学习笔记7---mock objects进行孤立测试1
- HIV 整合酶
- PHP访问MySQL数据库
- 开放设计联盟介绍 ODA (Open Design Alliance) Introduction
- 从阿西莫夫机器人三大定律 谈起
- 创建远程线程
- The magic of method pointers
- 经典面试题目--在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?
- 2010年2月2日工作感悟
- WebBrowser控件使用详解
- Adding additional data members to forms
- 快乐想象识字法最新破解注册完美版
- 如何注册.DLL或.OCX文件
- 学做程序经理