首页
社区
课程
招聘
定式详解 V2.0[围棋]去功能限制及爆破注册――菜鸟教学[2]
发表于: 2006-2-8 15:04 12904

定式详解 V2.0[围棋]去功能限制及爆破注册――菜鸟教学[2]

2006-2-8 15:04
12904

【文章标题】: 定式详解 V2.0[围棋]去功能限制及爆破注册――菜鸟教学【2】
【作    者】: laoqian[FCG]
【邮    箱】: -
【主    页】: www.fcgchina.com
【QQ    号】: -
【软件名称】: 定式详解 V2.0 [繁体版]
【下载地址】: http://www.lshuzhi.com,但是作者已经不提供此版本下载,有需要的告诉我!
【加壳方式】: 无
【编写语言】: delphi
【工    具】: OllyDbg1.10 fly, W32DSM
【操作平台】: windows系列
【软件介绍】: 定式详解包含了几乎所有常用定式,带有详细的解说。有了它,查询定式、学习定式将不再是麻烦事。你只要走一手,计算机就会告诉你下一步所有可能的应法,包括不正确的应法(解说中告诉你不正确的原因)。你也可以随时进入研究模式自己再琢磨新的走法,研究时进退自如,免除在传统棋盘上反复移挪棋子之苦。
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】

     狗年就不打狗了,我们再来一个简单的爆破教学吧!
     本文只适合初学者,高手略过!
     前两天下了几次围棋,老是输,主要是定式都不会了,开局就落后!搞的人比较烦,我遂在网上找定式的软件,但都是一些试用功能不全的,比如http://www.lshuzhi.com/joseki.htm上的定式详解 V3.0,使用起来倒是很方便,只是代码不全,无法看到所有定式!
     忽然想起在好4、5年前 ,有人给过我他的繁体英文版,要我破解,据说里面是全的,当时我初入破解,没有搞定,就放下了,没想到一搜硬盘,居然还找到了,那就干他,都是5年前的东西了,lshuzhi不会找我的茬吧?!
    版本是 定式详解 V2.0,其实比3.0差不了许多,围棋定式几百年也变化不了多少,呵呵!

    但他有限制,主要是下面几个:
   
    1.必须在繁体中文或者英文操作系统下使用![显示繁体乱码,别扭吧!]
    2.不注册,无法使用全部,但代码是全的!
   
    由于分析得知,有代码的,。那我们就来爆破他实现,工作很简单,我只是说一下如何入手。其实对于新手破解时最困难的是如何入手,

如何快速的分析,如何最恰当的下断点!

:00484916 8BC0                    mov eax, eax
:00484918 55                      push ebp
:00484919 8BEC                    mov ebp, esp
:0048491B B91C000000              mov ecx, 0000001C

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00484925(C)
|
:00484920 6A00                    push 00000000
:00484922 6A00                    push 00000000
:00484924 49                      dec ecx
:00484925 75F9                    jne 00484920
:00484927 51                      push ecx
:00484928 53                      push ebx
:00484929 56                      push esi
:0048492A 8BD8                    mov ebx, eax
:0048492C 33C0                    xor eax, eax
:0048492E 55                      push ebp
:0048492F 68BF4D4800              push 00484DBF
:00484934 64FF30                  push dword ptr fs:[eax]
:00484937 648920                  mov dword ptr fs:[eax], esp

* Reference To: kernel32.GetSystemDefaultLangID, Ord:0000h   ;判断操作系统语言版本的API
                                  |
