黑基Web安全攻防班
安基网 首页 IT技术 安全攻防 查看内容

最基础的插入进程代码

2009-10-22 10:01| 投稿: security


免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!

摘要: //获得进程句柄 HWND hwnd=::FindWindow(NULL,"计算器"); if(!hwnd) {  AfxMessageBox("请打...
//获得进程句柄 HWND hwnd=::FindWindow(NULL,"计算器"); if(!hwnd) {  AfxMessageBox("请打开计算器");  return; }  //取得进程句柄和进程ID DWORD Process,ProcessId; Process=::GetWindowThreadProcessId(hwnd,&ProcessId);  //利用进程句柄来打开进程 HANDLE hProcess=::OpenProcess(PROCESS_CREATE_THREAD |  PROCESS_VM_READ |PROCESS_VM_OPERATION  | PROCESS_VM_WRITE,false,ProcessId);  CString m_DllName="C:\\Documents and Settings\\User\\桌面\\CreateRemoteThread\\GameHook1\\Debug\\GameHook1.dll"; char* m_Rometstr;  //在计算器进程中为DLL的名字申请内存空间,返回值为申请到的空间基址 m_Rometstr=(char*)::VirtualAllocEx(hProcess,NULL,m_DllName.GetLength()+1,MEM_COMMIT,PAGE_READWRITE);  //写入DLL名字 ::WriteProcessMemory(hProcess,m_Rometstr,m_DllName.GetBuffer(0),m_DllName.GetLength()+1,NULL);   LPTHREAD_START_ROUTINE pfn_LoadLib; HANDLE hThread;  //取得LoadLibraryA的入口地址 pfn_LoadLib=(LPTHREAD_START_ROUTINE)::GetProcAddress(::GetModuleHandle("Kernel32"),"LoadLibraryA");  //建立新线程,并令入口点为LoadLibraryA,附加参数为DLL名字,令DLL启动 hThread=::CreateRemoteThread(hProcess,NULL,NULL,pfn_LoadLib,m_Rometstr,0,NULL);  WaitForSingleObject(hThread,INFINITE); VirtualFreeEx(hProcess,m_Rometstr,0,MEM_RELEASE); /////如果进程结束,则关闭进程头和线程头;    WaitForSingleObject( hProcess, INFINITE );     CloseHandle( hProcess );    CloseHandle( hThread );  //VirtualFreeEx(hProcess,m_Rometstr,0,MEM_RELEASE); DWORD de=::GetLastError();

小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!



免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

最新

返回顶部