首页
社区
课程
招聘
(原创)叮咚极品网络电视电影III V3.92-----算法分析
发表于: 2004-5-28 03:45 8255

(原创)叮咚极品网络电视电影III V3.92-----算法分析

2004-5-28 03:45
8255

这篇文章是我前两天写的,本来没有发表在这里的意思,毕竟这种文章对于高手们来说简直不屑一顾,但我发现这里有好多想入门和想学破解的朋友急于希望能看到一些对自己有帮助的文章,所以我才献丑发表在这里,毕竟我也是菜鸟所以很理解那些朋友的心情,让大家见笑了。
假如我的这篇文章对你哪怕有一点点帮助,那我的目的也就达到了。

==================================================================================
【工程作者】深海游侠
【作者邮箱】shenhaiyouxia@163.com
==================================================================================
【软件名称】叮咚极品网络电视电影III V3.92
【下载地址】http://www1.skycn.com/soft/16782.html
【所受限制】功能限制
【加壳保护】ASPack加壳
【软件介绍】
软件大小:  1052 KB
软件语言:  简体中文
软件类别:  国产软件 / 共享版 / 网络电视
应用平台:  Win9x/NT/2000/XP
界面预览:  无
加入时间:  2004-05-25 21:58:32
下载次数:  4725

中国在线电视电影数量第一位的软件!追求稳定、高速的网络电视电影软件!
汇集国内、外、港澳台300多家电视台以及精彩的明星写真,精彩电影,学习视频、动听音乐、游戏动画等,同时收集了许多当今国内、外最酷、最流行的上百套音乐和外语广播电台节目。本软件最注重节目质量,专用服务器提供热点影视,节目收看率极高。
1、提供超过几百套超高清晰的卫星电视节目,高速HBO大片,BBC新闻,日本MM、港台凤凰、华娱、星空、TVB系列,国内中央及各省卫星电视节目 。
2、提供境内外广播、特别影视、精彩实况、在线电影,在线音乐,精彩动画、时尚写真、游戏等。
3、采用\"智能链\"技术,内置多种加速引擎,智能分析网络状态追寻最佳速度方案
4、小巧玲珑,以实用为本,启动快速,占用系统资源极少,不产生垃圾文件! 不修改注册表系统!
5、专业人员每天更新电视电影数据,发布前经过严格测试,确保每个节目有效,回报注册用户 。

==================================================================================
【工程平台】WIN ME
【调试工具】Ollydbg  W32DASM  FI 2.5  WINDOWS自带计算器
【脱壳方式】专用工具脱壳
==================================================================================
【破解过程】
因为今天心情烦闷,新买的麦居然用不了,看来明天还要跑趟商店换换哈。想看电视又怕影响到家人,没办法去下个网络电视吧,没想到限制多多,于是就想研究起这方面的软件算法来,这类软件最近不是很火的嘛:)好拉废话不多说开始我们的破解旅程!!

查壳 ASPACK 2.12,脱之→Borland Delphi 6.0 - 7.0。用偶最熟悉的TRW2000载入,恩?非法。晕系统死琐,从起再试还是不行,不知道是不是我机器的问题,没办法只好用我最不擅长的OD了。没想到这东西这么方面。
W32DASM载入程序,找到关键爆点 4D4E75,在他前面的地方下断点,F9运行输入用户名:cxxx 假码:121212.程序断在这里:

