- UID
- 34376
注册时间2007-8-15
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
【破文标题】FastTV网络电视/:018 钻石版/:018 注册码追踪
【破文作者】云飘飘
【作者邮箱】
【作者主页】
【破解工具】PEiD OD DeDe
【破解平台】Win2000
【软件名称】FastTV网络电视[贵宾钻石版] 1.3.3.7
【软件大小】595 KB
【原版下载】http://86516.onlinedown.net/soft/44309.htm
【保护方式】一机一码 重启验证
【软件简介】 “FastTV网络电视”是目前最优良的一款播放全球卫星电视,热播电视剧,精典电影的共享软件。 CCTV-5,卫视体育,Goal-TV,NBA直播,足球直播,泰星UBC,各地市体育台等,电影台,电视剧频道,卫星电视节目,包括国内(中央,地方各省市卫星电视节目等),港澳台(凤凰卫视,华娱卫视,星空卫视,阳光卫视,[V]音乐台等),国外(CNN, NHK ABC,BBC,ESPN,TVB,韩国等)系列节目,一套“FastTV网络电视”尽可打尽!
------------------------------------------------------------------------
【破解过程】最近出了趟远门,好久没来冒泡,今天来凑凑热闹!哈哈......
在出这趟远门之前,我就下了个FastTV网络电视想破掉,可惜总是有心无力!今天干脆下了个最新版本(07年8月30日更新),
居然瞎猫撞上死老鼠了,于是有了下文!
安装软件后,用PEiD查壳,是这个弱壳ASPack 2.12 -> Alexey Solodovnikov!用ESP定律即可轻松搞定!
脱壳后再查,Borland Delphi 6.0 - 7.0。试一下注册,随便填,竟然没反应!有点麻烦......
用OD载入,在注册错误或成功处下断点,郁闷得很,断不下来!
想起了DeDe,专门对付Delphi及BC++的。用这个工具打开程序,在窗体栏中发现Tfm_reg,点点它,右侧窗口有:
- object Bt_ok: TSpeedButton
- Left = 344
- Top = 112
- Width = 81
- Height = 22
- Cursor = crHandPoint
- Hint = 验证注册码是否有效
- Caption = 注册认证
- Glyph.Data = {
- DE010000424DDE01000000000000760000002800000024000000120000000100
- 0400000000006801000000000000000000001000000000000000000000000000
- 80000080000000808000800000008000800080800000C0C0C000808080000000
- FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
- 3333333333333333333333330000333333333333333333333333F33333333333
- 00003333344333333333333333388F3333333333000033334224333333333333
- 338338F3333333330000333422224333333333333833338F3333333300003342
- 222224333333333383333338F3333333000034222A22224333333338F338F333
- 8F33333300003222A3A2224333333338F3838F338F33333300003A2A333A2224
- 33333338F83338F338F33333000033A33333A222433333338333338F338F3333
- 0000333333333A222433333333333338F338F33300003333333333A222433333
- 333333338F338F33000033333333333A222433333333333338F338F300003333
- 33333333A222433333333333338F338F00003333333333333A22433333333333
- 3338F38F000033333333333333A223333333333333338F830000333333333333
- 333A333333333333333338330000333333333333333333333333333333333333
- 0000}
- NumGlyphs = 2
- ParentShowHint = False
- ShowHint = True
- OnClick = Bt_okClick
- end
复制代码
这无疑是【注册认证】按钮的相关信息。再查看【过程】 【事件】,在Bt_okClick的右边找到其RVA值为00510D40。
好了,到OD中在00510D40行下断点,运行程序(注意别忘了隐藏OD,这个程序好像反OD调试)后,来到注册窗口,输入用户名及注册码(最好做个记录),点击【注册认证】,程序断下来了。
只要断下来就行!程序怎么运算我们用不着太关心,先放一放吧......
采用超级字符串搜索,会有【标准版】、【vip版】、【钻石版】,找到相应的汇编代码行,然后顺藤摸瓜,往上找找,都可以来到这个地方:
- 0050A935 |. E8 A69DEFFF call 004046E0
- 0050A93A |. 83E8 0A sub eax, 0A ; Switch (cases A..10) 注册码类型分支
- 0050A93D |. 74 62 je short 0050A9A1 ; [标准版] 10
- 0050A93F |. 83E8 02 sub eax, 2
- 0050A942 |. 74 17 je short 0050A95B ; 试用 12
- 0050A944 |. 83E8 02 sub eax, 2
- 0050A947 |. 0F84 18010000 je 0050AA65 ; [vip版] 14
- 0050A94D |. 83E8 02 sub eax, 2
- 0050A950 |. 0F84 D3010000 je 0050AB29 ; [钻石版] 16
- 0050A956 |. E9 A5030000 jmp 0050AD00 ; 试用 其它数值
复制代码
先仔细看看程序,各个跳转各有其用途。在程序中,我已经加上了注释。这几种版本,当然数【钻石版】最讨人喜欢了!
好的,我们的目标就是【钻石版】,所以在0050A935这一行下断点,清除前面下的断点(过河拆桥了,^_^)。按一下F9,可能还需要几次SHIFT+F9的协助,程序会停到这儿,把寄存器窗口的EAX值改成10(也就是十进制的16),单步往下走,好的,程序跳到这里来了:
- 0050AB29 |> \68 C0B15100 push 0051B1C0 ; Case 10 of switch 0050A93A
- 0050AB2E |. 8D45 8C lea eax, dword ptr [ebp-74]
- 0050AB31 |. 50 push eax
- 0050AB32 |. B9 06000000 mov ecx, 6 ; 准备了=====^_^精彩好戏要上演了^_^=====
- 0050AB37 |. BA 08000000 mov edx, 8
- 0050AB3C |. 8B45 FC mov eax, dword ptr [ebp-4] ; 密钥6e8174946990cb7174366caa8b452649
- 0050AB3F |. E8 FC9DEFFF call 00404940 ; 从第8位起连续取6个字符
- 0050AB44 |. FF75 8C push dword ptr [ebp-74] ; 46990c
- 0050AB47 |. 8D45 88 lea eax, dword ptr [ebp-78]
- 0050AB4A |. 50 push eax
- 0050AB4B |. B9 07000000 mov ecx, 7
- 0050AB50 |. BA 12000000 mov edx, 12
- 0050AB55 |. 8B45 FC mov eax, dword ptr [ebp-4]
- 0050AB58 |. E8 E39DEFFF call 00404940 ; 从第18位起连续取7个字符
- 0050AB5D |. FF75 88 push dword ptr [ebp-78] ; 4366caa
- 0050AB60 |. 8D45 84 lea eax, dword ptr [ebp-7C]
- 0050AB63 |. 50 push eax
- 0050AB64 |. B9 03000000 mov ecx, 3
- 0050AB69 |. BA 03000000 mov edx, 3
- 0050AB6E |. 8B45 FC mov eax, dword ptr [ebp-4]
- 0050AB71 |. E8 CA9DEFFF call 00404940 ; 从第13位起连续取3个字符
- 0050AB76 |. FF75 84 push dword ptr [ebp-7C] ; 817
- 0050AB79 |. 8D45 80 lea eax, dword ptr [ebp-80]
- 0050AB7C |. 50 push eax
- 0050AB7D |. B9 03000000 mov ecx, 3
- 0050AB82 |. BA 0D000000 mov edx, 0D
- 0050AB87 |. 8B45 FC mov eax, dword ptr [ebp-4]
- 0050AB8A |. E8 B19DEFFF call 00404940 ; 从第13位起连续取3个字符
- 0050AB8F |. FF75 80 push dword ptr [ebp-80] ; cb7
- 0050AB92 |. 8D85 7CFFFFFF lea eax, dword ptr [ebp-84]
- 0050AB98 |. 50 push eax
- 0050AB99 |. B9 05000000 mov ecx, 5
- 0050AB9E |. BA 16000000 mov edx, 16
- 0050ABA3 |. 8B45 FC mov eax, dword ptr [ebp-4]
- 0050ABA6 |. E8 959DEFFF call 00404940 ; 从第22位起连续取5个字符
- 0050ABAB |. FFB5 7CFFFFFF push dword ptr [ebp-84] ; caa8b
- 0050ABB1 |. 8D45 90 lea eax, dword ptr [ebp-70]
- 0050ABB4 |. BA 05000000 mov edx, 5
- 0050ABB9 |. E8 E29BEFFF call 004047A0 ; 将以上5部分串接起来
- 0050ABBE |. 8B45 90 mov eax, dword ptr [ebp-70] ; 46990c4366caa817cb7caa8b
- 0050ABC1 |. 8D55 94 lea edx, dword ptr [ebp-6C]
- 0050ABC4 |. E8 732FF7FF call 0047DB3C
复制代码
看到我标的值了吧?!6e8174946990cb7174366caa8b452649,这个是正确注册码的种子,每个机器会不一样的,
取其中的5段,凑起来,就生成了46990c4366caa817cb7caa8b!
估计是正确的注册码,复制一下,启动程序(脱过壳的,或者未脱壳的都行),输入用户名(没忘吧)和现在的这串数字,程序没个提示就关了,太不友好了。程序采用的是重启验证。
重新启动程序,ok,顶端标题上出现了【钻石版】字样,大功告成了,偷着乐去吧......
------------------------------------------------------------------------
【破解总结】程序停在这里的时候,0050A93D行,一定要让eax变成十六进制的10,否则,就成不了[钻石版]!
第一次用DeDe,居然显其功效了,运气真好!!
其实做注册机也很简单,只要看懂了,就知道从何下手,小CASE而已,呵呵!!!
再次强调简要算法:
首先根据机器码和用户名生成注册码密钥; 6e8174946990cb7174366caa8b452649
然后从第8位起连续取6个字符, 46990c
再从第18位起连续取7个字符, 4366caa
从第3位起连续取3个字符, 817
从第13位起连续取3个字符, cb7
从第22位起连续取5个字符, caa8b
最后将以上5部分串接起来。 46990c4366caa817cb7caa8b
------------------------------------------------------------------------
【版权声明】本文纯属技术交流, 转载请注明作者信息并保持文章的完整, 谢谢!
[ 本帖最后由 云飘飘 于 2007-9-4 07:39 编辑 ] |
评分
-
查看全部评分
|