已解决 怎样禁止程序调用指定DLL?
本帖最后由 Qokelate 于 2012-4-15 01:28 编辑如题,只限制指定进程的调用,其它程序调用不影响,能否实现?
找老瀟改内存解决了。。。囧 重写dll吧,每个函数里面都检测你需要的进程是否存在.... 你删除DLL不是行咯! 回复 3# hzxymkb
。。。 不能影响其它程序调用啊。。。
我的想法是,OD或DBG可以获取到程序已加载的DLL,那当然也能得到加载DLL的句柄,只是把这个句柄销毁即可 OD,DBG等软件不会用!
找老萧解决! 回复 1# Qokelate
需要修改DLL,其它方法不好实现.... 回复 6# thesnow
不明白,求指导 对于已经在运行中的进程,需要创建远程线程,线程函数调用FreeLibrary释放Dll,或者直接将线程函数设为FreeLibrary函数的地址。但此法很容易导致目标进程崩溃。
对于还没有运行的程序,调用CreateProcess函数创建进程,并将CREATE_SUSPENDED
包含进dwCreationFlags参数中。CreateProcess函数返回后,进程已经创建,但处于挂起状态,此时只有ntdll.dll加载进目标进程中,这时候挂钩ntdll.dll中的LdrLoadDll函数,并调用NtResumeThread恢复进程的运行。在钩子函数中,截取目标进程加载Dll的操作,判断LdrLoadDll的参数是否是指定的Dll的路径就好了。
页:
[1]