004D4E01   .  8B83 10030000 MOV EAX,DWORD PTR DS:[EBX+310]
004D4E07   .  E8 D87AF6FF   CALL UNPACKED.0043C8E4           
004D4E0C   .  837D FC 00    CMP DWORD PTR SS:[EBP-4],0            ------->是否输入注册码?
004D4E10   .  74 14         JE SHORT UNPACKED.004D4E26            ------->没,那再见。
004D4E12   .  8D55 F8       LEA EDX,DWORD PTR SS:[EBP-8]
004D4E15   .  8B83 14030000 MOV EAX,DWORD PTR DS:[EBX+314]
004D4E1B   .  E8 C47AF6FF   CALL UNPACKED.0043C8E4
004D4E20   .  837D F8 00    CMP DWORD PTR SS:[EBP-8],0            -------->是否输入用户名?
004D4E24      75 35         JNZ SHORT UNPACKED.004D4E5B           -------->没?那再见。跳下去。
004D4E26   >  A1 20D34D00   MOV EAX,DWORD PTR DS:[4DD320]
004D4E2B   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
004D4E2D   .  E8 266BF8FF   CALL UNPACKED.0045B958
004D4E32   .  6A 00         PUSH 0
004D4E34   .  B9 CC4F4D00   MOV ECX,UNPACKED.004D4FCC
004D4E39   .  BA D44F4D00   MOV EDX,UNPACKED.004D4FD4
004D4E3E   .  A1 20D34D00   MOV EAX,DWORD PTR DS:[4DD320]
004D4E43   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
004D4E45   .  E8 4E7CF8FF   CALL UNPACKED.0045CA98
004D4E4A   .  A1 20D34D00   MOV EAX,DWORD PTR DS:[4DD320]
004D4E4F   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
004D4E51   .  E8 126BF8FF   CALL UNPACKED.0045B968
004D4E56   .  E9 32010000   JMP UNPACKED.004D4F8D
004D4E5B   >  33C0          XOR EAX,EAX                     
004D4E5D   .  55            PUSH EBP
004D4E5E   .  68 7C4F4D00   PUSH UNPACKED.004D4F7C
004D4E63   .  64:FF30       PUSH DWORD PTR FS:[EAX]
004D4E66   .  64:8920       MOV DWORD PTR FS:[EAX],ESP
004D4E69   .  A1 00EF4D00   MOV EAX,DWORD PTR DS:[4DEF00]
004D4E6E   .  E8 2DFEFFFF   CALL UNPACKED.004D4CA0           -------->算法CALL,跟进!
004D4E73   .  84C0          TEST AL,AL
004D4E75   .  0F84 BA000000 JE UNPACKED.004D4F35             -------->剥破这里即可。(我想你不会只爆他吧:))
004D4E7B   .  B8 0C504D00   MOV EAX,UNPACKED.004D500C
004D4E80   .  E8 3B15F6FF   CALL UNPACKED.004363C0           -------->成功之门
004D4E85   .  B2 01         MOV DL,1
004D4E87   .  A1 0C0E4600   MOV EAX,DWORD PTR DS:[460E0C]
004D4E8C   .  E8 7BC0F8FF   CALL UNPACKED.00460F0C
004D4E91   .  8BF0          MOV ESI,EAX
004D4E93   .  BA 02000080   MOV EDX,80000002
004D4E98   .  8BC6          MOV EAX,ESI
004D4E9A   .  E8 0DC1F8FF   CALL UNPACKED.00460FAC
004D4E9F   .  B1 01         MOV CL,1
004D4EA1   .  BA 20504D00   MOV EDX,UNPACKED.004D5020                ;  ASCII "Software\dingdongsoft\ddnettviii"   不用我说也知道这个是成功后的标志吧。
004D4EA6   .  8BC6          MOV EAX,ESI

