好久没玩过弈城了,这次升级,代码做了很大改动。
首先破解双开,一开始破解我走了弯路。
od载入,下断点bp MessageBoxA,F9运行,程序拦截
0012D48C 004FA78F /CALL 到 MessageBoxA 来自 LiveBadu.004FA789
0012D490 00000000 |hOwner = NULL
0012D494 005F2CAC |Text = "一个对弈程序正在运行。(不能同时运行一个以上的对弈程序。)
如果没有正在运行的程序,那么可能是系统正在下载中。
如果长时间运行对弈程序,请重新启动计算机,再次进行连接。"
0012D498 01135138 |Title = "弈城TYGEM对弈"
0012D49C 00000030 \Style = MB_OK|MB_ICONEXCLAMATION|MB_APPLMODAL
ctrl+f9返回,往上看看,分析一下代码,可以看到跳转语句
004FA76F . 8BCE MOV ECX,ESI
004FA771 . E8 FA150100 CALL LiveBadu.0050BD70(检测双开的函数)
004FA776 . 3AC3 CMP AL,BL(判断返回值)
004FA778 . 75 1A JNZ SHORT LiveBadu.004FA794(关键跳)
004FA77A . 8BB6 58020000 MOV ESI,DWORD PTR DS:[ESI+258]
004FA780 . 6A 30 PUSH 30 ; /Style = MB_OK|MB_ICONEXCLAMATION|MB_APPLMODAL
004FA782 . 56 PUSH ESI ; |Title
004FA783 . 68 AC2C5F00 PUSH LiveBadu.005F2CAC ; |Text = "一个对弈程序正在运行。(不能同时运行一个以上的对弈程序。)
如果没有正在运行的程序,那么可能是系统正在下载中。
如果长时间运行对弈程序,请重新启动计算机,再次进行连接。"
004FA788 . 53 PUSH EBX ; |hOwner
004FA789 . FF15 507D5800 CALL DWORD PTR DS:[<&USER32.MessageBoxA>>; \MessageBoxA
004FA78F . E9 BE030000 JMP LiveBadu.004FAB52
这样,将关键跳转语句004FA778 . 75 1A JNZ SHORT LiveBadu.004FA794里面的75改成74,保存就可以了。
这里我保存了之后,程序一直提示非法,原因是程序对文件名做了校验。我一开始还以为是关键点找错,又下了CreateMutexA断点,一无所获。
注:程序多开限制主要有以下几种方法
1. FindWindow
2. SetProp
3. Mutex 、Event、Semaphore , 比如 CreateMutexA
4. FileMapping
5. DLL全局共享区
6. GlobalAddAtom
这里没那么复杂,是我没看清楚。保存的文件名为LiveBaduk.exe即可多开了。否则,程序会自动校验文件名,然后弹出错误对话框,提示程序非法。
我们接着来破解这个限制
重新打开od,载入刚才修改好的那个程序,livebaduk跳转.exe
同样设置断点bp MessageboxA,F9运行,拦截到
0012D32C 00000000 |hOwner = NULL
0012D330 005F2C64 |Text = "Program Version is not Valid Reinstall Plz 2!!"
0012D334 01136520 |Title = "LiveBaduk跳转"
0012D338 00000030 |Style = MB_OK|MB_ICONEXCLAMATION|MB_APPLMODAL
0012D33C 00000000 \LanguageID = 0 (LANG_NEUTRAL)
0012D340 /0012D478
0012D344 |6C0F9CCB 返回到 MFC42.6C0F9CCB 来自 USER32.MessageBoxA
0012D348 |00000000
0012D34C |005F2C64 ASCII "Program Version is not Valid Reinstall Plz 2!!"
0012D350 |01136520
0012D354 |00000030
0012D358 |77C01881 MSVCRT._mbscmp
0012D35C |00603A88 LiveBadu.00603A88
ctrl+f9返回到程序领空,查看代码如下:
004FA9BE . 85C0 TEST EAX,EAX
004FA9C0 . 74 23 JE SHORT LiveBadu.004FA9E5
004FA9C2 . 8B4C24 10 MOV ECX,DWORD PTR SS:[ESP+10]
004FA9C6 . 3959 F8 CMP DWORD PTR DS:[ECX-8],EBX
004FA9C9 . 0F85 8E000000 JNZ LiveBadu.004FAA5D
004FA9CF . 8B5424 0C MOV EDX,DWORD PTR SS:[ESP+C]
004FA9D3 . 8BCE MOV ECX,ESI
004FA9D5 . 52 PUSH EDX
004FA9D6 . 68 80775E00 PUSH LiveBadu.005E7780 ; ASCII "WorkDir"
004FA9DB . 68 F8205D00 PUSH LiveBadu.005D20F8 ; ASCII "LiveMain"
004FA9E0 . E8 F58B0600 CALL
004FA9E5 > 8B4424 18 MOV EAX,DWORD PTR SS:[ESP+18]
004FA9E9 . 8B4C24 14 MOV ECX,DWORD PTR SS:[ESP+14]
004FA9ED . 50 PUSH EAX
004FA9EE . 51 PUSH ECX
004FA9EF . FFD7 CALL EDI
004FA9F1 . 83C4 08 ADD ESP,8
004FA9F4 . 85C0 TEST EAX,EAX
004FA9F6 . 74 6E JE SHORT LiveBadu.004FAA66
004FA9F8 . 53 PUSH EBX
004FA9F9 . 53 PUSH EBX
004FA9FA . 68 642C5F00 PUSH LiveBadu.005F2C64 ; ASCII "Program Version is not Valid Reinstall Plz 2!!"
004FA9FF > E8 74870600 CALL
004FAA04 . 8D4C24 18 LEA ECX,DWORD PTR SS:[ESP+18]
004FAA08 . C68424 602A00>MOV BYTE PTR SS:[ESP+2A60],5
004FAA10 . E8 3D830600 CALL
004FAA15 . 8D4C24 14 LEA ECX,DWORD PTR SS:[ESP+14]
004FAA19 . C68424 602A00>MOV BYTE PTR SS:[ESP+2A60],3
004FAA21 . E8 2C830600 CALL
004FAA26 . 8D4C24 0C LEA ECX,DWORD PTR SS:[ESP+C]
004FAA2A . C68424 602A00>MOV BYTE PTR SS:[ESP+2A60],2
004FAA32 . E8 1B830600 CALL
004FAA37 . 8D4C24 10 LEA ECX,DWORD PTR SS:[ESP+10]
004FAA3B . C68424 602A00>MOV BYTE PTR SS:[ESP+2A60],1
004FAA43 . E8 0A830600 CALL
004FAA48 . 8D4C24 20 LEA ECX,DWORD PTR SS:[ESP+20]
004FAA4C . 889C24 602A00>MOV BYTE PTR SS:[ESP+2A60],BL
004FAA53 . E8 FA820600 CALL
004FAA58 . E9 F5000000 JMP LiveBadu.004FAB52
004FAA5D > 53 PUSH EBX
004FAA5E . 53 PUSH EBX
004FAA5F . 68 302C5F00 PUSH LiveBadu.005F2C30 ; ASCII "Program Version is not Valid Reinstall Plz 1!!"
004FAA64 .^ EB 99 JMP SHORT LiveBadu.004FA9FF
可以看出,004FA9F6地址是关键点,跳转代码JE SHORT LiveBadu.004FAA66。将74改成75,保存即可。
这样,我们就成功破解了弈城的多开限制,保存为任何文件名都可以运行。
同理,程序内的一些会员限制,比如形势判断功能,同样可以用此法破解,不再赘述。
首先破解双开,一开始破解我走了弯路。
od载入,下断点bp MessageBoxA,F9运行,程序拦截
0012D48C 004FA78F /CALL 到 MessageBoxA 来自 LiveBadu.004FA789
0012D490 00000000 |hOwner = NULL
0012D494 005F2CAC |Text = "一个对弈程序正在运行。(不能同时运行一个以上的对弈程序。)
如果没有正在运行的程序,那么可能是系统正在下载中。
如果长时间运行对弈程序,请重新启动计算机,再次进行连接。"
0012D498 01135138 |Title = "弈城TYGEM对弈"
0012D49C 00000030 \Style = MB_OK|MB_ICONEXCLAMATION|MB_APPLMODAL
ctrl+f9返回,往上看看,分析一下代码,可以看到跳转语句
004FA76F . 8BCE MOV ECX,ESI
004FA771 . E8 FA150100 CALL LiveBadu.0050BD70(检测双开的函数)
004FA776 . 3AC3 CMP AL,BL(判断返回值)
004FA778 . 75 1A JNZ SHORT LiveBadu.004FA794(关键跳)
004FA77A . 8BB6 58020000 MOV ESI,DWORD PTR DS:[ESI+258]
004FA780 . 6A 30 PUSH 30 ; /Style = MB_OK|MB_ICONEXCLAMATION|MB_APPLMODAL
004FA782 . 56 PUSH ESI ; |Title
004FA783 . 68 AC2C5F00 PUSH LiveBadu.005F2CAC ; |Text = "一个对弈程序正在运行。(不能同时运行一个以上的对弈程序。)
如果没有正在运行的程序,那么可能是系统正在下载中。
如果长时间运行对弈程序,请重新启动计算机,再次进行连接。"
004FA788 . 53 PUSH EBX ; |hOwner
004FA789 . FF15 507D5800 CALL DWORD PTR DS:[<&USER32.MessageBoxA>>; \MessageBoxA
004FA78F . E9 BE030000 JMP LiveBadu.004FAB52
这样,将关键跳转语句004FA778 . 75 1A JNZ SHORT LiveBadu.004FA794里面的75改成74,保存就可以了。
这里我保存了之后,程序一直提示非法,原因是程序对文件名做了校验。我一开始还以为是关键点找错,又下了CreateMutexA断点,一无所获。
注:程序多开限制主要有以下几种方法
1. FindWindow
2. SetProp
3. Mutex 、Event、Semaphore , 比如 CreateMutexA
4. FileMapping
5. DLL全局共享区
6. GlobalAddAtom
这里没那么复杂,是我没看清楚。保存的文件名为LiveBaduk.exe即可多开了。否则,程序会自动校验文件名,然后弹出错误对话框,提示程序非法。
我们接着来破解这个限制
重新打开od,载入刚才修改好的那个程序,livebaduk跳转.exe
同样设置断点bp MessageboxA,F9运行,拦截到
0012D32C 00000000 |hOwner = NULL
0012D330 005F2C64 |Text = "Program Version is not Valid Reinstall Plz 2!!"
0012D334 01136520 |Title = "LiveBaduk跳转"
0012D338 00000030 |Style = MB_OK|MB_ICONEXCLAMATION|MB_APPLMODAL
0012D33C 00000000 \LanguageID = 0 (LANG_NEUTRAL)
0012D340 /0012D478
0012D344 |6C0F9CCB 返回到 MFC42.6C0F9CCB 来自 USER32.MessageBoxA
0012D348 |00000000
0012D34C |005F2C64 ASCII "Program Version is not Valid Reinstall Plz 2!!"
0012D350 |01136520
0012D354 |00000030
0012D358 |77C01881 MSVCRT._mbscmp
0012D35C |00603A88 LiveBadu.00603A88
ctrl+f9返回到程序领空,查看代码如下:
004FA9BE . 85C0 TEST EAX,EAX
004FA9C0 . 74 23 JE SHORT LiveBadu.004FA9E5
004FA9C2 . 8B4C24 10 MOV ECX,DWORD PTR SS:[ESP+10]
004FA9C6 . 3959 F8 CMP DWORD PTR DS:[ECX-8],EBX
004FA9C9 . 0F85 8E000000 JNZ LiveBadu.004FAA5D
004FA9CF . 8B5424 0C MOV EDX,DWORD PTR SS:[ESP+C]
004FA9D3 . 8BCE MOV ECX,ESI
004FA9D5 . 52 PUSH EDX
004FA9D6 . 68 80775E00 PUSH LiveBadu.005E7780 ; ASCII "WorkDir"
004FA9DB . 68 F8205D00 PUSH LiveBadu.005D20F8 ; ASCII "LiveMain"
004FA9E0 . E8 F58B0600 CALL
004FA9E5 > 8B4424 18 MOV EAX,DWORD PTR SS:[ESP+18]
004FA9E9 . 8B4C24 14 MOV ECX,DWORD PTR SS:[ESP+14]
004FA9ED . 50 PUSH EAX
004FA9EE . 51 PUSH ECX
004FA9EF . FFD7 CALL EDI
004FA9F1 . 83C4 08 ADD ESP,8
004FA9F4 . 85C0 TEST EAX,EAX
004FA9F6 . 74 6E JE SHORT LiveBadu.004FAA66
004FA9F8 . 53 PUSH EBX
004FA9F9 . 53 PUSH EBX
004FA9FA . 68 642C5F00 PUSH LiveBadu.005F2C64 ; ASCII "Program Version is not Valid Reinstall Plz 2!!"
004FA9FF > E8 74870600 CALL
004FAA04 . 8D4C24 18 LEA ECX,DWORD PTR SS:[ESP+18]
004FAA08 . C68424 602A00>MOV BYTE PTR SS:[ESP+2A60],5
004FAA10 . E8 3D830600 CALL
004FAA15 . 8D4C24 14 LEA ECX,DWORD PTR SS:[ESP+14]
004FAA19 . C68424 602A00>MOV BYTE PTR SS:[ESP+2A60],3
004FAA21 . E8 2C830600 CALL
004FAA26 . 8D4C24 0C LEA ECX,DWORD PTR SS:[ESP+C]
004FAA2A . C68424 602A00>MOV BYTE PTR SS:[ESP+2A60],2
004FAA32 . E8 1B830600 CALL
004FAA37 . 8D4C24 10 LEA ECX,DWORD PTR SS:[ESP+10]
004FAA3B . C68424 602A00>MOV BYTE PTR SS:[ESP+2A60],1
004FAA43 . E8 0A830600 CALL
004FAA48 . 8D4C24 20 LEA ECX,DWORD PTR SS:[ESP+20]
004FAA4C . 889C24 602A00>MOV BYTE PTR SS:[ESP+2A60],BL
004FAA53 . E8 FA820600 CALL
004FAA58 . E9 F5000000 JMP LiveBadu.004FAB52
004FAA5D > 53 PUSH EBX
004FAA5E . 53 PUSH EBX
004FAA5F . 68 302C5F00 PUSH LiveBadu.005F2C30 ; ASCII "Program Version is not Valid Reinstall Plz 1!!"
004FAA64 .^ EB 99 JMP SHORT LiveBadu.004FA9FF
可以看出,004FA9F6地址是关键点,跳转代码JE SHORT LiveBadu.004FAA66。将74改成75,保存即可。
这样,我们就成功破解了弈城的多开限制,保存为任何文件名都可以运行。
同理,程序内的一些会员限制,比如形势判断功能,同样可以用此法破解,不再赘述。
zoooro
2012/04/13 21:31
博主你好 按你这种修改可以达到多开效果但是必须用OD先载入 如果进程中没有程序 反而出现了提示不知道博主有没有注意
鬼谷军师 回复于 2012/04/22 17:28
开个原版再开这个就行了,破解不完整的原因,可以再找跳转修改。
路过
2012/01/26 13:08
您好 能否发下修改版的 谢谢 asd19891108@gmail.com
鬼谷军师 回复于 2012/01/28 18:57
给你发了,但是系统判断是垃圾邮件。
分页: 1/1
1

