Qokelate 发表于 2012-4-14 03:11:10

已解决 怎样禁止程序调用指定DLL?

本帖最后由 Qokelate 于 2012-4-15 01:28 编辑

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

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

haijie1223 发表于 2012-4-14 08:44:41

重写dll吧,每个函数里面都检测你需要的进程是否存在....

hzxymkb 发表于 2012-4-14 10:48:03

你删除DLL不是行咯!

Qokelate 发表于 2012-4-14 10:51:23

回复 3# hzxymkb


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


我的想法是,OD或DBG可以获取到程序已加载的DLL,那当然也能得到加载DLL的句柄,只是把这个句柄销毁即可

hzxymkb 发表于 2012-4-14 10:52:34

OD,DBG等软件不会用!
找老萧解决!

thesnow 发表于 2012-4-14 18:28:10

回复 1# Qokelate


    需要修改DLL,其它方法不好实现....

Qokelate 发表于 2012-4-14 19:50:11

回复 6# thesnow


    不明白,求指导

pusofalse 发表于 2012-4-14 20:12:31

对于已经在运行中的进程,需要创建远程线程,线程函数调用FreeLibrary释放Dll,或者直接将线程函数设为FreeLibrary函数的地址。但此法很容易导致目标进程崩溃。

对于还没有运行的程序,调用CreateProcess函数创建进程,并将CREATE_SUSPENDED
包含进dwCreationFlags参数中。CreateProcess函数返回后,进程已经创建,但处于挂起状态,此时只有ntdll.dll加载进目标进程中,这时候挂钩ntdll.dll中的LdrLoadDll函数,并调用NtResumeThread恢复进程的运行。在钩子函数中,截取目标进程加载Dll的操作,判断LdrLoadDll的参数是否是指定的Dll的路径就好了。
页: [1]
查看完整版本: 已解决 怎样禁止程序调用指定DLL?