返回列表 发帖

VB搞定完美世界国际版双开

有个朋友在玩这游戏。说刚出的没双开外挂。。。
其实双开原理也不复杂。就看它用的是哪种。。
1:最简单的限制,窗口查找,如果找到自己窗口一致的(通过类名,或者窗口标题),就提示重复打开。
解决方法:通过窗口标题的,可以用SetWindowText修改掉窗口标题。听过类名的,简单的把FindWindow(Ex)后面的判断跳转修改下就ok了。
2:通过命名的内核对象来防止重复打开。
解决方法:把查找内核对象后面的非零判断跳转修改下就ok了。
3:通过独占文件访问来防止重复打开。
解决方法:1-修改程序,阻止独占访问
2-复制客户端到另外的文件夹,在另外的文件夹打开~
4:通过绑定特定的通讯端口,阻止重复启动客户端
解决方法:把绑定端口的那部分去掉


经查,这里的完美国际是用的第一种 :16:  :16: 他们的程序员偷懒噢。。。

Form1(主窗体,上面有一个TIMER控件,间隔为1000ms,并把Enabled设为true)
Private Sub Timer1_Timer()
    Dim lHwnd As Long
    Dim TitleModify As String * 256
    TimesNow = Now()
    TitleModify = "CodeWorld" & TimesNow
    lHwnd = FindWindow(vbNullString, "Element Client")
    SetWindowText lHwnd, TitleModify
End Sub
类模块
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long

VB搞定完美世界国际版双开

楼上,望见详解。。不是很理解 互斥量 的概念。

TOP

VB搞定完美世界国际版双开

:17:  :12: 谢谢小默。

TOP

VB搞定完美世界国际版双开

在网上看有人说要用OD修改跳转。。我汗。。用得着那么复杂么。。

TOP

返回列表 回复 发帖