欢迎来到天天文库
浏览记录
ID:43550892
大小:599.09 KB
页数:47页
时间:2019-10-10
《如何解除禁止双开方面的各种方案》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、如何解除禁止双开方面的各种方案为什么要禁止双开或多开呢?原因很多.但我们的软件中若能有解开多开的功能,可以有很多的好处.比如一台机子可以同时登陆多个帐号上去玩.要想解除屮禁止双开的功能,就得先了解禁止双开方面的原理.其实想耍禁止双开并不难.禁止双开的方法也冇很多.但其基木的方式,木栏目会都给介绍一下.在操作系统中每个在运行的进程都是独立的.禁双开的程序在运行时,需要留下一些专有的特征供第二次运行时检测用,当第二次运行时,会去尝试检测有没有某个专有的特征.若该特征已存在则结束自身进程.若不存在则继续运行.通过这
2、种方式,就能简单的达到禁止双开的H的.木文介绍第一种,是比较常用的.通过窗口标题与窗口类名的特征來达到禁止双开的功能.如果我们的程序的主要窗口类名与窗口标题是唯-•的,一般不会与他人的程序出现相同的情况时,可以用如下API来实现禁止双开功能.查找窗口的API在程序运行载入主窗口之前,先通过该API检测一下是否已有存在相应标题的窗口了,若已存在时,自结束自身进稈的运行.反之继续运行.子程序名返回值类型公开备注靠动子程序整数型判断m丰apt至找旨口(irrrrrrri-h-utfiH-iqrrrnsrr,*禁止対
3、3?于例"Hi:'早期的易语言4.12窗口的类名默认为“Afx-10000000:b:10011:1900015:0”卜•结束0'刿断(0*21工找■口(-rrr>n4^*,))•:后期的JJiSf4.12®口默认所用的类名ITlmdmttJ®的剧可以目定义宙□类名卜•结束()1.载入(窗口1…真)兹回(0)利用窗口标题与类名来防止程序被多开上面的这段代码,简单的示例了如何使用这个API来达到禁止双开的方式.根据这种禁止双开的方式.只要我们在运行第二个进程之前,先把第一个进程的标题修改成别的后,就能正常运行第
4、二个进程,也就能达到解除双开的功能了..呵呵,简单吧!见下面的代码,就能说明这个方法的使用了.子程序名返回值类型公托2監注J动窗口创逹完毕模块注册0编辑框1・内容二取运行目录()+r禁止孜弃示例・《
5、柄二APT至找窗口(^TWindow^,"禁止致并示例")厂•如杲真C®口旬柄沪0):置窗口标题爾口句柄.怦*到文本激随机数(W24.曲5小jgffl内容,I風)通过修改窗口的标题达到破解利用标题禁多开的程序方式打效果上・而的代码,就是种极简单的解除窗口标题方式的禁止双开的功能了…但有些时候,事情可能并不是这么容易能解决的,我们修改了其窗口标题,虽然能使其正帘运行了,但该进程若在后期运行过程屮,若取自已标题进行-・次判断有没有被改变的话,马脚自然就露出來了・对于这种情况,需要在创建第二个进程之前,修改已存在的
6、进程的窗口标题后,新进程创建出来后马上把其窗口标题改冋去•但是,这很难操作•所以并不推荐.所以若不想通过修改英原窗口标题来达到多开,必需得HOOKJt用来检测窗口禁止多开时的那些API.如这里使用的FindWindowA这个API.只要在创建进程时,注入个DLL,对该API进行HOOK•在HOOK到的参数时,判断窗口标题•进行返冋0即叮.下面贴上EXE的代码程序丈件貞話西运厅•汪怠’若使用女装钩子D匚()_般郁会慢了•没能及时i£入送行HDO磁载址f厂如里宜创建进程褊攝框1内程…假进程信宜〕):安装线程DI±
7、(进程信息进程句瓯%ydll.dUwj进程信息銭程句柄):关闭句柄仙S信息•进程句柄):关闭句柄沁信息.銭程句柄)*'进程血逹进程編辑框1內容,fydLLdllJ)'謬分用P2.5®块有这亍功能”下面的代码是在11月15日之前的2.5模块列子,创建进程时谙用挂起方式.并花注入DLL后要恢复线程运行厂•’如果真迪屣进程編辑框1一内容,…K迸程信息))II;'安装线程DIL讎程信息•进程句柄."mvdll.Hl");'恢复线程一62程信息•线程句柄):'买丙句柄C2程•'言息•进程句柄):'夬闭句柄『进程钱程句柄
8、〕采用安装线程DLLO的方式注入mydll.dll文件在注入EXE的代码中,采用2.0版模块中新增的安装线程DLL()方式进行注入.卜•面再贴上DLL的代码.1程序集名保留保留备注程序集11变量名类型数組备注FindWindow类.APIHOOK子程序名返回值类型公开备注线程DL±接口采用安装线程DLL()方式来注入线程DLL初始化血初始’&退出)子程序名返回值类型公开备注初始FindWindow.
此文档下载收益归作者所有