获取指定进程模块handle 然后FreeLibrary掉
2009-02-02 22:39
351 查看
转网上李马大哥的,GetExitCodeThread原来可以这么用,哈
用这个方法可以卸载一个进程中的DLL模块,当然包括那些非病毒体的DLL。所以,这段代码还是谨慎使用为好。
1. // 使目标进程调用GetModuleHandle,获得DLL在目标进程中的句柄 2. DWORD dwHandle, dwID; 3. LPVOID pFunc = GetModuleHandleA; 4. HANDLE hThread = CreateRemoteThread( hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)pFunc, lpBuf, 0, &dwID ); 5. // 等待GetModuleHandle运行完毕 6. WaitForSingleObject( hThread, INFINITE ); 7. // 获得GetModuleHandle的返回值 8. GetExitCodeThread( hThread, &dwHandle ); 9. // 释放目标进程中申请的空间 10. VirtualFreeEx( hProcess, lpBuf, dwSize, MEM_DECOMMIT ); 11. CloseHandle( hThread ); 12. // 使目标进程调用FreeLibrary,卸载DLL 13. pFunc = FreeLibrary; 14. hThread = CreateRemoteThread( hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)pFunc, (LPVOID)dwHandle, 0, &dwID ); 15. // 等待FreeLibrary卸载完毕 16. WaitForSingleObject( hThread, INFINITE ); 17. CloseHandle( hThread ); 18. CloseHandle( hProcess );
用这个方法可以卸载一个进程中的DLL模块,当然包括那些非病毒体的DLL。所以,这段代码还是谨慎使用为好。
相关文章推荐
- 根据进程结合GetModuleHandle获取当前主模块句柄
- 根据进程结合GetModuleHandle获取当前主模块的句柄
- 获取进程中指定模块的文件路径
- 获取指定进程所有线程的当前执行模块
- GetProcessHandleCount() -- 获取属于指定进程的已打开句柄数
- 【Demo 0076】获取进程中模块列表
- 获取进程模块
- 根据Handle获取进程名的方法
- Linux获取监听指定端口的进程PID
- AfxGetResourceHandle用于获取当前资源模块句柄,而AfxSetResourceHandle则用于设置程序目前要使用的资源模块句柄。
- C#获取从指定的文件路径,获取该文件的图标,然后显示在image里
- Windows核心编程学习四:GetModuleHandle获取进程的地址空间中的可执行文件的基地址
- 【API】获取进程的所有模块名
- MVC 获取 控制器 传来的 字符串 ,然后跳转到指定的视图 怎么做
- Delphi 如何让程序获取权限结束指定进程?
- 获取当前进程,并显示每个进程使用的模块
- SNMP获取指定IP地址机器的进程数(要导入SNMP4J.jar和snmp.jar包)
- Windows-核心编程-04-进程-获取进程 线程 模块(DLL)信息
- GetModuleHandle(NULL)获取当前DLL模块基址?
- nodejs的process模块如何获取其他进程的pid