关于程序多开的尝试。CreateMutex,OpenMuxtex,ReleaseMutex

因为偶尔会遇到对那些不能支持双开的程序进行多开。。
根据前一阵转的一篇文件了解到,现在大多程序都用CreateMutex方式来限制多开,
于是有个想法:它Create了,我Release它,然后不就可以多开了吗?
然而。。。经过一些小程序的验证及网上的搜索,我失败了。
原因是:对于一个Mutex来说,只有Create它的进程才可以Release它。所以想用这种方式是不可能了。
不过并不是没有收获,经过这次“失败”的试验对Mutex的认识也增加了一些。基本的用法也了解了~
一些小总结:
CreateMutex和OpenMutex在该Mutex已存在时,结果一样,都会返回一个副本HANDLE。
当该Muxtex不存在时,OpenMutex会返回0出错,并可用GetLastError得到错误信息。
ReleaseMutex只能由创建该Mutex的进程执行,不然总是返回错误。
用CloseHandle来释放Mutex时,只是释放当前进程获得的副本句柄,而不会删除该Mutex内核对象。

另:虽然不能用其它进程对某个Mutex进行Release,但可以通过特殊的方式进行。如远程注入,不过远程注入后更方便使用API Hook的方法对CreateMutex进行Hook,那样原则上可以是个“万能”多开了。等有时间了去验证实现一下吧。

转载于:https://www.cnblogs.com/gakusei/archive/2009/02/21/1395462.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值