新华字典词典破解手记[网络技术]
本文“新华字典词典破解手记[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
文/图 KYO
===================================
由于女朋友要学习汉语言文学专业,因此她让我帮她找一个汉语字典的软件.我找了半天找到一个新华字典词典V2007 build 05.15,恰好符合我女朋友的要求,但是下载安装利用时才发现,这软件是需求注册的,不然会有一些限制.注册费30元,固然不多,可我就是不想掏钱(我属于铁公鸡一类的人,呵呵),于是就有了下文.
废话不多说,开始进入正题.安装目录里的xhzd.exe就是程序主文件,还是先用PEiD查一下基本情形吧.得到壳是ASPack 2.12 -> Alexey Solodovnikov,是个紧缩壳,用ESP定律大概工具都可以很便利脱掉.在这里我利用一个关于普通的紧缩壳都有效的脱壳工具来脱,趁便把这个工具同享给大家吧,如图1所示.脱壳后的文件名自动改成New_xhzd.exe.再用PEiD查看可得知程序编写语言是Borland Delphi 6.0-7.0.
图1
之后直接用OD载入,我普通喜好利用OD插件的万能断点来下断,在考证码框随便输入327(考证码只能是数字),注册码框输入123567,点击注册后,经过由系管辖空返回到用户领空,就断在了00544536处,代码以下.
00544536 . 8B85 A8FEFFFF MOV EAX,DWORD PTR SS:[EBP-158]
0054453C . 50 PUSH EAX
0054453D . 8D95 A0FEFFFF LEA EDX,DWORD PTR SS:[EBP-160]
00544543 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
00544546 . 8B80 74040000 MOV EAX,DWORD PTR DS:[EAX+474]
0054454C . E8 CB30F0FF CALL New_xhzd.0044761C
;取考证码
00544551 . 8B85 A0FEFFFF MOV EAX,DWORD PTR SS:[EBP-160]
00544557 . E8 6052ECFF CALL New_xhzd.004097BC
;考证码转为16进制
0054455C . 05 83030000 ADD EAX,383 ;考证加383
00544561 . 8D95 A4FEFFFF LEA EDX,DWORD PTR SS:[EBP-15C]
00544567 . E8 9CFEFFFF CALL New_xhzd.00544408
;关键CALL要F7进去
0054456C . 8B95 A4FEFFFF MOV EDX,DWORD PTR SS:[EBP-15C]
00544572 . 58 POP EAX
00544573 . E8 740AECFF CALL New_xhzd.00404FEC
;输入的假注册码与考证码,经过CALL 00544408后得出的数对比
00544578 . 0F85 48010000 JNZ New_xhzd.005446C6
;假如不相等就跳向失利
从我上面的注释大家可以看出来,该程序的算法流程已经很明了了.设考证码为user,那么在进入call 0054408之前,user=user+383.目前F7进去00544408看代码.
00544425 |. 81F3 F1250B00 XOR EBX,0B25F1
;user=user xor 0B25F1
0054442B |. 8BC3 MOV EAX,EBX
0054442D |. 33D2 XOR EDX,EDX
0054442F |. 52 PUSH EDX
00544430 |. 50 PUSH EAX
00544431 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
00544434 |. E8 4F53ECFF CALL New_xhzd.00409788
;把user转为10进制
00544439 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0054443C |. 0FB600 MOVZX EAX,BYTE PTR DS:[EAX]
0054443F |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
00544442 |. 0FB652 01 MOVZX EDX,BYTE PTR DS:[EDX+1]
00544446 |. 03C2 ADD EAX,EDX
;取user第一位与user第二位相加=k1
00544448 |. B9 05000000 MOV ECX,5
0054444D |. 99 CDQ
0054444E |. F7F9 IDIV ECX
00544450 |. 80C2 34 ADD DL,34
;(k1 mod 5)+34=sn1
00544453 |. 8855 F8 MOV BYTE PTR SS:[EBP-8],DL
00544456 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
00544459 |. 0FB640 02 MOVZX EAX,BYTE PTR DS:[EAX+2]
0054445D |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
00544460 |. 0FB652 03 MOVZX EDX,BYTE PTR DS:[EDX+3]
00544464 |. 03C2 ADD EAX,EDX
;取user第二位与user第三位相加=k2
00544466 |. B9 05000000 MOV ECX,5
0054446B |. 99 CDQ
0054446C |. F7F9 IDIV ECX
0054446E |. 8BDA MOV EBX,EDX
00544470 |. 80C3 33 ADD BL,33
; (k2 mod 5)+33=sn2
00544473 |. 885D F9 MOV BYTE PTR SS:[EBP-7],BL
00544476 |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
00544479 |. 87747.net5 F8 MOV DL,BYTE PTR SS:[EBP-8]
0054447C |. E8 4F09ECFF CALL New_xhzd.00404DD0
00544481 |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
00544484 |. 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]
00544487 |. B9 1B000000 MOV ECX,1B
0054448C |. E8 F70CECFF CALL New_xhzd.00405188
00544491 |. 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
00544494 |. 8BD3 MOV EDX,EBX
00544496 |. E8 3509ECFF CALL New_xhzd.00404DD0
0054449B |. 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]
0054449E |. 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]
005444A1 |. B9 19000000 MOV ECX,19
005444A6 |. E8 DD0CECFF CALL New_xhzd.00405188
;衔接user、sn1、sn2即为注册码
005444AB |. 8BC6 MOV EAX,ESI
005444AD |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
005444B0 |. E8 8F07ECFF CALL New_xhzd.00404C44
通过我上面的注释,想必大家都很懂得了,这个算法非常简单,因此我就直接给出注册机代码了,用VB编写,代码以下.
Private Sub Command1_Click()
user1 = Text1.Text
i = (user1 +&H383) Xor &HB25F1
k = Chr(((Asc(Mid(i, 1, 1)) + Asc(Mid(i, 2, 1))) Mod 5) + &H34)
k1 = Chr(((Asc(Mid(i, 3, 1)) + Asc(Mid(i, 4, 1))) Mod 5) + &H33)
Text2.Text = i & k & k1
End Sub
目前解析完了,用编译好的注册机生成一个注册码试试吧,如图2所示,可以看到生成的注册码顺利注册成功了.
以上是“新华字典词典破解手记[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:浅谈JScript加密
- ·下一篇文章:Win32汇编初探内存补钉GUI技术
- ·中查找“新华字典词典破解手记”更多相关内容
- ·中查找“新华字典词典破解手记”更多相关内容