精易论坛

标题: FreeLibrary另类调用 [打印本页]

作者: aiksie    时间: 2018-11-15 19:27
标题: FreeLibrary另类调用
剑走偏锋调用FreeLibrary:
如果直接调用FreeLibrary,可能达不到预期的目的,因为一些系统本身就有可能会被HOOK替换。
我这里就有一种情况,GetProcAddress获取到“FreeLibrary”函数入口地址并不是一个真实有效的FreeLibrary的函数入口地址。所以不能直接调用FreeLibrary。
FreeLibrary:经过测试发现 写有信息框的dll、或者通过dll本身调用FreeLibrary、dll有正在执行的线程或代码,都有可能引起程序崩溃。





FreeLibrary.e (737.85 KB, 下载次数: 78)

  如有需要请下载。

作者: 哥只是一个传说    时间: 2018-11-16 05:41
不懂,太深了

作者: weihua2018    时间: 2018-11-16 10:28
看不懂,没有办法
作者: 毛超    时间: 2019-1-10 18:45
貌似有一个bug,这种方式释放的dll,无法继续加载
作者: aiksie    时间: 2019-1-11 11:25
wzx1196 发表于 2019-1-10 18:45
貌似有一个bug,这种方式释放的dll,无法继续加载

可以正常释放的,无法继续加载的,应该是释放失败了,用OD载入看一下
作者: aiksie    时间: 2019-1-11 11:30
dll 写有
载入 (窗口1, , 真)
采用对话框方式的,测试也是释放不了的

作者: aiksie    时间: 2019-1-11 12:29
经过测试,dll写用LoadLibraryA获取自身句柄的,然后再用FreeLibrary释放dll也会释放失败,获取自身句柄要用GetModuleHandleA,正常情况下用FreeLibrary就可以释放dll。



作者: 毛超    时间: 2019-1-11 13:16
aiksie 发表于 2019-1-11 12:29
经过测试,dll写用LoadLibraryA获取自身句柄的,然后再用FreeLibrary释放dll也会释放失败,获取自身句柄要 ...

LoadLibraryA获取的handle和GetModuleHandleA是同一个值
作者: 好好先生    时间: 2020-4-14 00:26
aiksie 发表于 2019-1-11 11:30
dll 写有
载入 (窗口1, , 真)
采用对话框方式的,测试也是释放不了的

有没有其它方法可以解决
作者: aiksie    时间: 2020-4-14 09:44
好好先生 发表于 2020-4-14 00:26
有没有其它方法可以解决

正确卸载DLL的方法.e (847.43 KB, 下载次数: 58)

如果打不开,修改文件名即可

作者: 好好先生    时间: 2020-4-14 21:40
aiksie 发表于 2020-4-14 09:44
如果打不开,修改文件名即可

这种释放后,主程序就结束了
作者: y99650    时间: 2021-4-8 01:50
试试看///////////////
作者: 凉城o    时间: 2021-4-9 04:15

作者: q2350210076    时间: 2024-11-8 12:51
强悍啊啊啊
作者: ashu180    时间: 2025-2-25 09:55
aiksie 发表于 2020-4-14 09:44
如果打不开,修改文件名即可

NB,大佬这是真牛,解决了我好久都没解决的问题。我愿称你为最nb的鬼才




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4