算法CALL:
004D4E6E   .  E8 2DFEFFFF   CALL UNPACKED.004D4CA0
|
004D4CA0  /$  55            PUSH EBP
004D4CA1  |.  8BEC          MOV EBP,ESP
004D4CA3  |.  B9 05000000   MOV ECX,5
004D4CA8  |>  6A 00         /PUSH 0
004D4CAA  |.  6A 00         |PUSH 0
004D4CAC  |.  49            |DEC ECX
004D4CAD  |.^ 75 F9         \JNZ SHORT UNPACKED.004D4CA8
004D4CAF  |.  51            PUSH ECX
004D4CB0  |.  53            PUSH EBX
004D4CB1  |.  56            PUSH ESI
004D4CB2  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX
004D4CB5  |.  33C0          XOR EAX,EAX
004D4CB7  |.  55            PUSH EBP
004D4CB8  |.  68 CE4D4D00   PUSH UNPACKED.004D4DCE
004D4CBD  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
004D4CC0  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
004D4CC3  |.  33F6          XOR ESI,ESI
004D4CC5  |.  8D55 F4       LEA EDX,DWORD PTR SS:[EBP-C]
004D4CC8  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
004D4CCB  |.  8B80 0C030000 MOV EAX,DWORD PTR DS:[EAX+30C]
004D4CD1  |.  E8 0E7CF6FF   CALL UNPACKED.0043C8E4
004D4CD6  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]         ------->出现敌情。(机器码)
004D4CD9  |.  E8 AAFCF2FF   CALL UNPACKED.00404988
004D4CDE  |.  8BD8          MOV EBX,EAX
004D4CE0  |.  85DB          TEST EBX,EBX
004D4CE2  |.  7E 43         JLE SHORT UNPACKED.004D4D27          ------->一定不会跳吧。
004D4CE4  |.  C745 F8 01000>MOV DWORD PTR SS:[EBP-8],1
004D4CEB  |>  8D45 F0       /LEA EAX,DWORD PTR SS:[EBP-10]
004D4CEE  |.  50            |PUSH EAX
004D4CEF  |.  8D55 EC       |LEA EDX,DWORD PTR SS:[EBP-14]
004D4CF2  |.  8B45 FC       |MOV EAX,DWORD PTR SS:[EBP-4]
004D4CF5  |.  8B80 0C030000 |MOV EAX,DWORD PTR DS:[EAX+30C]
004D4CFB  |.  E8 E47BF6FF   |CALL UNPACKED.0043C8E4
004D4D00  |.  8B45 EC       |MOV EAX,DWORD PTR SS:[EBP-14]       ------->EAX为机器码,又出现一遍。
004D4D03  |.  B9 01000000   |MOV ECX,1
004D4D08  |.  8B55 F8       |MOV EDX,DWORD PTR SS:[EBP-8]
004D4D0B  |.  E8 D0FEF2FF   |CALL UNPACKED.00404BE0
004D4D10  |.  8B45 F0       |MOV EAX,DWORD PTR SS:[EBP-10]
004D4D13  |.  E8 68FEF2FF   |CALL UNPACKED.00404B80
004D4D18  |.  8A00          |MOV AL,BYTE PTR DS:[EAX]            -------->机器码第一位变成ASCII形式入AL,
004D4D1A  |.  25 FF000000   |AND EAX,0FF                         -------->只留前两为。EAX=机器码第一位
004D4D1F  |.  03F0          |ADD ESI,EAX                         -------->ESI=ESI+EAX,累加用。
004D4D21  |.  FF45 F8       |INC DWORD PTR SS:[EBP-8]
004D4D24  |.  4B            |DEC EBX                             -------->EBX充当计数器。
004D4D25  |.^ 75 C4         \JNZ SHORT UNPACKED.004D4CEB         -------->没全部累加?继续。
004D4D27  |>  8D55 E8       LEA EDX,DWORD PTR SS:[EBP-18]
004D4D2A  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
004D4D2D  |.  8B80 10030000 MOV EAX,DWORD PTR DS:[EAX+310]
004D4D33  |.  E8 AC7BF6FF   CALL UNPACKED.0043C8E4
004D4D38  |.  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]        -------->出现我们输入的加码,当没看见:)
004D4D3B  |.  50            PUSH EAX                             -------->压栈了,看来是用于下面比较了。
004D4D3C  |.  8BC6          MOV EAX,ESI                          -------->ESI入EAX,此时ESI为机器码累加结果。
004D4D3E  |.  B9 1C000000   MOV ECX,1C                           -------->ECX=1C
004D4D43  |.  99            CDQ
004D4D44  |.  F7F9          IDIV ECX                             -------->EAX/ECX,商入EAX,余入EDX。
004D4D46  |.  8D55 E0       LEA EDX,DWORD PTR SS:[EBP-20]
004D4D49  |.  E8 8243F3FF   CALL UNPACKED.004090D0               -------->这个CALL着实让我费了好大力气跟,结果眼都花了都没有结果,最后看了下规律才知道是把刚才的计算记过转为10进制。(算出注册码第一部分)
004D4D4E  |.  FF75 E0       PUSH DWORD PTR SS:[EBP-20]
004D4D51  |.  8D55 DC       LEA EDX,DWORD PTR SS:[EBP-24]
004D4D54  |.  8BC6          MOV EAX,ESI                          -------->累加结果再入EAX
004D4D56  |.  C1E0 05       SHL EAX,5                            -------->EAX逻辑左移5位,EAX=EAX*32
004D4D59  |.  2BC6          SUB EAX,ESI                          -------->EAX=EAX-ESI
004D4D5B  |.  E8 7043F3FF   CALL UNPACKED.004090D0               -------->EAX结果转为10进制,(注册码第二部分)
004D4D60  |.  FF75 DC       PUSH DWORD PTR SS:[EBP-24]
004D4D63  |.  8D55 D8       LEA EDX,DWORD PTR SS:[EBP-28]
004D4D66  |.  8D86 BE070000 LEA EAX,DWORD PTR DS:[ESI+7BE]       -------->不要被迷惑,其实就是EAX=ESI+7BE.(注册码第三部分)
004D4D6C  |.  E8 5F43F3FF   CALL UNPACKED.004090D0               -------->结果转为10进制,(注册码第三部分)
004D4D71  |.  FF75 D8       PUSH DWORD PTR SS:[EBP-28]
004D4D74  |.  8D55 D4       LEA EDX,DWORD PTR SS:[EBP-2C]
004D4D77  |.  69C6 BC000000 IMUL EAX,ESI,0BC                     -------->EAX=ESI*0BC
004D4D7D  |.  83C0 02       ADD EAX,2                            -------->EAX=EAX+2
004D4D80  |.  E8 4B43F3FF   CALL UNPACKED.004090D0               -------->结果转为10进制,(注册码第四部分)
004D4D85  |.  FF75 D4       PUSH DWORD PTR SS:[EBP-2C]
004D4D88  |.  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]
004D4D8B  |.  BA 04000000   MOV EDX,4
004D4D90  |.  E8 B3FCF2FF   CALL UNPACKED.00404A48               -------->把四部分连接起来。
004D4D95  |.  8B55 E4       MOV EDX,DWORD PTR SS:[EBP-1C]        -------->内存注册机的位置!
004D4D98  |.  58            POP EAX
004D4D99  |.  E8 2EFDF2FF   CALL UNPACKED.00404ACC               -------->比较CALL,有兴趣的朋友可以跟进看看,我是没心情了。
004D4D9E  |.  75 04         JNZ SHORT UNPACKED.004D4DA4          -------->关键跳
004D4DA0  |.  B3 01         MOV BL,1                             -------->关键的钥匙啊,用与下面使AL=1,大关键跳才能过关。
004D4DA2  |.  EB 02         JMP SHORT UNPACKED.004D4DA6
004D4DA4  |>  33DB          XOR EBX,EBX
004D4DA6  |>  33C0          XOR EAX,EAX
004D4DA8  |.  5A            POP EDX
004D4DA9  |.  59            POP ECX
004D4DAA  |.  59            POP ECX
004D4DAB  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
004D4DAE  |.  68 D54D4D00   PUSH UNPACKED.004D4DD5
004D4DB3  |>  8D45 D4       LEA EAX,DWORD PTR SS:[EBP-2C]
004D4DB6  |.  BA 05000000   MOV EDX,5
004D4DBB  |.  E8 34F9F2FF   CALL UNPACKED.004046F4
004D4DC0  |.  8D45 E8       LEA EAX,DWORD PTR SS:[EBP-18]
004D4DC3  |.  BA 04000000   MOV EDX,4
004D4DC8  |.  E8 27F9F2FF   CALL UNPACKED.004046F4
004D4DCD  \.  C3            RETN
004D4DCE   .^ E9 81F2F2FF   JMP UNPACKED.00404054
004D4DD3   .^ EB DE         JMP SHORT UNPACKED.004D4DB3
004D4DD5   .  8BC3          MOV EAX,EBX                         -------->就是这里拉。EAX=1就可以看电视拉!!
004D4DD7   .  5E            POP ESI
004D4DD8   .  5B            POP EBX
004D4DD9   .  8BE5          MOV ESP,EBP
004D4DDB   .  5D            POP EBP
004D4DDC   .  C3            RETN

