首页
社区
课程
招聘
[原创]MP3 WAV OGG WMA AC3 to CD Burner算法分析+简单逆向汇编
发表于: 2008-9-15 10:48 9007

[原创]MP3 WAV OGG WMA AC3 to CD Burner算法分析+简单逆向汇编

2008-9-15 10:48
9007

【破文标题】MP3 WAV OGG WMA AC3 to CD Burner算法分析+简单逆向汇编
【破文作者】Playboysen
【作者邮箱】playboysen@126.com
【作者主页】playboysen2.photo.163.com
【破解工具】PEiD,OD
【破解平台】Windows XP
【软件名称】MP3 WAV OGG WMA AC3 to CD Burner V.1.2.33: (09/09/2008)
【软件大小】2.38 MB
【软件类别】国外软件/光碟工具
【软件授权】共享版
【软件语言】英文
【更新时间】2008-09-09
【原版下载】http://www.divxtodvd.net/
【保护方式】注册码
【软件简介】烧录CD光盘,支持 MP3 WAV WMA OGG AC3 音频格式,支持650M(74min),700M(80min),730M(83min)光盘,支持所有CDRs,支持大部分IDE,USB,IEEE1384,SCSI CD 设备,内置高速烧录 CD 光盘引擎!
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
初学破解与编程,只是感兴趣,没有其它目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------
【破解内容】
--------------------------------------------------------------

    前几天闲来无事,找了两本汇编语言程序设计来玩玩,主要目的当然并非学习汇编程序设计,只是平时分析算法和程序逆向如果不懂汇编举步维艰,算是大四每天自习或者茶余饭后的消遣,今天来分析一个软件,然后用汇编语言搞个注册机,算是这十来天的书没有白看,同时也给大家开阔一下视野,提供算法分析或者dll文件注册方式破解的另外一种思路吧~~

    打开软件试运行,知道软件是注册名加注册码的保护方式,有错误提示,未加壳,编写语言VC++。OK,Come on...
    OD载入,查找关键字符找到以下关键代码:

