云飘飘 发表于 2007-8-22 16:14:48

双击一次,让程序自己注册

【破文标题】双击一次,让程序自己注册
【破文作者】云飘飘
【作者邮箱】[email protected]
【作者主页】
【破解工具】OllyDbg
【破解平台】Win2000
【软件名称】网络电视小精灵 3.9.1 build1215
【软件大小】376K
【原版下载】http://www.onlinedown.net/soft/18599.htm
【保护方式】注册码保护,重启验证注册表
【软件简介】最好用的网络电视软件。收视率95%以上。收集国内外“精品”电视台400多家电视台。体育台,电影台,音乐台等。同时收集了许多当今最酷、最流行的几十套音乐和外语广播电台节目。 ...
------------------------------------------------------------------------
【破解过程】上个星期,下了这个程序在硬盘上。(该程序已经半年多未曾更新,强烈推荐推荐菜鸟们练练手,
以此熟悉一下OD的操作。)

解压该程序到硬盘上,呵呵,不用安装,绿色版本。

先运行程序,试一试,说不定你运气好,一下就蒙中了注册码呢!(果真如此的话,建议买今天的
福彩3D,100倍!)

在【帮助】--->【软件注册】后弹出的窗口中,什么也不用输入,直接点一下【注册】,出现提示
《您的注册码无效,请与作者联系[email protected]》,^_^,有门!

用PEiD v0.94 查一下壳,显示为:ASPack 2.12 -> Alexey Solodovnikov,一个弱壳,用插件
【PEiD Generic Unpacker】即可轻松脱壳!

不用说,退出程序,用OD载入脱壳后的程序,在汇编窗口点击右键,选择“Ultra String Regerence”->“FIND ASCII”,
然后在超级字串窗口按CTRL+F,输入“您的注册码无效”(偷懒的话,可以只输入一个汉字“您”),
下面显示的这一行将高亮显示:

0049A2C3   mov   eax, 0049A390                  ;您的注册码无效,请与作者联系[email protected]

好的,双击此行,汇编窗口来到这里:

0049A2C3   > \B8 90A34900   mov   eax, 0049A390                  ;您的注册码无效,请与作者联系[email protected]
0049A2C8   .E8 AF38F9FF   call    0042DB7C
0049A2CD   .8B83 2C030000 mov   eax, dword ptr
0049A2D3   .33D2          xor   edx, edx
0049A2D5   .E8 AA3EFAFF   call    0043E184


看见这一行的这个符号没有“ > ”?,它表示其他行跳向这里!在这一行上点击右键,选择【转到】--->
【jnz 来自0041A1E8】,现在来到这里:

0049A1EB   . /0F85 D2000000 jnz   0049A2C3
0049A1F1   . |8BC3          mov   eax, ebx
0049A1F3   . |E8 BC00FCFF   call    0045A2B4


在0049A1EB行上按F2,下个断点,0049A1EB变红了。

现在,请你按F9,然后程序运行起来了,在软件的【帮助】--->【软件注册】后弹出的窗口中,
什么也不用输入,直接点一下【注册】,看OD,程序停在了我们下断的地方。

请你找到寄存器窗口,
C 1ES 0023 32位 0(FFFFFFFF)
P 1CS 001B 32位 0(FFFFFFFF)
A 1SS 0023 32位 0(FFFFFFFF)
Z 0DS 0023 32位 0(FFFFFFFF)
S 1FS 0038 32位 7FFDE000(FFF)
T 0GS 0000 NULL

关键的动作要实施了,注意!!!
看到了Z 旁边的“0”了吧,双击它,然后再按F9,将OD最小化,呵呵,程序出现提示【软件注册成功!谢谢注册!】
点击【OK】,程序自己退出了运行。然后关闭OD。再次运行程序(脱过壳的,或者没脱壳的,随便哪个都行),
呵呵,程序显示“已注册”,大功告成了!
------------------------------------------------------------------------
【破解总结】没什么技术含量,熟悉一下OD的操作和PEiD的用法而已!
还是昨天那句:“OllyDbg的寄存器窗口标志是可以任你改的,双击你要改变的标志寄存器就行!”。

顺便附上注册表信息:

"regcode"="78466324"

------------------------------------------------------------------------
【版权声明】本文纯属技术交流, 转载请注明作者信息并保持文章的完整, 谢谢!

[ 本帖最后由 云飘飘 于 2007-8-23 12:36 编辑 ]

云飘飘 发表于 2007-8-22 16:24:10

重点代码

