飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 23849|回复: 58

[原创] FastTV网络电视钻石版注册码追踪

[复制链接]

该用户从未签到

发表于 2007-9-3 16:45:05 | 显示全部楼层 |阅读模式
【破文标题】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,点点它,右侧窗口有:

  1.     object Bt_ok: TSpeedButton
  2.       Left = 344
  3.       Top = 112
  4.       Width = 81
  5.       Height = 22
  6.       Cursor = crHandPoint
  7.       Hint = 验证注册码是否有效
  8.       Caption = 注册认证
  9.       Glyph.Data = {
  10.         DE010000424DDE01000000000000760000002800000024000000120000000100
  11.         0400000000006801000000000000000000001000000000000000000000000000
  12.         80000080000000808000800000008000800080800000C0C0C000808080000000
  13.         FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
  14.         3333333333333333333333330000333333333333333333333333F33333333333
  15.         00003333344333333333333333388F3333333333000033334224333333333333
  16.         338338F3333333330000333422224333333333333833338F3333333300003342
  17.         222224333333333383333338F3333333000034222A22224333333338F338F333
  18.         8F33333300003222A3A2224333333338F3838F338F33333300003A2A333A2224
  19.         33333338F83338F338F33333000033A33333A222433333338333338F338F3333
  20.         0000333333333A222433333333333338F338F33300003333333333A222433333
  21.         333333338F338F33000033333333333A222433333333333338F338F300003333
  22.         33333333A222433333333333338F338F00003333333333333A22433333333333
  23.         3338F38F000033333333333333A223333333333333338F830000333333333333
  24.         333A333333333333333338330000333333333333333333333333333333333333
  25.         0000}
  26.       NumGlyphs = 2
  27.       ParentShowHint = False
  28.       ShowHint = True
  29.       OnClick = Bt_okClick
  30.     end
复制代码


这无疑是【注册认证】按钮的相关信息。再查看【过程】 【事件】,在Bt_okClick的右边找到其RVA值为00510D40。

好了,到OD中在00510D40行下断点,运行程序(注意别忘了隐藏OD,这个程序好像反OD调试)后,来到注册窗口,输入用户名及注册码(最好做个记录),点击【注册认证】,程序断下来了。

只要断下来就行!程序怎么运算我们用不着太关心,先放一放吧......

采用超级字符串搜索,会有【标准版】、【vip版】、【钻石版】,找到相应的汇编代码行,然后顺藤摸瓜,往上找找,都可以来到这个地方:

  1. 0050A935  |.  E8 A69DEFFF   call    004046E0
  2. 0050A93A  |.  83E8 0A       sub     eax, 0A                          ;  Switch (cases A..10)  注册码类型分支
  3. 0050A93D  |.  74 62         je      short 0050A9A1                   ;  [标准版]  10
  4. 0050A93F  |.  83E8 02       sub     eax, 2
  5. 0050A942  |.  74 17         je      short 0050A95B                   ;  试用  12
  6. 0050A944  |.  83E8 02       sub     eax, 2
  7. 0050A947  |.  0F84 18010000 je      0050AA65                         ;  [vip版]  14
  8. 0050A94D  |.  83E8 02       sub     eax, 2
  9. 0050A950  |.  0F84 D3010000 je      0050AB29                         ;  [钻石版]  16
  10. 0050A956  |.  E9 A5030000   jmp     0050AD00                         ;  试用  其它数值
复制代码

先仔细看看程序,各个跳转各有其用途。在程序中,我已经加上了注释。这几种版本,当然数【钻石版】最讨人喜欢了!