:0048493A E89921F8FF              Call 00406AD8
:0048493F 8BD0                    mov edx, eax    ;我们简体版返回是eax=0804,繁体是0404了
:00484941 6683E23F                and dx, 003F    ;dx=4
:00484945 0FB7F0                  movzx esi, ax   ;传0804
:00484948 C1EE0A                  shr esi, 0A     ;si=2
:0048494B 6683FA04                cmp dx, 0004    ;比较 4是中文简体或繁体版,其余还是其他系统
:0048494F 7506                    jne 00484957    ;中文版相等不跳
:00484951 6683FE01                cmp si, 0001    ;比较2是简体,1是繁体
:00484955 7404                    je  0048495B    ;相等跳

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0048494F(C)
|
:00484957 33C0                    xor eax, eax   ;标志置0。来这里是非中文版,即英语版,但是解说是乱码!
:00484959 EB02                    jmp 0048495D   ;跳到标志位A

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00484955(U)
|
:0048495B B001                    mov al, 01   ;标志置1 繁体版

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00484959(U)
|
:0048495D 88832C030000            mov byte ptr [ebx+0000032C], al    ;标志A !!我们这里al=0
:00484963 6683FA04                cmp dx, 0004   ;比较 4是中文简体或繁体版,其余还是其他系统
:00484967 7506                    jne 0048496F   ;中文版相等不跳
:00484969 6683FE02                cmp si, 0002   ;比较2是简体,1是繁体
:0048496D 7404                    je 00484973    ;相等跳

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00484967(C)
|
:0048496F 33C0                    xor eax, eax  ;标志置0。来这里是非中文版,即英语版,但是解说是乱码!
:00484971 EB02                    jmp 00484975  ;跳到标志位B

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0048496D(C)
|
:00484973 B001                    mov al, 01  ;标志置1 简体版

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00484971(U)
|
:00484975 88832D030000            mov byte ptr [ebx+0000032D], al  ;标志B !简体版我们这里al=1
:0048497B 84C0                    test al, al   ;关键比较,
:0048497D 7416                    je 00484995   ;al=0才跳 !我们强制jmp  EB16 
  
* Possible StringData Ref from Code Obj ->"该版本不是简体版,简体版请到http://www.lshuzhi"
                                        ->".com下载"
                                  |;向上看避过这里吧!
:0048497F B8D44D4800              mov eax, 00484DD4
:00484984 E887CDFCFF              call 00451710
:00484989 A11C924900              mov eax, dword ptr [0049921C]
:0048498E 8B00                    mov eax, dword ptr [eax]
:00484990 E8E76AFCFF              call 0044B47C        ;出错提示,*进去看是调用user32.PostQuitMessage

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0048497D(U)
|
:00484995 80BB2D03000000          cmp byte ptr [ebx+0000032D], 00   ;这里=1
:0048499C 750D                    jne 004849AB  ;跳了!!
:0048499E 80BB2C03000000          cmp byte ptr [ebx+0000032C], 00
:004849A5 7504                    jne 004849AB
:004849A7 33C0                    xor eax, eax
:004849A9 EB02                    jmp 004849AD

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0048499C(C), :004849A5(C)
|
:004849AB B001                    mov al, 01

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004849A9(U)
|
:004849AD 88832E030000            mov byte ptr [ebx+0000032E], al  ;标志C !我们这里al=1
:004849B3 B205                    mov dl, 05
:004849B5 8B83D4020000            mov eax, dword ptr [ebx+000002D4]  ;一路走下去出错提示消失
:004849BB E8D871FAFF              call 0042BB98
:004849C0 B201                    mov dl, 01
:004849C2 8B83D8020000            mov eax, dword ptr [ebx+000002D8]
:004849C8 E8CB7AFAFF              call 0042C498
:004849CD 33D2                    xor edx, edx
:004849CF 8B8324030000            mov eax, dword ptr [ebx+00000324]
:004849D5 E8BE7AFAFF              call 0042C498
:004849DA B205                    mov dl, 05
:004849DC 8B83D8020000            mov eax, dword ptr [ebx+000002D8]
:004849E2 E8B171FAFF              call 0042BB98
:004849E7 B201                    mov dl, 01   

* Possible StringData Ref from Code Obj ->"DA"
                                  |
:004849E9 A1C4DF4000              mov eax, dword ptr [0040DFC4]
:004849EE E825E5F7FF              call 00402F18
:004849F3 898330030000            mov dword ptr [ebx+00000330], eax
:004849F9 C78564FFFFFF94000000    mov dword ptr [ebp+FFFFFF64], 00000094
:00484A03 8D8564FFFFFF            lea eax, dword ptr [ebp+FFFFFF64]
:00484A09 50                      push eax

* Reference To: kernel32.GetVersionExA, Ord:0000h
                                  |
