看流星社区

 找回密码
 注册账号
查看: 2693|回复: 0

贴一个远程注入DLL源代码

[复制链接]

该用户从未签到

发表于 2011-3-26 10:26:47 | 显示全部楼层 |阅读模式
  1. HWND hRemoteWindow=::FindWindow(NULL,"LocalTest");  //LocalTest 是我自己测试的窗口
  2.                     
  3.      if (NULL==hRemoteWindow)
  4.     {
  5.          
  6.         AfxMessageBox("窗口未找到!");
  7.         return;
  8.          
  9.     }
  10.     DWORD processid;
  11.     ::GetWindowThreadProcessId(hRemoteWindow,&processid);
  12.     HANDLE hRemoteProcess =::OpenProcess(PROCESS_ALL_ACCESS,false,processid);
  13.     //取路径字符串首地址
  14.     char pBuf[MAX_PATH];  
  15.     GetCurrentDirectory(MAX_PATH,pBuf);
  16.     strcat(pBuf,"\");
  17.     strcat(pBuf,"Test.dll");   //测试DLL名字为Test.dll
  18.     char * pszLibFileName= pBuf;
  19.     int cch = 1 + lstrlenA(pszLibFileName);
  20.     int cb= cch * sizeof(char);
  21.     LPVOID    pszLibFileRemote = (char*) VirtualAllocEx( hRemoteProcess,  
  22.         NULL,  
  23.         cb,  
  24.         MEM_COMMIT
  25.         /*|MEM_RESERVE*/,  
  26.         PAGE_READWRITE/*_EXECUTE*/); 
  27.     ::WriteProcessMemory(   hRemoteProcess,  
  28.         pszLibFileRemote,  
  29.         (PVOID) pszLibFileName,  
  30.         cb,  
  31.         NULL);
  32.                       PTHREAD_START_ROUTINE pfnThreadRtn = (PTHREAD_START_ROUTINE)
  33.                       ::GetProcAddress(::GetModuleHandle(TEXT("Kernel32")), "LoadLibraryA");
  34.     HANDLE hThread = ::CreateRemoteThread(hRemoteProcess,NULL,0,
  35.         pfnThreadRtn, pszLibFileRemote,0,NULL);
  36.     WaitForSingleObject(hThread, INFINITE);
  37.     CloseHandle(hThread);
  38.     VirtualFreeEx(hRemoteProcess, 0, cb, NULL);
  39.     CloseHandle(hRemoteProcess);[/post]
复制代码
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-5-4 14:51

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表