• 标 题:Tutor12  How to crack Emblaze.Audio 1.01
  • 作 者:dREAMtHEATER
  • 时 间:17th, Sep 1999
  • 链 接:http://bbs.pediy.com

作者:dREAMtHEATER
E-mail:dreamtheater@263.net
写作日期: 17th, Sep 1999

软件背景资料

运行平台: Win9X 
文件名称: embaudio.exe
程序类型: Multimedia Tools
下载地点: http://www.emblaze.com
文件大小: 1,151KB

使用的工具

W32Dasm V8.93--Win9X Dissembler
Hex WorkShop V2.54--Hex Editor
RegSnap V2.51--Registry Analyzing Tool
Registry Studio V1.01--Enhanced Registry Editor

难易程度

Easy(x)  Medium( )  Hard( )  Pro( )

                  ----------=======声明========----------

      未经作者同意,不得修改、引用原文,一切权利保留。
      本教程只供教学用,其他一切用途皆被禁止。
             
                  ----------=======软件介绍========----------
   
      Emblaze Audio is an application used for compressing *.wav audio files suitable
for use on the Internet.

                ----------=======软件的保护机制========-------
     
      与时间相关的键值记录在:
      HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\ultxfile\Format\MSHV04A6\open
      HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\ultxfile\Format\MSHV04A6\write
      HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\ultxfile\Format\MSHV04A6\xlate
      其他内容看正文!

                  ----------========正文========----------

      Hi! 大家好!我们又见面了 :-)
      我已有好长一段时间没有写tutor了(距tutor 11的推出已有28天了),想必让各位等苦了(
千万不要对我失去了信心啊!)。上个月简直没差点把我累死,咳咳.....,为了练好CRACKing内功
,我没白天黑日地做练习,每天搞得我都是脑发胀、眼发直、手发酸,还好,功夫不负有心人,一
个月下来我也许创下了破解记录---crack掉将近100个共享软件(所有软件均随机性的从网上D下的,
这可花了我一百大元),可以说我遇到了几乎所有的保护系统,并积累了大量的cracking经验。说
实话,学习cracking没有什么捷径可走,你唯一可以做的就是努力再努力!
      好!话回正题,我今天向大家介绍一种程序保护类型。如果文中提到的例子的破解你能完全
理解,那么再遇到此类程序,你应该能百分之百地破解。
      本讲中用的shareware例子叫“Emblaze.Audio”,该共享软件是用Release Software
Corporation(简称RS)出品的time limited类型的保护程序封装的。安装后在该软件的安装目录下有
三个与此相关的文件,分别是Rsagent.hlp,rsdll.dll,rsagnt32.dll,我也曾经遇到过其他几个
用RS封装的软件,均是在软件的安装目录下存在这三个文件,其中包括著名的杀毒软件--Norton
AntiVirus 4.0,因此我觉得有必要将这一类共享程序的破解方法公布于众。不过告诉你,这个RS封
装程序真的很差劲,可以说极容易破解,因此我今天不着重讲解破解过程,只对他的注册过程做一
详细介绍。刚开始时,我也被他的注册过程给唬住了,以为该程序必须网上注册,其实不然!
      首先,运行文件AUDIO.exe,程序马上跳出一个nagscreen,告诉你还剩多少天可以试用,窗口
上还有三个BUTTON,分别是Buy Now,Try It,Cancel,此界面做得很象用VBox封装的程序。请用鼠标点
取"Buy Now" button,进入Registration Wizard,你必须逐项的填写registration form,当然你可
以随便填了,填好后点击next,这一步要求你填credit card number,expired date, card name,
这回估计你犯难了,你上哪儿找credit card number, 没关系,我在网上找了一个VISA的number,当
然这也不能用,只是骗骗他 :-),请填入credit card number:4760313551454,expired date:
10/99, card name:dREAMtHEATER(你可以随便填),点击next-->order by fax/mail-->完成!该操
作完毕后,会在你的windows目录下生成一个叫“rsagent.ini”的文件,里面包括你刚才你输入的
个人信息,同时生成一个personalCode项。
      退出程序,重新运行,再次点击“Buy Now”,这会程序读取rsagent.ini中的信息,并提取
其中的firstName=dREAMtHEATER,lastName=Home'99,personalCode=0018471466(这是我的信息)
列于order by fax/mail的注册窗口上,并且有一个空的EditBox等待你输入UnlockingCode,那么
OK,我随便输入1234567890。     
      在SoftIce中设断点bpx hmemcpy ,Ctrl-D,回到注册窗口,press "OK" button,重新回到