:00484A0A E8F120F8FF              Call 00406B00
:00484A0F 83BD74FFFFFF02          cmp dword ptr [ebp+FFFFFF74], 00000002
:00484A16 0F94C0                  sete al
:00484A19 888334030000            mov byte ptr [ebx+00000334], al
:00484A1F 80BB2E03000000          cmp byte ptr [ebx+0000032E], 00
:00484A26 0F84E3010000            je 00484C0F    ;不跳,一路走下去退出!!呵呵,还有暗桩!
:00484A2C 8D8D60FFFFFF            lea ecx, dword ptr [ebp+FFFFFF60]
* Referenced by a CALL at Addresses:
|:00448263   , :00484990   , :00485034   ;发现有3处调用这里,我们一一进去看看!
|
:0044B47C E86303FCFF              call 0040B7E4
:0044B481 84C0                    test al, al
:0044B483 7407                    je 0044B48C
:0044B485 6A00                    push 00000000

* Reference To: user32.PostQuitMessage, Ord:0000h
                                  |
:0044B487 E864BDFBFF              Call 004071F0

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0044B483(C)
|
:0044B48C C3                      ret

在第三处我们看到了:


:00485014 803D648F490000          cmp byte ptr [00498F64], 00
:0048501B 741C                    je 00485039
:0048501D C605648F490000          mov byte ptr [00498F64], 00
:00485024 80B82D03000000          cmp byte ptr [eax+0000032D], 00  ;就是这里,我们前面简体版标志为1,当然下面不跳!!
:0048502B 740C                    je  00485039   ;我们当然要强制跳!改为jmp 
:0048502D A11C924900              mov eax, dword ptr [0049921C]
:00485032 8B00                    mov eax, dword ptr [eax]
:00485034 E84364FCFF              call 0044B47C   ; 调用user32.PostQuitMessage的地方

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0048501B(C), :0048502B(U)
|
:00485039 C3                      ret
:0048503A 8BC0                    mov eax, eax
:004849F9 C78564FFFFFF94000000    mov dword ptr [ebp+FFFFFF64], 00000094
:00484A03 8D8564FFFFFF            lea eax, dword ptr [ebp+FFFFFF64]
:00484A09 50                      push eax

* Reference To: kernel32.GetVersionExA, Ord:0000h
                                  |
:00484A0A E8F120F8FF              Call 00406B00
:00484A0F 83BD74FFFFFF02          cmp dword ptr [ebp+FFFFFF74], 00000002
:00484A16 0F94C0                  sete al
:00484A19 888334030000            mov byte ptr [ebx+00000334], al
:00484A1F 80BB2E03000000          cmp byte ptr [ebx+0000032E], 00
:00484A26 0F84E3010000            je 00484C0F    ;不跳,一路走下去退出!!呵呵,还有暗桩!
:00484A2C 8D8D60FFFFFF            lea ecx, dword ptr [ebp+FFFFFF60]

* Possible StringData Ref from Code Obj ->"定式详解"  
                                  |
:00484A32 BA144E4800              mov edx, 00484E14   ;就是这些地方!明明看到的都是简体的字符串啊!存edx=00484E14
:00484A37 8BC3                    mov eax, ebx
:00484A39 E892FAFFFF              call 004844D0   ;看来是这里可疑,我们进去看看吧!
:00484A3E 8B9560FFFFFF            mov edx, dword ptr [ebp+FFFFFF60]
:00484A44 8BC3                    mov eax, ebx
:00484A46 E8657BFAFF              call 0042C5B0
:00484A4B 8D8D5CFFFFFF            lea ecx, dword ptr [ebp+FFFFFF5C]

* Possible StringData Ref from Code Obj ->"请单击A、B、C等点"
                                  |
:00484A51 BA284E4800              mov edx, 00484E28  ;就是这些地方!明明看到的都是简体的字符串啊!
:00484A56 8BC3                    mov eax, ebx
:00484A58 E873FAFFFF              call 004844D0   ;看来是这里可疑,
:00484A5D 8B955CFFFFFF            mov edx, dword ptr [ebp+FFFFFF5C]
:00484A63 8B83F0020000            mov eax, dword ptr [ebx+000002F0]
:00484A69 E8427BFAFF              call 0042C5B0
:00484A6E 8D8D58FFFFFF            lea ecx, dword ptr [ebp+FFFFFF58]


* Possible StringData Ref from Code Obj ->"解说"
                                  |