1>算法总结:
1)必须输入用户名和注册码。(废话)

2)机器码转为ASCII码然后累加,累加结果入ESI用于下面运算。

3)算注册码第一部分:
EAX=ESI/1C
结果转为10进制。

4)算注册码第二部分:
EAX=ESI*32-ESI
结果转为10进制。

5)算注册码第三部分:
EAX=ESI+7BE
结果......

6)算注册码第四部分:
EAX=ESI*0BC+2
结果......

7)合并注册码四个部分。

2>实例运算:
我的机器码是306650343,转为ASCII码累加后的结果是1CE.

         注册码第一部分    注册码第二部分    注册码第三部分    注册码第四部分

运算:    1CE/1C=10         1CE*20-1CE=37F2    1CE+7BE=98C      1CE*BC+2=1534A

注册码:       16              14322             2444              86858

看到了么?最后把注册码连起来就是了:1614322244486858

3)内存注册机:
中断地址:4D4D98
中断次数:1
第一字节:58
字节长度:1
寄存器:EDX

4)VB注册机:
我已经编写出来,但因为是国产软件所以不公开了。毕竟我们只为技术。

5)恢复注册办法:
HKEY_LOCAL_MACHINE\SOFTWARE\dingdongsoft\ddnettviii\ddnettviiisn: "1614322244486858"
HKEY_LOCAL_MACHINE\SOFTWARE\dingdongsoft\ddnettviii\user: "cxxx"
删除以上两个键值后面的数值即可。

