前两天应氏杯决赛,看范廷钰和朴廷桓对决,苦于水平有限,判断不明形势,话都不敢多说了。
弈城的形势判断功能需要付费才可解除限制,今天祭起OD神器,自力更生,给自己的客户端增添免费的形势判断功能。

步骤如下:
打开弈城并登录,随便进入某棋室观战。
然后点击主面板右下角的“对局研究”按钮,弹出摆棋的窗口。

接着打开OD,点击“文件”菜单下的“附加”按钮,选择摆棋的窗口进程,将进程载入OD进行调试。
在OD的命令行里输入“bp MessageBoxA”并回车,拦截即将弹出的对话框窗口。
按F9运行程序,程序来到USER32领空,OD拦截到断点,堆栈显示如下:


0012CF48   6C14C8E7  /CALL 到 MessageBoxA 来自 MFC42.6C14C8E1
0012CF4C   00020780  |hOwner = 00020780 ('摆312房间的棋',class='#32770')
0012CF50   00608F6C  |Text = "【押分对局】形势判断功能使用说明
钻石会员 -无限制 / 黄金会员 -到150手 / 银卡会员 -到50手
※1.人气9段对局-押分 1亿 / 普通9段对局 押分 5000万时无限制
※2.使用任何“押分道具”押分时该对局可以无限制使用形势判断功能。"
0012CF54   01105E70  |Title = "LiveBaduk"
0012CF58   00000000  \Style = MB_OK|MB_APPLMODAL
0012CF5C   0493DAC8
0012CF60   00435E9E  返回到 LiveBadu.00435E9E 来自
0012CF64   00608F6C  LiveBadu.00608F6C

注意这一行:0012CF60   00435E9E  返回到 LiveBadu.00435E9E 来自
此处显示了程序返回地址。


我们可以直接用OD载入弈城主程序Livebaduk.exe,也可以用静态工具W32Dasm查看一下这个地址的程序代码。这里我用了W32Dasm。
点击“反汇编”菜单下的“打开”按钮,载入弈城主程序Livebaduk.exe,然后F12跳转到00435E9E代码位置。

往上翻翻,有关于形势判断的字符串,爆破点不远了。

00435E77   . /75 36         JNZ SHORT LiveBadu.00435EAF(爆破点)
00435E79   . |8BCE          MOV ECX,ESI
00435E7B   . |E8 30020000   CALL LiveBadu.004360B0
00435E80   . |8B0D 94D76500 MOV ECX,DWORD PTR DS:[65D794]
00435E86   . |50            PUSH EAX
00435E87   . |E8 44A20D00   CALL LiveBadu.005100D0
00435E8C   . |85C0          TEST EAX,EAX
00435E8E   . |75 1F         JNZ SHORT LiveBadu.00435EAF(爆破点)
00435E90   . |50            PUSH EAX
00435E91   . |50            PUSH EAX
00435E92   . |68 6C8F6000   PUSH LiveBadu.00608F6C
00435E97   . |8BCE          MOV ECX,ESI
00435E99   . |E8 3C1D1500   CALL
00435E9E   . |8B4C24 24     MOV ECX,DWORD PTR SS:[ESP+24]
00435EA2   . |64:890D 00000>MOV DWORD PTR FS:[0],ECX
00435EA9   . |5F            POP EDI
00435EAA   . |5E            POP ESI
00435EAB   . |83C4 28       ADD ESP,28
00435EAE   . |C3            RETN
00435EAF   > \8B0D 94D76500 MOV ECX,DWORD PTR DS:[65D794]
00435EB5   .  E8 56E00D00   CALL LiveBadu.00513F10
00435EBA   .  84C0          TEST AL,AL
00435EBC   .  0F84 08010000 JE LiveBadu.00435FCA

光标移到爆破点代码行,我们用W32Dasm查看一下爆破点的偏移地址,比如00435E8E处。(如果用OD,则可以选中一行,点击右键“复制到可执行文件”,新开的窗口就会看到文件偏移地址。 )
偏移地址显示于任务栏上。
Line:115871 Pg 2318 of 17963 Code Data @00435E8E @Offset 00035E8Eh in File:LiveBaduk.exe

@Offset 00035E8Eh 即是。

用UltraEdit打开Livebaduk.exe,找到行00035E8E。因为此处命令是JNZ(结果不为零或不相等则跳),机器码75,将75替换为JMP的(无条件跳转)机器码EB保存即可。
如果是用OD修改,可以在代码行右键选择二进制编辑,然后复制到可执行文件,保存。

好了,现在重新运行弈城客户端,已经可以免费使用形势判断功能了,大胆押分吧。
自言自语[文章] | 评论(7) | 引用(0) | 阅读(208987)
YC Homepage
2014/12/04 11:27
看不懂哈。
soulch Email
2013/10/25 22:10
弈城网友
大尼娅
2013/09/30 08:28
程序更新了 楼主帮忙看下 断下消息框后运行就无响应啊
我想直接搜索文本 但是搜索不到。。
环法 Email Homepage
2013/06/20 13:07
博客不错,赞
宁波公司注册 Email Homepage
2013/06/16 10:06
分享得不错,顶一个
真水无香
2013/03/19 18:14
看不懂,可以把做好的东东发给我吗?
还有可多开的东东。谢谢了!
QQ:1939418001
hostgator Email Homepage
2013/03/14 09:16
内容分享的好详细,支持一下
分页: 1/1 第一页 1 最后页
发表评论
昵称 [注册]
密码 游客无需密码
网址
电邮
打开HTML 打开UBB 打开表情 隐藏 记住我