“爆破”天音总管2.15版的一点体会(9千字)
天音总管推出已有很长一段时间了,而且也有高手制作出了破解版,要拣现成的简单得很,但对我等初学破解的人来说,是没有多大帮助的,为此,我就下了个未注册版来练习练习,藉此提高自己的水平,不怕各位见笑,因为在破解的过程中,我始终无法找到正确的注册码,只有采取“爆破”,是“爆破”而不是“暴破”(差点用上TNT或是黑索金了),可想而知,破解它的过程对我是多难,什么I/O错误,非法操作、系统死机等等,都在破解中发生了,好在破解成功,没有枉费我的一番努力。凭心而论,这款软件做得还过得去,主要用来管理你硬盘上的文本资料、图片、MP3,HTML等,并带有一个MP3播放器(只能播放MP3格式),但实用价值并不大,启动过程太慢,让人实在不能忍受,不过因为其界面设计十分美观,半透明的对话框看起来好顺眼,就把它继续留在硬盘上了。
使用工具
1、W32DASM8.93Gold
2、Ultraedit8.0
3、Unpack1.0.1
4、Trw2000 1.23或Softice4.05可用可不用,随你意了
爆破过程:
该软件是用Aspack加的壳,要脱壳十分简单,用UnPack就行,我用的是由阿郎汉化的1.0.1版,按解压就成了,然后把程序主文件wininfo.exe复制一副本,用W32DASM8.93反编译副本,用UE8.0对原程序进行修改。
很幸运,用W32DASM8.93反编译后,通过串式参考找到以下提示字符:
"本软件受权给: %s%s注册码: %s"-----有经验的一看就知道,这是出现在关于对话框中的
"感谢您注册天音总管!"----------注册成功提示
"试用期已过,您必须注册才能使用。"---过了30天未注册就会蹦出来
"天音总管 - "-----------标题栏上的东西,看后面的小短杠,跟在它后面的就是
当前打开的文件名XXX.info,再后就是下面的30天试用期
"注册码不正确."-------------输错了注册码就是它出来与你约会了
"30天试用期"---------------上面已说了
既然有这么多的提示,应该好破了,首先让它注册成功吧,经分析发现,该软件在判断注册成功与否时,都调用了同一个call0051c800,只不过在call前面放入了不同的内容,如下:
:00553706 8B06mov eax, dword ptr
:00553708 E83F86FFFFcall 0054BD4C
:0055370D 8B06mov eax, dword ptr
:0055370F 80B85C01000000cmp byte ptr , 00
:00553716 7424je 0055373C-------------将此处74改为75就不用跳到注册不成功的地方去了
:00553718 66A198375500mov ax, word ptr
:0055371E 50push eax
:0055371F 6A00push 00000000
:00553721 A1682F5600mov eax, dword ptr
:00553726 8B00mov eax, dword ptr
:00553728 8B8030070000mov eax, dword ptr
:0055372E B102mov cl, 02
* Possible StringData Ref from Code Obj ->"感谢您注册天音总管!"
|
:00553730 BAA4375500mov edx, 005537A4
~~~~~~~~---这里面放的就是感谢您注册
天音总管的字符串
:00553735 E8C690FCFFcall 0051C800
~~~~~~~~------此call后就注册成功了
:0055373A EB2Ajmp 00553766
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00553716(C)
|
:0055373C 33C0xor eax, eax
:0055373E 898334020000mov dword ptr , eax
:00553744 66A198375500mov ax, word ptr
:0055374A 50push eax
:0055374B 6A00push 00000000
:0055374D A1682F5600mov eax, dword ptr
:00553752 8B00mov eax, dword ptr
:00553754 8B8030070000mov eax, dword ptr
:0055375A B101mov cl, 01
* Possible StringData Ref from Code Obj ->"注册码不正确."
|
:0055375C BAC0375500mov edx, 005537C0----这里放的就是注册码不正确的字符串
~~~~~~~~
:00553761 E89A90FCFFcall 0051C800----此call过后就over了
~~~~~~~~
按上述方法改后,只要按注册就成功,过了30天蹦出注册提示框后也一样,但标题栏上的30天试用期,时间过期后的注册框蹦出,关于菜单中的注册及关于对话框中的注册按钮都还在,并且在关于对话框中仍有“试用版,未注册”字样,要去掉注册按钮,我是转来转去,绕地球转了两圈,才终于找到了要修改的地方,其实就是在"试用期已过,您必须注册才能使用。"前面,如下:
* Possible StringData Ref from Code Obj ->"?D"
|
:00557210 A170345500mov eax, dword ptr
:00557215 E896A8EFFFcall 00451AB0
:0055721A 8B1544345600mov edx, dword ptr
:00557220 8902mov dword ptr , eax
* Reference To: kernel32.GetTickCount, Ord:0000h
|
:00557222 E82D0EEBFFCall 00408054
:00557227 8BD8mov ebx, eax
:00557229 EB0Cjmp 00557237
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00557243(C)
|
:0055722B A1F4315600mov eax, dword ptr
:00557230 8B00mov eax, dword ptr
:00557232 E88116F0FFcall 004588B8
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00557229(U)
|
* Reference To: kernel32.GetTickCount, Ord:0000h
|
:00557237 E8180EEBFFCall 00408054
:0055723C 2BC3sub eax, ebx
:0055723E 3DE8030000cmp eax, 000003E8
:00557243 72E6jb 0055722B----这里我改过,改了就死机,不知为啥
:00557245 8D55F4lea edx, dword ptr
:00557248 A144345600mov eax, dword ptr
:0055724D 8B00mov eax, dword ptr
:0055724F 8B98D0020000mov ebx, dword ptr
:00557255 8BC3mov eax, ebx
:00557257 E81C2EEEFFcall 0043A078
:0055725C 8B4DF4mov ecx, dword ptr
:0055725F 8D45F8lea eax, dword ptr
* Possible StringData Ref from Code Obj ->"试用期已过,您必须注册才能使用。"
|
:00557262 BAE4725500mov edx, 005572E4
:00557267 E848CFEAFFcall 004041B4----此call就是出试用期已过...的框
:0055726C 8B55F8mov edx, dword ptr
:0055726F A144345600mov eax, dword ptr
:00557274 8BC3mov eax, ebx
:00557276 E82D2EEEFFcall 0043A0A8
:0055727B A144345600mov eax, dword ptr
:00557280 8B00mov eax, dword ptr
:00557282 8B10mov edx, dword ptr
:00557284 FF92D8000000call dword ptr
:0055728A 83F802cmp eax, 00000002
:0055728D 750Cjne 0055729B
:0055728F A1F4315600mov eax, dword ptr
:00557294 8B00mov eax, dword ptr
:00557296 E87D18F0FFcall 00458B18
上面几段代码经分析都没有符合条件的跳转,有的跳转一改就死,退出天音总额时报I/O错误,退不出,只有按CtrlAlt+Del才行,故只有再往上走,找到如下:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:005571AB(C)
|
:005571B4 8B06mov eax, dword ptr
:005571B6 80B85C01000000cmp byte ptr , 00
:005571BD 7438je 005571F7-----这里就是我终于找到的地方,改74为75,关于 菜单中的注册及关于对话框中的注册按钮就不 会出现了
:005571BF 8D83D0070000lea eax, dword ptr
:005571C5 8B16mov edx, dword ptr
:005571C7 8B9254010000mov edx, dword ptr
:005571CD E86ACDEAFFcall 00403F3C
:005571D2 8D83D4070000lea eax, dword ptr
:005571D8 8B16mov edx, dword ptr
:005571DA 8B9258010000mov edx, dword ptr
:005571E0 E857CDEAFFcall 00403F3C
:005571E5 33D2xor edx, edx
:005571E7 8B8328040000mov eax, dword ptr
:005571ED E8AAEBEEFFcall 00445D9C
:005571F2 E9B0000000jmp 005572A7
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:005571BD(C)
|
:005571F7 8B06mov eax, dword ptr
:005571F9 E88249FFFFcall 0054BB80
:005571FE 84C0test al, al
:00557200 0F84A1000000je 005572A7--如果从:005571BD处直接跳到此的话,注册按钮仍会 存在,并会出现过期注册提示框
:00557206 8B0DF4315600mov ecx, dword ptr
:0055720C 8B09mov ecx, dword ptr
:0055720E B201mov dl, 01
其它的地方修改就简要说一下:
在:0054777c处 改 838007000000 为 838007000001 则标题栏内不会出现30天试用期的字样了
在:0054ed91处 改 838007000000 为 838007000001 则关于对话框内不会出试用期,未注册的字样,取而代之的是“软件受权给 注册码 ”,当然其后是没有内容的。
改完后,你就是正版用户了,再用一款压缩工具进行压缩,文件就又只有600K多了,我用了UPX1.08,不影响使用,只可惜对话框内不会出现你的名字,这就是爆破的后果。
有谁能告诉我怎样找到注册码吗? 使用工具
1、W32DASM8.93Gold
2、Ultraedit8.0
3、Unpack1.0.1
4、Trw2000 1.23或Softice4.05可用可不用,随你意了~ 怎么不用OD啊?记得以前才用Trw2000 1.23或Softice4.05现在一般用OD 转帖吧。。。。
页:
[1]