好的,我们的目标就是【钻石版】,所以在0050A935这一行下断点,清除前面下的断点(过河拆桥了,^_^)。按一下F9,可能还需要几次SHIFT+F9的协助,程序会停到这儿,把寄存器窗口的EAX值改成10(也就是十进制的16),单步往下走,好的,程序跳到这里来了:

  1. 0050AB29  |> \68 C0B15100   push    0051B1C0                         ;  Case 10 of switch 0050A93A
  2. 0050AB2E  |.  8D45 8C       lea     eax, dword ptr [ebp-74]
  3. 0050AB31  |.  50            push    eax
  4. 0050AB32  |.  B9 06000000   mov     ecx, 6                           ;  准备了=====^_^精彩好戏要上演了^_^=====
  5. 0050AB37  |.  BA 08000000   mov     edx, 8
  6. 0050AB3C  |.  8B45 FC       mov     eax, dword ptr [ebp-4]           ;  密钥6e8174946990cb7174366caa8b452649
  7. 0050AB3F  |.  E8 FC9DEFFF   call    00404940                         ;  从第8位起连续取6个字符
  8. 0050AB44  |.  FF75 8C       push    dword ptr [ebp-74]               ;  46990c
  9. 0050AB47  |.  8D45 88       lea     eax, dword ptr [ebp-78]
  10. 0050AB4A  |.  50            push    eax
  11. 0050AB4B  |.  B9 07000000   mov     ecx, 7
  12. 0050AB50  |.  BA 12000000   mov     edx, 12
  13. 0050AB55  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
  14. 0050AB58  |.  E8 E39DEFFF   call    00404940                          ;  从第18位起连续取7个字符
  15. 0050AB5D  |.  FF75 88       push    dword ptr [ebp-78]                ;  4366caa
  16. 0050AB60  |.  8D45 84       lea     eax, dword ptr [ebp-7C]
  17. 0050AB63  |.  50            push    eax
  18. 0050AB64  |.  B9 03000000   mov     ecx, 3
  19. 0050AB69  |.  BA 03000000   mov     edx, 3
  20. 0050AB6E  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
  21. 0050AB71  |.  E8 CA9DEFFF   call    00404940                          ;  从第13位起连续取3个字符
  22. 0050AB76  |.  FF75 84       push    dword ptr [ebp-7C]                ;  817
  23. 0050AB79  |.  8D45 80       lea     eax, dword ptr [ebp-80]
  24. 0050AB7C  |.  50            push    eax
  25. 0050AB7D  |.  B9 03000000   mov     ecx, 3
  26. 0050AB82  |.  BA 0D000000   mov     edx, 0D
  27. 0050AB87  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
  28. 0050AB8A  |.  E8 B19DEFFF   call    00404940                          ;  从第13位起连续取3个字符
  29. 0050AB8F  |.  FF75 80       push    dword ptr [ebp-80]                ;  cb7
  30. 0050AB92  |.  8D85 7CFFFFFF lea     eax, dword ptr [ebp-84]
  31. 0050AB98  |.  50            push    eax
  32. 0050AB99  |.  B9 05000000   mov     ecx, 5
  33. 0050AB9E  |.  BA 16000000   mov     edx, 16
  34. 0050ABA3  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
  35. 0050ABA6  |.  E8 959DEFFF   call    00404940                          ;  从第22位起连续取5个字符
  36. 0050ABAB  |.  FFB5 7CFFFFFF push    dword ptr [ebp-84]                ;  caa8b
  37. 0050ABB1  |.  8D45 90       lea     eax, dword ptr [ebp-70]
  38. 0050ABB4  |.  BA 05000000   mov     edx, 5
  39. 0050ABB9  |.  E8 E29BEFFF   call    004047A0                          ;  将以上5部分串接起来
  40. 0050ABBE  |.  8B45 90       mov     eax, dword ptr [ebp-70]           ;  46990c4366caa817cb7caa8b
  41. 0050ABC1  |.  8D55 94       lea     edx, dword ptr [ebp-6C]
  42. 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 编辑 ]

评分

参与人数 1威望 +20 收起 理由
tianxj + 20 感谢您发布的原创作品!

查看全部评分

PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-9-28 18:39
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    发表于 2007-9-3 17:14:53 | 显示全部楼层
    谢谢楼主的解释
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-9-3 19:39:51 | 显示全部楼层
    很好的帖子,适合我们初学者,多谢楼主/:001
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-9-3 20:17:09 | 显示全部楼层
    今天不能下载FastTV网络电视[贵宾钻石版] 1.3.3.7,已经更新了。
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2007-9-3 20:20:47 | 显示全部楼层
    换汤不换药!是的,我中午才下的1.3.3.7,现在好像变1.3.5.0了。
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2019-2-17 18:27
  • 签到天数: 33 天

    [LV.5]常住居民I

    发表于 2007-9-3 20:37:19 | 显示全部楼层
    对照分析了下,楼主太强了,里面的数字太多了,晕乎,

    呵呵!

    l软件启动太慢,也没有什么节目,里面还有些不文明的语言,
    怕人破解也不要这样呵!
    爆破前提是你先输入的是24(其它的话就不是钻钻的了)位的假注册码,呵呵,先要他保存下注册信息,呵呵
    爆破的话:
    /*50AC9A*/  call    0040482C
    /*50AC9F*/  jnz     short 0050AD00                          把这里改成JZ或NOP掉就爆破成功了,呵呵
    /*50ACA1*/  mov     byte ptr [ebx+564], 1
    /*50ACA8*/  cmp     dword ptr [51B1C8], 1
    /*50ACAF*/  je      short 0050ACB8
    /*50ACB1*/  mov     byte ptr [ebx+565], 1

    [ 本帖最后由 yingfeng 于 2007-9-3 20:43 编辑 ]
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2007-9-3 20:51:26 | 显示全部楼层
    刚才我看了下新版本程序(1.3.5.0),基本上没变化,主程序版本根本没变,还是1.3.3.0的!

    [ 本帖最后由 云飘飘 于 2007-9-4 10:38 编辑 ]
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-9-3 21:04:01 | 显示全部楼层
    太厉害了 向楼主学习!!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-9-3 21:55:41 | 显示全部楼层
    支持下 继续努力 /:good
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-9-3 21:56:59 | 显示全部楼层
    可能还需要几次SHIFT+F9的协助,程序会停到这儿,把寄存器窗口的EAX值改成10(也就是十进制的16),单步往下走

    我晕 我忘记SHIFT+F9是干什么的啦 /:L

    把寄存器窗口的EAX值改成10  why..?
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表