载入中,请稍候……

远程进程DLL注入

Admin 于 2008-10-26 17:44:12 发表C/C++

订阅: http://www.miniboke.com/Feed/Article_83.aspx
引用: http://www.miniboke.com/Trackback/PvqnmYcTMLjrEzqeaVkW.aspx (UTF-8)
使用临时表与游标处理XML文档 < 远程进程DLL注入 > 公农历转换类[C++]

  1. CWnd* wnd; 
  2. wnd = FindWindow("SciCalc","计算器"); 
  3.  
  4. if(wnd==NULL) 
  5.     return
  6.  
  7. HWND hWnd =  wnd->m_hWnd; 
  8. DWORD pId=0;//进程ID 
  9. GetWindowThreadProcessId(hWnd,&pId); 
  10. //获取进程handle,以前做得进程防护开发包就是替换了这个函数,所以不一定保险 
  11. HANDLE hP = OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM_OPERATION|PROCESS_VM_WRITE,NULL,pId); 
  12.  
  13. if(hP==NULL) 
  14.     return
  15.  
  16. char* dllName = "hello.dll"
  17. DWORD size = (DWORD)strlen(dllName)+1; 
  18. //在远程进程空间内申请空间,然后把dll名称字符串放进去 
  19. LPVOID lpBuf = VirtualAllocEx( hP, NULL, size, MEM_COMMIT, PAGE_READWRITE ); 
  20. if(lpBuf==NULL) 
  21.     CloseHandle(hP); 
  22.     return
  23.  
  24. DWORD writeSize=0; 
  25. if (WriteProcessMemory(hP,lpBuf,(LPVOID)dllName,size,&writeSize ) ) 
  26.     if ( writeSize != size ) 
  27.     { 
  28.         VirtualFreeEx( hP,lpBuf,writeSize,MEM_DECOMMIT); 
  29.         CloseHandle(hP); 
  30.         return
  31.     } 
  32. else 
  33.     CloseHandle(hP); 
  34.     return ; 
  35.  
  36. DWORD dwID; 
  37. LPVOID pFunc = LoadLibraryA; 
  38. HANDLE hThread = CreateRemoteThread(hP,NULL,0,(LPTHREAD_START_ROUTINE)pFunc, lpBuf, 0, &dwID ); 
  39.  
  40. WaitForSingleObject(hThread, INFINITE );//等待执行完毕 
  41. Sleep(6000); 
  42. // clean up 
  43. VirtualFreeEx( hP,lpBuf,size, MEM_DECOMMIT ); 
  44. CloseHandle( hThread ); 
  45. CloseHandle( hP); 
被阅801次, 0投一票
  • 看完了要说点啥么?
  • 昵称 (不填说不了话)
  • 信箱地址 (不会被公开,但是不填也说不了话)
  • 网址 (这个不填也成)

Powered by MiniBoke v2.0.0.8 Build 0828

Copyright © 2008 迷你博客. All rights reserved.

粤ICP备07500939号