天使的风衣出品
浩方对战平台AYU版多开爆破详解!(新手搞汇编要举一反三!)
大家都在使用AYU版的浩方,确实不错,广告都没了,干净清爽,但是,网上很多玩家一直想双开浩方对战平台,我不知道他们为什么要这样做,因为这样做毫无疑义。不像QQ游戏,可以用多开来刷分作弊什么的。
不过,那么多网友要求,那我就试试吧。全当一个实验,仅此而已。
为了麻烦广告,我直接使用AYU的1.31版浩方进行破解。
教程开始:
首先用PEID载入浩方主程序,检测是否有壳。
大喜,原来是VC做的没壳的肉鸡程序。好了,直接用OD载入浩方主程序,对于一个新人的思路是这样的,首先查找字符串,正常运行浩方的时候,如果开了多个,就会提示平台已经启动的话语,如下图所示。
那我们就开始查找有没有这些字符串是写在程序当中的。结果,很遗憾,没有找到,因为主程序里根本没调用任何中文的资源。如下图。
没关系,我们还有别的方法。刚才我们知道这个程序是用VC写的,懂编程的都应该知道判断进程是否有多个的函数吧。没错,我们用OD找找看,是否有OpenMutex这种函数。很幸运,有一个OpenMutexA.
我们查找它的输入函数参考。
很好,只有一个地方调用了它,直接双击此句,让主进程的指针落在这个函数上。CALL了之后进行TEST比较,再将EAX给了ebp+518。如果若相等则跳,不相等就执行下面的代码,最终走向灭亡。这个大家可以设置断点测试一下。所以,爆破点就在此了,直接将JE改JMP吧。
00420A9C . FF15 A4734F00 CALL DWORD PTR DS:[<&MSVCRT._strdup>] ; \_strdup
00420AA2 . 83C4 04 ADD ESP,4
00420AA5 . 8945 7C MOV DWORD PTR SS:[EBP+7C],EAX
00420AA8 . 68 F4A15200 PUSH GameClie.0052A1F4 ; /MutexName = "GameClient_Mutex"
00420AAD . 6A 00 PUSH 0 ; |Inheritable = FALSE
00420AAF . 68 01001F00 PUSH 1F0001 ; |Access = 1F0001
00420AB4 . FF15 F8684F00 CALL DWORD PTR DS:[<&KERNEL32.OpenMutexA>; \OpenMutexA
00420ABA . 85C0 TEST EAX,EAX ; 风衣提示:在这里下断点,因为上面的函数已经在判断是否多开了
00420ABC . 8985 18050000 MOV DWORD PTR SS:[EBP+518],EAX
00420AC2 . EB 69 JMP SHORT GameClie.00420B2D ; 风衣提示:这里如果不跳,那就完蛋了,所以,EB吧!00420AC4 . 50 PUSH EAX ; /hObject
00420AC5 . FF15 F0684F00 CALL DWORD PTR DS:[<&KERNEL32.CloseHandl>; \CloseHandle
00420ACB . 6A 05 PUSH 5 ; /Relation = GW_CHILD
00420ACD . C785 18050000>MOV DWORD PTR SS:[EBP+518],0 ; |
00420AD7 . FF15 D0754F00 CALL DWORD PTR DS:[<&USER32.GetDesktopWi>; |[GetDesktopWindow
00420ADD . 8B3D F8744F00 MOV EDI,DWORD PTR DS:[<&USER32.GetWindow>; |USER32.GetWindow
00420AE3 . 50 PUSH EAX ; |hWnd
00420AE4 . FFD7 CALL EDI ; \GetWindow
00420AE6 . 8BF0 MOV ESI,EAX
00420AE8 . 85F6 TEST ESI,ESI
00420AEA . 74 20 JE SHORT GameClie.00420B0C
00420AEC . 8B1D FC744F00 MOV EBX,DWORD PTR DS:[<&USER32.GetPropA>>; USER32.GetPropA
00420AF2 > 68 E8A15200 PUSH GameClie.0052A1E8 ; ASCII "GameClient"
再次运行浩方,大功告成。没有任何提示,可以多开了。最后我们将修改好的内存,dump出来生成EXE文件,取名为GameClient1.exe。
好了,关闭所有反汇编调试工具,直接双击GameClient1.exe看能否执行?可以了吧。再双击GameClient1.exe,双开了吧。
先别高兴太早,为什么?你输入密码后进浩方看看,怎么变1个了?是不是很怪?是的,因为浩方启动后,会调用同一个进程名的窗体,如果你进了第一个,然后再进一个,那么第二个的进程就会覆盖第一个的进程。怎么办?很简单,复制2个EXE,分别执行,让进程名不同就可以了。简单吧?
版权没有,任意拷贝,拷贝要注上我的名
全文完。
天使的风衣制作
2007年9月15日
[ 本帖最后由 xiaoxue999 于 2007-9-15 14:42 编辑 ] |