用createremotethread方法将dll注入其他进程(explorer.exe)未遂,请指教。(0分)

  • 主题发起人 主题发起人 我爱戴妃
  • 开始时间 开始时间

我爱戴妃

Unregistered / Unconfirmed
GUEST, unregistred user!
在网上看见一个例子说可以用createremotethread方法在其他进程里创建一个线程。<br>我用delphi编了一个dll,然后用vc做(网上的例子是用vc写的但不全)。可是不能成功。<br>不知那里有问题,哪位大虾能帮小弟将这段vc翻成delphi代码。最好能有现成的示例。<br><br>pszLibFileName= LPCWSTR("Spy.dll");<br>hRemoteProcess=OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM_OPERATION|PROCESS_VM_WRITE,FALSE,::GetCurrentProcessId());<br>//计算DLL路径名需要的内存空间<br>int cb=(1+lstrlenW(pszLibFileName))*sizeof(WCHAR);<br>//使用VirtualAllocEx函数在远程进程的内存地址空间分配DLL文件名缓冲区<br>pszLibFileRemote=(PWSTR)VirtualAllocEx(hRemoteProcess,NULL,cb,MEM_COMMIT,PAGE_READWRITE);<br>//使用WriteProcessMemory函数将DLL的路径名复制到远程进程的内存空间<br>bReturnCode=WriteProcessMemory(hRemoteProcess, (void *)pszLibFileRemote,(PVOID)pszLibFileName,cb,NULL);<br>//计算LoadLibraryW的入口地址<br>PTHREAD_START_ROUTINE pfnStartAddr=(PTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle(TEXT("Kernel32")),"LoadLibraryW");<br>//启动远程线程LoadLibraryW,通过远程线程调用用户的DLL文件<br>hRemoteThread=CreateRemoteThread(hRemoteProcess,NULL,0,pfnStartAddr,pszLibFileRemote,0,NULL);<br><br>
 
delphi代码 http://www.delphibbs.com/delphibbs/dispq.asp?lid=569786
 
多谢Jedei大哥遂我心愿!!
 
后退
顶部