winapi – 我可以从另一个进程卸载DLL吗?的(Win32)
发布时间:2020-12-14 05:47:05 所属栏目:Windows 来源:网络整理
导读:我想从另一个进程卸载DLL.可能吗? 如果是的话,怎么做? (我正在使用Win32 API) 非常感谢你. 解决方法 是的,这是可能的.它被称为DLL弹出,并且是一些DLL注入器的特征.通常加载DLL的方式是通过 LoadLibrary,然后通过 FreeLibrary卸载.FreeLibrary只接受一个参
我想从另一个进程卸载DLL.可能吗?
如果是的话,怎么做? (我正在使用Win32 API) 非常感谢你. 解决方法
是的,这是可能的.它被称为DLL弹出,并且是一些DLL注入器的特征.通常加载DLL的方式是通过
LoadLibrary,然后通过
FreeLibrary卸载.FreeLibrary只接受一个参数,该参数是要卸载的模块的句柄.如果你首先注入了DLL,你应该能够很容易地找到它.否则有一些方法可以获得句柄,例如
CreateToolHelp32Snapshot,并进一步枚举
Module32First/
Module32Next.假设您已通过某种方式获得句柄,那么弹出DLL的步骤很简单:
>使用GetProcAddress获取FreeLibrary的地址.由于Windows的工作原理,此地址将与目标中相同功能的地址匹配. DLL弹射有几个注意事项. >您应该只弹出一个DLL,您确定将来不会再使用任何代码.如果任何动态链接的代码在释放代码后尝试调用代码,则很可能会触发某种形式的页面访问冲突. 一般情况下应避免DLL弹出.如果库想要被释放的选项,它应该提供一些用户可以访问它的接口,最终通过它调用FreeLibraryAndExitThread. 如果您需要一个代码示例,我已经编写了一个弹射器作为我过去在C中编写的注入器的一部分.我可以搜索它并找到它但是它来自多年前并且代码质量不太可能是好. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- powershell – Windows命令提示符:如何获取当前目录中所有
- remote-desktop – 无法远程连接我的Windows 8.1操作系统机
- windows-server-2003 – 将DNS从一个提供程序迁移到另一个提
- windows-server-2003 – 替换文件服务器,会链接中断吗?
- Windows 8 GUI,以及WPF/SilverLight/WinRT/Metro/BUILD关系
- 如何在无人参与的Windows服务器上关闭警报弹出窗口?
- Windows PowerShell中特定文件类型的递归列表
- 有没有人发现Windows的(例如bash)shell终端和OS X一样好?
- 在Windows 7中是否有任何用于监控java应用程序的工具?
- winforms – Windows窗体中WebBrowser控件的浏览器版本是什
推荐文章
站长推荐
- 安装Windows Server 2008一次还是XP三次?
- windows-phone-7 – 如何使用LocationCollection
- windows-server-2008 – 停止windows分页vmware
- 权限 – Windows Server 2012远程桌面 – 在标准
- windows-7 – 如何使用IPSEC加密SQL Server流量?
- 使用.NET 4.5编写的软件需要什么版本的.NET运行时
- windows – remote:fatal:解包后留下未解决的增
- windows-server-2012-r2 – 当DC无法到达外部时间
- windows安装memcache开启php扩展
- windows – batch:忽略输出的最后一行
热点阅读