找回密码
 加入
搜索
查看: 3826|回复: 7

[AU3基础] 已解决 怎样禁止程序调用指定DLL?

  [复制链接]
发表于 2012-4-14 03:11:10 | 显示全部楼层 |阅读模式
本帖最后由 Qokelate 于 2012-4-15 01:28 编辑

如题,只限制指定进程的调用,其它程序调用不影响,能否实现?

找老瀟改内存解决了。。。囧

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2012-4-14 08:44:41 | 显示全部楼层
重写dll吧,每个函数里面都检测你需要的进程是否存在....
发表于 2012-4-14 10:48:03 | 显示全部楼层
你删除DLL不是行咯!
 楼主| 发表于 2012-4-14 10:51:23 | 显示全部楼层
回复 3# hzxymkb


    。。。   不能影响其它程序调用啊。。。


我的想法是,OD或DBG可以获取到程序已加载的DLL,那当然也能得到加载DLL的句柄,只是把这个句柄销毁即可
发表于 2012-4-14 10:52:34 | 显示全部楼层
OD,DBG等软件不会用!
找老萧解决!
发表于 2012-4-14 18:28:10 | 显示全部楼层
回复 1# Qokelate


    需要修改DLL,其它方法不好实现....
 楼主| 发表于 2012-4-14 19:50:11 | 显示全部楼层
回复 6# thesnow


    不明白,求指导
发表于 2012-4-14 20:12:31 | 显示全部楼层
对于已经在运行中的进程,需要创建远程线程,线程函数调用FreeLibrary释放Dll,或者直接将线程函数设为FreeLibrary函数的地址。但此法很容易导致目标进程崩溃。

对于还没有运行的程序,调用CreateProcess函数创建进程,并将CREATE_SUSPENDED
包含进dwCreationFlags参数中。CreateProcess函数返回后,进程已经创建,但处于挂起状态,此时只有ntdll.dll加载进目标进程中,这时候挂钩ntdll.dll中的LdrLoadDll函数,并调用NtResumeThread恢复进程的运行。在钩子函数中,截取目标进程加载Dll的操作,判断LdrLoadDll的参数是否是指定的Dll的路径就好了。

评分

参与人数 1金钱 +20 收起 理由
user3000 + 20 学习了!

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-30 15:33 , Processed in 0.076969 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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