• 标 题:加入BCG的申请文章之三 (3千字)
  • 作 者:NYDoll
  • 时 间:2001-5-6 15:25:12
  • 链 接:http://bbs.pediy.com

破解  汉字通KanjiWEB  手记

作者: 娃娃(NYDoll)

          软件简介:『汉字通』 "KanjiWEB”提供中文简体字、中文繁体字、日文三种藏珠字集描边字型,在任何视窗环境下均可显示,并且不论任何解析度的印表机,都可印出没有锯齿状、漂亮的汉字。  是一个小巧好用的多内码转换器

破解工具: W32Dasm(白金修正版) 这个版本是Robot兄给我的,在次表示感谢    UltraEdit(目前为止我最喜欢的十六进制编辑器)


---------------------------------------------------------------------

这个软件是我初学破解时的联手东东,也是我第一个破解成功的作品所以我很珍惜它,一直都备份好几份,放在我的硬盘中,今天我写出它的 破解方法,表示对我的Crack生涯的怀念,:D

-----------
这个软件很怪,到现在我仍然不知道它在何处比对注册码,所以只能暴力破解了
用W32Dasm反汇编程序,然后查找出错时的对话框“Sorry!Error SERIAL”,来到:


* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0001.38F4(U)
|
:0001.3944 C78636FE0100          mov word ptr [bp-01CA], 0001
:0001.394A FF760E                push word ptr [bp+0E]

* Possible StringData Ref from Data Seg 004 ->"SORRY !! ERROR SERIAL NO"  《---- 光标停在这里
                                  |
:0001.394D B8F508                mov ax, 08F5
:0001.3950 8CDA                  mov dx, ds
:0001.3952 52                    push dx
:0001.3953 50                    push ax

* Possible StringData Ref from Data Seg 004 ->"ERROR !!"
                                  |
:0001.3954 B8EC08                mov ax, 08EC
:0001.3957 8CDA                  mov dx, ds
:0001.3959 52                    push dx
:0001.395A 50                    push ax
:0001.395B 6A00                  push 0000
:0001.395D 9AD7020000            call USER.MESSAGEBOX


发现这个出错对话框其实是从 |:0001.38F4  跳到这里的,于是来到 |:0001.38F4:


* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0001.38BE(U)
|
:0001.38D1 83BE38FE09            cmp word ptr [bp+FE38], 0009
:0001.38D6 7CE8                  jl 38C0
:0001.38D8 8D86BCFE              lea ax, [bp+FEBC]
:0001.38DC 8CD2                  mov dx, ss
:0001.38DE 52                    push dx
:0001.38DF 50                    push ax
:0001.38E0 8D863AFE              lea ax, [bp+FE3A]
:0001.38E4 8CD2                  mov dx, ss
:0001.38E6 52                    push dx
:0001.38E7 50                    push ax
:0001.38E8 9A7C77B338            call 0001.777C
:0001.38ED 83C408                add sp, 0008
:0001.38F0 23C0                  and ax, ax
:0001.38F2 7403                  je 38F7                        《---  将这里改为 JMP 就可以注册成功了!!
:0001.38F4 E94D00                jmp 3944                《----  如果程序运行到这里,则注册失败!!


        结果,用UltraEdit打开MULTWORD.EXE,将23 C0 74 03 E9 4D 改为 23 C0 75 03 E9 4D 再次注册,重新运行即可发现运行成功了,但是它的注册信息存放到哪里呢?? 注册表?-No 初始化文件?-No    其实它在注册成功后改动安装目录下的一个名为MULTFONT.DLL这个文件,具体如下:

            用UltraEdit打开这个软件注册前和注册后的MULTFONT.DLL,通过比较可以发现:

原版:      00019140h:06 05 D1 07 FF B7 C1 CA C9 D0 DE B3 D0 D2 00 29
                  00019150h:0E 35 14 00 00 00 00 00 00 41 4E 44 59 1E

破解后:    00019140h:15 02 66 19 FF B7 C2 D7 C9 D0 D0 BE D2 DC 00 10
            00019150h:0E 24 06 00 00 00 00 00 00 41 4E 44 59 1E



        发现了这一点之后,发布它的破解成果就容易多了,用WinPatch做一个补丁程序就解决了,呵呵




------  娃娃(NYDoll) ----  E-Mail:NYDoll@Etang.com  ----- QQ:15110296  -------