吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 17401|回复: 49
收起左侧

[分享] "流星网络电视"简单破解

[复制链接]
llight 发表于 2009-9-9 13:59
本帖最后由 llight 于 2009-9-9 14:10 编辑

【文章标题】: "流星网络电视"简单破解
【文章作者】: Mr.vit
【下载地址】: 自己搜索下载
【加壳方式】: ASPack v2.12
【编写语言】: Delphi
【使用工具】: FastScanner OD
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  首先用FastScanner查一下壳,ASPack v2.12 -> Alexey Solodovnikov
  脱壳很简单,可以用脱壳工具,也可以用OD
  用OD载入
  005A7001 M>  60                   pushad
  005A7002     E8 03000000          call MeteorNe.005A700A                ; hr esp
  005A7007   - E9 EB045D45          jmp 45B774F7
  005A700C     55                   push ebp
  。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
  用ESP定律
  005A73B0    /75 08                jnz short MeteorNe.005A73BA
  005A73B2    |B8 01000000          mov eax,1
  005A73B7    |C2 0C00              retn 0C
  005A73BA    \68 6CF95100          push MeteorNe.0051F96C                ; 程序入口点
  005A73BF     C3                   retn                                  ; 返回
  。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
  F8单步,就到入口点了,然后脱一下壳就可以了
  现在进行破解,软件是重启验证的,但是破解起来还是简单的
  
  打开软件,当你填入用户名与注册码的时候,点击注册,这时候会出现两种情况
  1.点注册没有反应
  2.点注册后就把马上关闭软件
  这主要是输入的注册码是有位数规定的,输入注册码的时候,先输入一位,再点注册,没有反应,再输入两位,再点注册
  直到输入关闭为止(在没有分析软件之前,这是不一个不错的方法)
  直到输入十六位的时候,软件才会关闭
  现在用OD载入软件,查一下字符,看看有没有用的信息
  00517F46   mov edx,Unpack.0051831C                   nmmd-sgpj
  00517F4B   mov eax,Unpack.00518330                   [标准版]
  00517FE1   mov edx,Unpack.00518308                   impressions
  0051800A   mov edx,Unpack.0051831C                   nmmd-sgpj
  0051800F   mov eax,Unpack.00518344                   [vip版]
  005180C4   mov edx,Unpack.00518308                   impressions
  005180ED   mov edx,Unpack.0051831C                   nmmd-sgpj
  005180F2   mov eax,Unpack.00518354                   [钻石版]
  00518134   mov edx,Unpack.00518368                   sgpj-nmmd
  找到了吧?嘿嘿,点击钻石版吧,这个是最高级别的
  这样就来了
  005180DB     E8 74CDEEFF          call Unpack.00404E54
  005180E0     C705 60925200 030000>mov dword ptr ds:[529260],3
  005180EA     8D4D F8              lea ecx,dword ptr ss:[ebp-8]
  005180ED     BA 1C835100          mov edx,Unpack.0051831C               ; nmmd-sgpj
  005180F2     B8 54835100          mov eax,Unpack.00518354               ; [钻石版]
  005180F7     E8 4001F6FF          call Unpack.0047823C
  005180FC     8D85 70FFFFFF        lea eax,dword ptr ss:[ebp-90]
  
  再向上看看
  
  00517E2F     83E8 0A              sub eax,0A                            ;这里下个断点
  00517E32     74 62                je short Unpack.00517E96              ; 跳向标准版
  00517E34     83E8 02              sub eax,2
  00517E37     74 17                je short Unpack.00517E50
  00517E39     83E8 02              sub eax,2
  00517E3C     0F84 18010000        je Unpack.00517F5A                    ; 跳向VIP版
  00517E42     83E8 02              sub eax,2
  00517E45     0F84 D3010000        je Unpack.0051801E                    ; 跳向钻石版
  00517E4B     E9 A5030000          jmp Unpack.005181F5
  00517E50     68 58925200          push Unpack.00529258
  。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
  00517F34     E8 1BCFEEFF          call Unpack.00404E54
  00517F39     C705 60925200 010000>mov dword ptr ds:[529260],1
  00517F43     8D4D F8              lea ecx,dword ptr ss:[ebp-8]
  00517F46     BA 1C835100          mov edx,Unpack.0051831C               ; nmmd-sgpj
  00517F4B     B8 30835100          mov eax,Unpack.00518330               ; [标准版]
  00517F50     E8 E702F6FF          call Unpack.0047823C
  00517F55     E9 A2010000          jmp Unpack.005180FC
  00517F5A     68 58925200          push Unpack.00529258
  00517F5F     8D45 A8              lea eax,dword ptr ss:[ebp-58]
  。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
  00517FF8     E8 57CEEEFF          call Unpack.00404E54
  00517FFD     C705 60925200 020000>mov dword ptr ds:[529260],2
  00518007     8D4D F8              lea ecx,dword ptr ss:[ebp-8]
  0051800A     BA 1C835100          mov edx,Unpack.0051831C               ; nmmd-sgpj
  0051800F     B8 44835100          mov eax,Unpack.00518344               ; [vip版]
  00518014     E8 2302F6FF          call Unpack.0047823C
  00518019     E9 DE000000          jmp Unpack.005180FC
  0051801E     68 58925200          push Unpack.00529258
  。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
  005180E0     C705 60925200 030000>mov dword ptr ds:[529260],3
  005180EA     8D4D F8              lea ecx,dword ptr ss:[ebp-8]
  005180ED     BA 1C835100          mov edx,Unpack.0051831C               ; nmmd-sgpj
  005180F2     B8 54835100          mov eax,Unpack.00518354               ; [钻石版]
  005180F7     E8 4001F6FF          call Unpack.0047823C
  005180FC     8D85 70FFFFFF        lea eax,dword ptr ss:[ebp-90]
  
  看到了吧,上面很多跳,跳向不同的版本,那么就在00517E2F下一个断点
  然后运行程序,断下来了,这时候看一下寄存器当中EAX的值为十六进制的A即为10
  执行 sub eax,0A  (相当于eax=eax-10)后,eax的值为零,这样je就实现了跳转
  这里讲一下JE指令
  跳转条件为上一表达式的计算结果为零,或者比较的两个数相等,标志位为ZF=1
  
  这样程序就会跳向标准版,但是我们要实现的是跳向钻石版,所以有两种方法可以改
  一种是NOP掉JE指令
  一种是输入二十四位的注册码(分析得来的,可以根据几个SUB指令与观察EAX的值)
  还是关闭OD,打开程序,输入用户名与二十四位的注册码
  接着再用OD载入程序
  运行程序,断到
  00517E2F     83E8 0A              sub eax,0A                            ;这里下个断点
  00517E32     74 62                je short Unpack.00517E96              ; 跳向标准版
  00517E34     83E8 02              sub eax,2
  00517E37     74 17                je short Unpack.00517E50
  00517E39     83E8 02              sub eax,2
  00517E3C     0F84 18010000        je Unpack.00517F5A                    ; 跳向VIP版
  00517E42     83E8 02              sub eax,2
  00517E45     0F84 D3010000        je Unpack.0051801E                    ; 跳向钻石版这里就实现了
  00517E4B     E9 A5030000          jmp Unpack.005181F5
  。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
  可以看一下EAX的值为十六进制的10,即十进制的16
  接下来单步跟踪
  00518034     E8 1BCEEEFF          call Unpack.00404E54
  00518039     FF75 8C              push dword ptr ss:[ebp-74]
  0051803C     8D45 88              lea eax,dword ptr ss:[ebp-78]         ; 这里开始注意堆栈窗口了
  0051803F     50                   push eax                              ;堆栈会出现一段段数字与字母
  00518040     B9 07000000          mov ecx,7                             ;连接一下就是注册码了,刚好24位
  00518045     BA 12000000          mov edx,12
  0051804A     8B45 FC              mov eax,dword ptr ss:[ebp-4]
  0051804D     E8 02CEEEFF          call Unpack.00404E54
  00518052     FF75 88              push dword ptr ss:[ebp-78]
  00518055     8D45 84              lea eax,dword ptr ss:[ebp-7C]
  00518058     50                   push eax
  00518059     B9 03000000          mov ecx,3
  0051805E     BA 03000000          mov edx,3
  00518063     8B45 FC              mov eax,dword ptr ss:[ebp-4]
  00518066     E8 E9CDEEFF          call Unpack.00404E54
  0051806B     FF75 84              push dword ptr ss:[ebp-7C]
  0051806E     8D45 80              lea eax,dword ptr ss:[ebp-80]
  00518071     50                   push eax
  00518072     B9 03000000          mov ecx,3
  00518077     BA 0D000000          mov edx,0D
  0051807C     8B45 FC              mov eax,dword ptr ss:[ebp-4]
  0051807F     E8 D0CDEEFF          call Unpack.00404E54
  00518084     FF75 80              push dword ptr ss:[ebp-80]
  00518087     8D85 7CFFFFFF        lea eax,dword ptr ss:[ebp-84]
  0051808D     50                   push eax
  0051808E     B9 05000000          mov ecx,5
  00518093     BA 16000000          mov edx,16
  00518098     8B45 FC              mov eax,dword ptr ss:[ebp-4]
  0051809B     E8 B4CDEEFF          call Unpack.00404E54
  005180A0     FFB5 7CFFFFFF        push dword ptr ss:[ebp-84]
  005180A6     8D45 90              lea eax,dword ptr ss:[ebp-70]
  005180A9     BA 05000000          mov edx,5
  005180AE     E8 01CCEEFF          call Unpack.00404CB4
  005180B3     8B45 90              mov eax,dword ptr ss:[ebp-70]         ; 注册码来了,与堆栈里出现的一致
  005180B6     8D55 94              lea edx,dword ptr ss:[ebp-6C]
  005180B9     E8 6A0FF6FF          call Unpack.00479028
  。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
  堆栈会出现这样:
  0012FC8C     00F02238    ASCII "4dd82"
  0012FC90     00F02228    ASCII "1b1"
  0012FC94     00EE6094    ASCII "cfb"
  0012FC98     00F02214    ASCII "42944dd"
  0012FC9C     00F02200    ASCII "ad5041"
  
  这里我的注册码:ad504142944ddcfb1b14dd82
  这样就简单的追出了注册码,找爆破点也很容易
  
-------------------------------------------------------------------------

大家可以拿FASTTV练练,因为这两个注册机制基本相同

【版权声明】: 转载请注明作者并保持文章的完整, 谢谢!

免费评分

参与人数 1威望 +2 收起 理由
Hmily + 2 感谢发布原创作品,[吾爱破解]因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

姿式咖啡 发表于 2009-9-9 15:08
过来学习了
寒风飘雪 发表于 2009-9-9 14:15
王者之剑 发表于 2009-9-9 19:04
ghwj1985 发表于 2009-9-10 01:00
这么简单喔都搞不来哦
ZeNiX 发表于 2009-9-11 12:56
歡迎llight多多和大家分享
11212122 发表于 2009-9-11 22:44
额.上一次搞一个网络电视。

追到注册码了。

结果是服务器远程验证的。

郁闷致死。
mk101 发表于 2009-9-11 23:02
过来学习一下
powerwill 发表于 2009-9-19 23:58
很不错..不顶不行了..
1512 发表于 2009-9-21 17:29
很不错..不顶不行了..
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-28 07:39

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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