00406456   .  53            push    ebx
00406457   .  56            push    esi
00406458   .  6A 01         push    1
0040645A   .  8BD9          mov     ebx, ecx                         
0040645C   .  E8 71AF0000   call    <jmp.&MFC42.#6334>
00406461   .  8B43 64       mov     eax, dword ptr [ebx+64]          ;  注册名放入EAX
00406464   .  8D5424 08     lea     edx, dword ptr [esp+8]
00406468   .  2BD0          sub     edx, eax
0040646A   >  8A08          mov     cl, byte ptr [eax]
0040646C   .  880C02        mov     byte ptr [edx+eax], cl
0040646F   .  40            inc     eax
00406470   .  84C9          test    cl, cl
00406472   .^ 75 F6         jnz     short 0040646A
00406474   .  8B43 60       mov     eax, dword ptr [ebx+60]
00406477   .  8D5424 48     lea     edx, dword ptr [esp+48]
0040647B   .  2BD0          sub     edx, eax
0040647D   >  8A08          mov     cl, byte ptr [eax]
0040647F   .  880C02        mov     byte ptr [edx+eax], cl
00406482   .  40            inc     eax
00406483   .  84C9          test    cl, cl
00406485   .^ 75 F6         jnz     short 0040647D
00406487   .  68 5C814100   push    0041815C                         ; /既然这一段代码是核心算法部分,此处加载ether.dll,不得不让人生疑......
0040648C   .  FF15 18314100 call    dword ptr [<&KERNEL32.LoadLibrar>; \LoadLibraryA
00406492   .  8BF0          mov     esi, eax
00406494   .  68 E0904100   push    004190E0                         ; /reg_code
00406499   .  56            push    esi                              ; |hModule
0040649A   .  FF15 14314100 call    dword ptr [<&KERNEL32.GetProcAdd>; \GetProcAddress
004064A0   .  8D8C24 880000>lea     ecx, dword ptr [esp+88]          ;  这个地址是用来存放等会计算好的注册码的
004064A7   .  8D5424 08     lea     edx, dword ptr [esp+8]           ;  用户名地址放入
004064AB   .  51            push    ecx                              ;  ECX,EDX就是ether.dll中的ether.reg_code函数的两个参数
004064AC   .  52            push    edx
004064AD   .  FFD0          call    eax                              ;  ether.reg_code函数----求注册码的核心哦
004064AF   .  83C4 08       add     esp, 8
004064B2   .  56            push    esi                              ; /hLibModule
004064B3   .  FF15 10314100 call    dword ptr [<&KERNEL32.FreeLibrar>; \FreeLibrary 释放DLL文件
004064B9   .  8D8424 880000>lea     eax, dword ptr [esp+88]          ;  这里出现了真正的注册码
004064C0   .  8D4C24 48     lea     ecx, dword ptr [esp+48]
004064C4   .  50            push    eax
004064C5   .  51            push    ecx
004064C6   .  E8 45DCFFFF   call    00404110                         ;  此Call并非关键,这里是真假注册码的比较
004064CB   .  83C4 08       add     esp, 8
004064CE   .  85C0          test    eax, eax
004064D0   .  0F85 DF000000 jnz     004065B5                         ;  关键跳转
004064D6   >  8A4C04 08     mov     cl, byte ptr [esp+eax+8]
004064DA   .  8888 F09A4100 mov     byte ptr [eax+419AF0], cl
004064E0   .  40            inc     eax
004064E1   .  84C9          test    cl, cl
004064E3   .^ 75 F1         jnz     short 004064D6
004064E5   .  33C0          xor     eax, eax
004064E7   >  8A4C04 48     mov     cl, byte ptr [esp+eax+48]
004064EB   .  8888 F0994100 mov     byte ptr [eax+4199F0], cl

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (11)
雪    币: 347
活跃值: (25)
能力值: ( LV9,RANK:420 )
在线值:
发帖
回帖
粉丝
2
沙发是我的
2008-9-15 13:13
0
雪    币: 248
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
学习中……谢谢共享。
感觉好象就是在做内存注册机。
2008-9-15 15:18
0
雪    币: 257
活跃值: (56)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
支持一下。
乍一看MP3 WAV OGG WMA AC3 to CD Burner算法分析还以为是分析 WAV OGG WMA AC3 to CD的算法呢。。。

搂住提供了一种做keygen的思路。不过算法方面好像少了一点。希望看到更多的算法分析。
2008-9-15 15:24
0
雪    币: 590
活跃值: (177)
能力值: ( LV9,RANK:680 )
在线值:
发帖
回帖
粉丝
5
我在【软件调试】板块和【新手】板块发表的有四五篇算法分析文章,算法部分绝对够长哦
贴出来方便查阅o(∩_∩)o...

PC-Washer 2.0最新版 算法分析及Keygen源码
http://bbs.pediy.com/showthread.php?t=69360&highlight=playboysen

【七夕礼物】Power Video Converter算法分析+另类注册机
http://bbs.pediy.com/showthread.php?t=70242&highlight=playboysen

【奥运献礼】MP3 Cutter Joiner新版 算法分析+Delphi嵌入汇编注册机
http://bbs.pediy.com/showthread.php?t=70328&highlight=playboysen

PDFcamp Printer (PDF Writer) V2.2 最新版算法分析及Keygen源码
http://bbs.pediy.com/showthread.php?t=66796&highlight=playboysen

WeBuilder 2008 V9.0(最新版) Trial 完美去限制
http://bbs.pediy.com/showthread.php?t=67078&highlight=playboysen
2008-9-15 18:45
0
雪    币: 248
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
楼主上面提到的好几篇,分析得确实精彩。谢谢共享!
2008-9-15 19:25
0
雪    币: 251
活跃值: (25)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
7
谢谢分享,学习了
2008-9-16 09:46
0
雪    币: 474
活跃值: (96)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
学习!!谢谢楼主!
2008-9-26 12:37
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
很不错  学习了
2008-9-27 02:08
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ill
10
你太牛了
佩服ING
2008-9-28 20:34
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
要是看不懂,怎么办呢?
2008-9-30 14:24
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
国庆快乐,谢谢分享~~~
2008-10-1 18:20
0
游客
登录 | 注册 方可回帖
返回
//