SoftIce中,记住你不要再按Ctrl-D,"bc *",取消所有断点,Press F12数次,程序停在:

:100055FA 6816040000              push 00000416
:100055FF 55                      push ebp
:10005600 FFD3                    call ebx
:10005602 BFE00D0310              mov edi, 10030DE0  <==回到这里
:10005607 83C9FF                  or ecx, FFFFFFFF
:1000560A 33C0                    xor eax, eax
:1000560C F2                      repnz
:1000560D AE                      scasb
:1000560E F7D1                    not ecx
:10005610 49                      dec ecx
:10005611 83F90A                  cmp ecx, 0000000A  <==检查输入的code是否是10位数
:10005614 743F                    je 10005655
:10005616 8D542410                lea edx, dword ptr [esp+10]

* Possible StringData Ref from Data Obj ->"Sorry, that unlocking code is "
                                        ->"not valid for this program."
                                  |
:1000561A 6890180210              push 10021890
:1000561F 52                      push edx
:10005620 E88BF20000              call 100148B0
:10005625 83C408                  add esp, 00000008
:10005628 8D442410                lea eax, dword ptr [esp+10]
:1000562C 6A30                    push 00000030

* Possible StringData Ref from Data Obj ->"Invalid Unlocking Code"
                                  |
:1000562E 6878180210              push 10021878
:10005633 50                      push eax
:10005634 55                      push ebp

* Reference To: USER32.MessageBoxA, Ord:0195h
                                  |
:10005635 FF15A8950310            Call dword ptr [100395A8]
:1000563B 8B0D74170310            mov ecx, dword ptr [10031774]
:10005641 83C8FF                  or eax, FFFFFFFF
:10005644 66C741040000            mov [ecx+04], 0000
:1000564A 5F                      pop edi
:1000564B 5E                      pop esi
:1000564C 5D                      pop ebp
:1000564D 5B                      pop ebx
:1000564E 81C470020000            add esp, 00000270
:10005654 C3                      ret



* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:10005614(C)
|
:10005655 BF10B00210              mov edi, 1002B010
:1000565A 83C9FF                  or ecx, FFFFFFFF
:1000565D 33C0                    xor eax, eax
:1000565F 8D94240C010000          lea edx, dword ptr [esp+0000010C]
:10005666 F2                      repnz
:10005667 AE                      scasb
:10005668 F7D1                    not ecx
:1000566A 2BF9                    sub edi, ecx
:1000566C 8BC1                    mov eax, ecx
:1000566E 8BF7                    mov esi, edi
:10005670 8BFA                    mov edi, edx
:10005672 8B1574170310            mov edx, dword ptr [10031774]
:10005678 C1E902                  shr ecx, 02
:1000567B F3                      repz
:1000567C A5                      movsd
:1000567D 8BC8                    mov ecx, eax
:1000567F 81C2B6000000            add edx, 000000B6
:10005685 83E103                  and ecx, 00000003
:10005688 8D84240C010000          lea eax, dword ptr [esp+0000010C]
:1000568F F3                      repz
:10005690 A4                      movsb
:10005691 8D8C24D8000000          lea ecx, dword ptr [esp+000000D8]
:10005698 51                      push ecx
:10005699 52                      push edx
:1000569A 50                      push eax
:1000569B E8B0620000              call 1000B950
:100056A0 83C40C                  add esp, 0000000C
:100056A3 8D8C24D8000000          lea ecx, dword ptr [esp+000000D8]  <==ecx指向real
code
:100056AA 68E00D0310              push 10030DE0
:100056AF 51                      push ecx
:100056B0 E8ABA20100              call 1001F960  <==real code与你输入code进行比较
:100056B5 83C408                  add esp, 00000008
:100056B8 85C0                    test eax, eax
:100056BA 0F85AC020000            jne 1000596C
:100056C0 8D942480010000          lea edx, dword ptr [esp+00000180]

你用F10执行到:100056AA这一行时,下命令"d ecx",即可看到数据窗口中显示的real code(我的是
UnlockingCode=JDALNFVWQI),是不是真的很简单?
      在注册窗口重新填入你的code,press OK,出现类似Explorer中复制文件的窗口,告诉你请等
待,稍等片刻,程序注册成功,出现主窗口!
      到此为止,你已百分之百地cracking了该程序!

                  ---------========The Final========----------

      所有用RS封装的程序破解过程是完全一样的,不同的只是UnlockingCode!