:00484A74 BA444E4800              mov edx, 00484E44  ;就是这些地方!明明看到的都是简体的字符串啊!
:00484A79 8BC3                    mov eax, ebx
:00484A7B E850FAFFFF              call 004844D0     ;看来是这里可疑,
:00484A80 8B9558FFFFFF            mov edx, dword ptr [ebp+FFFFFF58]
:00484A86 8B8320030000            mov eax, dword ptr [ebx+00000320]
:00484A8C E81F7BFAFF              call 0042C5B0
:00484A91 8D8D54FFFFFF            lea ecx, dword ptr [ebp+FFFFFF54]
* Referenced by a CALL at Addresses:
|:00482A8C   , :00482AAA   , :00482ACC   , :00482B13   , :00482B57   
|:0048309B   , :004830B9   , :004839E5   , :00483A03   , :00483A25   
|:00483A47   , :00483A69   , :00483CB8   , :00483D03   , :00484A39   
|:00484A58   , :00484A7B   , :00484A9E   , :00484AC1   , :00484AE4   
|:00484B07   , :00484B2A   , :00484B4D   , :00484B73   , :00484B96   
|:00484BC8   , :00484BF9   , :004852FD   , :0048543A   , :0048589C   
|:00485A51   , :00485B70   , :0048639B   , :0048673F   , :00486766   
|
:004844D0 53                      push ebx
:004844D1 56                      push esi
:004844D2 57                      push edi
:004844D3 8BF9                    mov edi, ecx
:004844D5 8BF2                    mov esi, edx  ;明明看到的都是简体的字符串啊!
:004844D7 8BD8                    mov ebx, eax
:004844D9 8BCF                    mov ecx, edi
:004844DB 8BD6                    mov edx, esi   ;下d edx,看到"定式详解" 
:004844DD 8B8318030000            mov eax, dword ptr [ebx+00000318]
:004844E3 E878D2FFFF              call 00481760   ;看来是这里可疑,我们进去看看吧!
:004844E8 5F                      pop edi
:004844E9 5E                      pop esi
:004844EA 5B                      pop ebx
:004844EB C3                      ret

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 7
支持
分享
最新回复 (19)
雪    币: 277
活跃值: (37)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
支持。
不过为什么要从简体转繁体呢?直接繁体不行吗?
2006-2-8 16:59
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
3
他的直接繁体在我的xp里是乱码
2006-2-8 18:15
0
雪    币: 151
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
很想要这个软件,能否提供一下安装文件?谢谢!
mailto:finecoffee@gmail.com
2006-2-8 21:38
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
5
好的,明天上班我找个地方放出来,这是2002年的东西了!
2006-2-8 22:13
0
雪    币: 222
活跃值: (40)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
6
好文,支持
2006-2-8 22:13
0
雪    币: 301
活跃值: (300)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
7
辛苦,下载学习
2006-2-8 23:35
0
雪    币: 151
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谢谢了,我也喜欢下棋,尽管比较菜:)
2006-2-8 23:44
0
雪    币: 260
活跃值: (81)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
围棋下的不行,狗年狗有福了
2006-2-9 00:41
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
10
http://free.ys168.com/?laoqian
原版下载地址!破解补丁恕不提供,请谅解!
解压密码:fcg

此版本的数据与3.0没什么太大的区别,只是3.0的界面好了些,操作好了一些。按照我的方法就可以使用!
2006-2-9 10:04
0
雪    币: 277
活跃值: (37)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
最初由 laoqian 发布
他的直接繁体在我的xp里是乱码

我的意思是,这个程序为什么显示繁体要从简体转换呢?直接繁体不就行了吗?
2006-2-9 13:06
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
12
呵呵,这就是他当初不让你在中国简体系统下用的一个手段而已,你解说显示是乱码,怎么用?
2006-2-9 14:13
0
雪    币: 151
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
收到了,谢谢!!
2006-2-9 15:12
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
开启密码是多少啊?
2006-2-9 20:16
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
thanks a lot ,已按法搞定.
2006-2-10 08:11
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
16
最初由 yujinjianx 发布
开启密码是多少啊?

不用开启的!
2006-2-10 21:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
我很想这个。sphfy1968@gmail.com
2006-3-30 19:30
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
好文,强文!学习了!以前也玩过!
2006-3-30 20:00
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
19
看不懂啊!!!!!!!!!!!!!
2006-3-31 15:27
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
要密码。开启的密码是什么啊?请告诉大家
2006-4-3 14:22
0
游客
登录 | 注册 方可回帖
返回
//