贴上重点代码:
0049A1A6      8BC0          mov   eax, eax
0049A1A8   .55            push    ebp
0049A1A9   .8BEC          mov   ebp, esp
0049A1AB   .6A 00         push    0
0049A1AD   .6A 00         push    0
0049A1AF   .6A 00         push    0
0049A1B1   .53            push    ebx
0049A1B2   .8BD8          mov   ebx, eax
0049A1B4   .33C0          xor   eax, eax
0049A1B6   .55            push    ebp
0049A1B7   .68 10A34900   push    0049A310
0049A1BC   .64:FF30       push    dword ptr fs:
0049A1BF   .64:8920       mov   dword ptr fs:, esp
0049A1C2   .8D55 F8       lea   edx, dword ptr
0049A1C5   .8B83 34030000 mov   eax, dword ptr
0049A1CB   .E8 843FFAFF   call    0043E154
0049A1D0   .8B45 F8       mov   eax, dword ptr
0049A1D3   .50            push    eax
0049A1D4   .8D55 F4       lea   edx, dword ptr
0049A1D7   .8B83 0C030000 mov   eax, dword ptr
0049A1DD   .E8 723FFAFF   call    0043E154
0049A1E2   .8B55 F4       mov   edx, dword ptr
0049A1E5   .58            pop   eax
0049A1E6   .E8 81A3F6FF   call    0040456C
0049A1EB   .0F85 D2000000 jnz   0049A2C3                         ;跳走就完蛋了
0049A1F1   .8BC3          mov   eax, ebx
0049A1F3   .E8 BC00FCFF   call    0045A2B4
0049A1F8   .B2 01         mov   dl, 1
0049A1FA   .A1 3C0C4300   mov   eax, dword ptr
0049A1FF   .E8 386BF9FF   call    00430D3C
0049A204   .8945 FC       mov   dword ptr , eax
0049A207   .33C0          xor   eax, eax
0049A209   .55            push    ebp
0049A20A   .68 A4A24900   push    0049A2A4
0049A20F   .64:FF30       push    dword ptr fs:
0049A212   .64:8920       mov   dword ptr fs:, esp
0049A215   .BA 01000080   mov   edx, 80000001
0049A21A   .8B45 FC       mov   eax, dword ptr
0049A21D   .E8 BA6BF9FF   call    00430DDC
0049A222   .33C9          xor   ecx, ecx
0049A224   .BA 24A34900   mov   edx, 0049A324                  ;ASCII "\Software\qianghua\xiaotv"
0049A229   .8B45 FC       mov   eax, dword ptr
0049A22C   .E8 EB6CF9FF   call    00430F1C                         ;写注册表
0049A231   .84C0          test    al, al
0049A233   .75 30         jnz   short 0049A265
0049A235   .BA 24A34900   mov   edx, 0049A324                  ;ASCII "\Software\qianghua\xiaotv"
0049A23A   .8B45 FC       mov   eax, dword ptr
0049A23D   .E8 FE6BF9FF   call    00430E40                         ;写注册表
0049A242   .B1 01         mov   cl, 1
0049A244   .BA 24A34900   mov   edx, 0049A324                  ;ASCII "\Software\qianghua\xiaotv"
0049A249   .8B45 FC       mov   eax, dword ptr
0049A24C   .E8 CB6CF9FF   call    00430F1C                         ;写注册表
0049A251   .B9 48A34900   mov   ecx, 0049A348                  ;ASCII "78466324"
0049A256   .BA 5CA34900   mov   edx, 0049A35C                  ;ASCII "regcode"
0049A25B   .8B45 FC       mov   eax, dword ptr
0049A25E   .E8 856FF9FF   call    004311E8
0049A263   .EB 0F         jmp   short 0049A274
0049A265   >B1 01         mov   cl, 1
0049A267   .BA 24A34900   mov   edx, 0049A324                  ;ASCII "\Software\qianghua\xiaotv"
0049A26C   .8B45 FC       mov   eax, dword ptr
0049A26F   .E8 A86CF9FF   call    00430F1C                         ;写注册表
0049A274   >B9 48A34900   mov   ecx, 0049A348                  ;ASCII "78466324"
0049A279   .BA 5CA34900   mov   edx, 0049A35C                  ;ASCII "regcode"
0049A27E   .8B45 FC       mov   eax, dword ptr
0049A281   .E8 626FF9FF   call    004311E8
0049A286   .33C0          xor   eax, eax
0049A288   .5A            pop   edx
0049A289   .59            pop   ecx
0049A28A   .59            pop   ecx
0049A28B   .64:8910       mov   dword ptr fs:, edx
0049A28E   .68 ABA24900   push    0049A2AB
0049A293   >8B45 FC       mov   eax, dword ptr
0049A296   .E8 116BF9FF   call    00430DAC
0049A29B   .8B45 FC       mov   eax, dword ptr
0049A29E   .E8 E990F6FF   call    0040338C
0049A2A3   .C3            retn
0049A2A4   .^ E9 3798F6FF   jmp   00403AE0
0049A2A9   .^ EB E8         jmp   short 0049A293
0049A2AB   .B8 6CA34900   mov   eax, 0049A36C                  ;软件注册成功!谢谢注册!
0049A2B0   .E8 C738F9FF   call    0042DB7C
0049A2B5   .A1 74794D00   mov   eax, dword ptr
0049A2BA   .8B00          mov   eax, dword ptr
0049A2BC   .E8 F3FFFBFF   call    0045A2B4
0049A2C1   .EB 32         jmp   short 0049A2F5
0049A2C3   >B8 90A34900   mov   eax, 0049A390                  ;您的注册码无效,请与作者联系[email protected]
0049A2C8   .E8 AF38F9FF   call    0042DB7C
0049A2CD   .8B83 2C030000 mov   eax, dword ptr
0049A2D3   .33D2          xor   edx, edx
0049A2D5   .E8 AA3EFAFF   call    0043E184
0049A2DA   .8B83 34030000 mov   eax, dword ptr
0049A2E0   .33D2          xor   edx, edx
0049A2E2   .E8 9D3EFAFF   call    0043E184
0049A2E7   .8B83 2C030000 mov   eax, dword ptr
0049A2ED   .8B10          mov   edx, dword ptr
0049A2EF   .FF92 C4000000 call    dword ptr
0049A2F5   >33C0          xor   eax, eax
0049A2F7   .5A            pop   edx
0049A2F8   .59            pop   ecx
0049A2F9   .59            pop   ecx
0049A2FA   .64:8910       mov   dword ptr fs:, edx
0049A2FD   .68 17A34900   push    0049A317
0049A302   >8D45 F4       lea   eax, dword ptr
0049A305   .BA 02000000   mov   edx, 2
0049A30A   .E8 759EF6FF   call    00404184
0049A30F   .C3            retn
0049A310   .^ E9 CB97F6FF   jmp   00403AE0
0049A315   .^ EB EB         jmp   short 0049A302
0049A317   .5B            pop   ebx
0049A318   .8BE5          mov   esp, ebp
0049A31A   .5D            pop   ebp
0049A31B   .C3            retn