破后感评:
累啊,终于写完了,计算过程可都是偶用计算器算的哦。
也许高手们看了这篇文章会觉的罗嗦,其实我写这篇文章的主要目的是希望更多朋友能赶快找到算法的入门,毕竟问题不是理所当然来的,当然我也是菜鸟就更身有体会了。
如果你能在这篇文章学到些东西,那我的目的也就达到了。
外边还在淅沥的下着小雨,看着渐明的天空,感慨又一个破解之夜过去了,但我不会后悔的!

                                                                    ----------深海游侠
                                                                    ----------2004.5.27凌晨

==================================================================================
【工程声明】本过程只供内部学习之用!如要转载请保持过程完整!
==================================================================================


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 10
支持
分享
最新回复 (11)
雪    币: 215
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
晕晕的 高手哦!收藏了再说。我的宗旨:教程不怕多!
分享高手经验就从你下手了。
大哥说一下
(W32DASM载入程序,找到关键爆点 4D4E75,在他前面的地方下断点,)
为什么4D4E75是个关键,你是怎么找到它的?
2004-5-28 04:13
0
雪    币: 300
活跃值: (521)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
3
最初由 精神 发布
晕晕的 高手哦!收藏了再说。我的宗旨:教程不怕多!
分享高手经验就从你下手了。
大哥说一下
(W32DASM载入程序,找到关键爆点 4D4E75,在他前面的地方下断点,)
为什么4D4E75是个关键,你是怎么找到它的?


用W32DASM载入后分析字符串,可以找到注册失败的字样,然后看他前面的跳转,就是看哪里是跳到这里的,这个跳转就是关键跳了,所以要在这个关键跳前面下断点。
2004-5-28 14:41
0
雪    币: 231
活跃值: (465)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
顶一下。。。
+U+U
2004-5-28 14:54
0
雪    币: 209
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
高手啊~~我看了这篇文章受益多多啊!
2004-5-28 15:15
0
雪    币: 215
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
首先谢谢 深海游侠

然后我睡一觉就要开工了,如果有什么不明白的地方再回来讨教哦。
好象FLY BOSS写过的好多教程都是这个方法。
2004-5-28 19:10
0
雪    币: 227
活跃值: (130)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
高手也是从一知半解开始的,让我们一起努力
2004-5-28 19:38
0
雪    币: 237
活跃值: (160)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
注册软件后,点击进入网页还要输入用户名和注册码,所以这个软件注册不注册没什么意思。
看了看作者主页,发现:
重新安装系统(格式化)后,需要再次安装本软件,您只需打开注册页面,重新输入注册码即可(原注册码基本不变)
//这是不可能的,重新格式化后硬盘的分区的ID会改变,也就是机器码会改变,原来的注册码还能用吗?
2004-5-29 10:17
0
雪    币: 209
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
深海游侠
能详细讲下 侦壳、脱壳、的步骤吗?
还有最后的机器码和注册码的算法再讲详细点好不,比如怎么算了。用什么工具算。我上菜鸟~问的问题也可能够菜。希望能给我讲下。
先谢了~!
2004-5-29 10:22
0
雪    币: 300
活跃值: (521)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
10
最初由 睡猫 发布
深海游侠
能详细讲下 侦壳、脱壳、的步骤吗?
还有最后的机器码和注册码的算法再讲详细点好不,比如怎么算了。用什么工具算。我上菜鸟~问的问题也可能够菜。希望能给我讲下。
先谢了~!


下载以后第一件事就是查壳了,查到以后用相应的脱壳工具。
算法没什么太大技巧,就是要看能懂,这就要你有基础的汇编知识了。
算法都是自己看的,没什么工具算,不过有的计算口算不出太麻烦的时候可以用WINDOWS自带的工具算的。
还有就是多练习,多见一些算法的形式,见多了自然就知道他怎么算了。
2004-5-30 21:28
0
雪    币: 300
活跃值: (521)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
11
........偶也是菜鸟的。而且我在网吧。
2004-5-30 21:48
0
雪    币: 238
活跃值: (110)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
别谦虚了,交个朋友吗,以后都指教,
加我的QQ好吗,要不给我你的我加你
2004-5-30 21:55
0
游客
登录 | 注册 方可回帖
返回
//