软件重启验证注册表。菜鸟可以找到注册表,删除后再试一试哟!

[ 本帖最后由 云飘飘 于 2007-8-22 16:42 编辑 ]

pw2000 发表于 2007-8-22 18:31:54

楼主是高手啊,请多多分享。

云飘飘 发表于 2007-8-22 19:45:36

高手不敢当啊......
只是最近迷上了破解,周末稀里糊涂地搞定了一辆个程序,特别是昨天连续破了两个,偶然有点心得,大言不惭地便开始叫卖了!^_^
希望共同进步!!
你还是学员呢,我可比你身价低多了,呵呵.希望某天也会成为一个团队的成员,好好干干.

云飘飘 发表于 2007-8-22 20:01:25

刚才在本论坛搜索了一下,关于"网络电视小精灵"的破解,竟然有十几篇之多.

不过我可以大言不惭地说,没有哪一个比我的破解更简单,我的破解实际上只有一次双击而已,呵呵!

按捺住自己的激动心情,继续前行!

希望菜鸟们一定试试,也尝试一下收获的滋味......

tianxj 发表于 2007-8-22 21:13:56

都是从简单到复杂的走过来的,支持一下云飘飘

郑宇鸣 发表于 2007-8-22 22:23:37

看到了Z 旁边的“0”了吧

菜鸟提问:
"Z"是零标志,只有在调试中有效! 这里的0和1分别代表什么呢
其他的c ,p ,a,....都是些什么啊?

[ 本帖最后由 郑宇鸣 于 2007-8-22 22:27 编辑 ]

云飘飘 发表于 2007-8-23 07:17:36

C 1ES 0023 32位 0(FFFFFFFF)
P 1CS 001B 32位 0(FFFFFFFF)
A 1SS 0023 32位 0(FFFFFFFF)
Z 0DS 0023 32位 0(FFFFFFFF)
S 1FS 0038 32位 7FFDE000(FFF)
T 0GS 0000 NULL

上面六个依次是进位 偶校验 辅助进位 零 符号 中断标志位,菜鸟们可以看看汇编的书就懂了.
标志位旁边的0或1表示各标志位当前的值.

因为程序采用零标志位判断,而且走到这里的时候,它么往注册不成功的地方跳,我们不希望这样的事情发生,所以双击标志位旁边的数值,改变它,让它跳到我们希望的地方.

菜鸟可以对着经典的破解句式比较比较,马上会弄懂的......

郑宇鸣 发表于 2007-8-23 09:23:30

原帖由 云飘飘 于 2007-8-23 07:17 发表 https://www.chinapyg.com/images/common/back.gif
C 1ES 0023 32位 0(FFFFFFFF)
P 1CS 001B 32位 0(FFFFFFFF)
A 1SS 0023 32位 0(FFFFFFFF)
Z 0DS 0023 32位 0(FFFFFFFF)
S 1FS 0038 32位 7FFDE000(FFF)
T 0GS 0000 NULL

上面六个依次是进位 ...
谢谢解答 /:013

dreamz 发表于 2007-8-23 10:01:26

很不错的帖子,看来要学破解,熟练掌握汇编知识很重要啊
页: [1] 2 3 4
查看完整版本: 双击一次,让程序自己注册