• 标 题:Audio Companion 1.14 (3千字)
  • 作 者:d16
  • 时 间:2001-2-23 13:13:56
  • 链 接:http://bbs.pediy.com

目标软件:Audio Companion 1.14
软件作用:主要用来抓CD音轨并制为MP3、WAV等格式,也可以播放CD,不注册时只能抓CD上的前两首
破解工具:TRW2000、Ultra Edit 8
过程:
在Enter Password:对话框胡乱填敲几个字符,设断点:bpx hmemcpy后点OK,被中断,清断点后PMODULE来到程序领空(或按9~10下F12),直接来到这里:

:00404CD8 E873FDFFFF      call 00404A50             
:00404CDD 85C0            test eax, eax
:00404CDF 7456            je 00404D37                  ;跳了就出现"Not a valid password!"对话框
************************************************************************************************ :00404A50 83EC50          sub esp, 00000050            ;所以在call 00404A50按F8进去
......                                                  ;一直F10走到这里

:00404ABD E86E0C0000      call 00405730                ;调用00405730
:00404AC2 85C0            test eax, eax               
:00404AC4 741E            je 00404AE4                  ;不跳的话继续
:00404AC6 8D4C2400        lea ecx, dword ptr [esp]
:00404ACA 6824114400      push 00441124
:00404ACF 51              push ecx
:00404AD0 B9E80B4400      mov ecx, 00440BE8
:00404AD5 E8560C0000      call 00405730                ;又调用00405730
:00404ADA 85C0            test eax, eax
:00404ADC 7406            je 00404AE4                  ;不跳的话就return,所以看看00404AE4
:00404ADE 33C0            xor eax, eax
:00404AE0 83C450          add esp, 00000050
:00404AE3 C3              ret
************************************************************************************************
:00404AE4 8B1564114400    mov edx, dword ptr [00441164]
......                                                  ;按数次F10
:00404B02 E8290C0000      call 00405730               
:00404B07 85C0            test eax, eax               
:00404B09 741E            je 00404B29
:00404B0B 8D442400        lea eax, dword ptr [esp]
:00404B0F 6824114400      push 00441124
:00404B14 50              push eax
:00404B15 B9E80B4400      mov ecx, 00440BE8
:00404B1A E8110C0000      call 00405730
:00404B1F 85C0            test eax, eax
:00404B21 7406            je 00404B29
:00404B23 33C0            xor eax, eax
:00404B25 83C450          add esp, 00000050            ;和上面代码完全一样,还调用00405730,不
:00404B28 C3              ret                          ;跳的话就RETURN,再到00404B29去看看
************************************************************************************************
;还是一样的代码,不跳就RETURN,再跳两次来到下面:
:00404BB3 A164114400      mov eax, dword ptr [00441164]
:00404BB8 0C08            or al, 08
:00404BBA A364114400      mov dword ptr [00441164], eax
:00404BBF B801000000      mov eax, 00000001            ;eax置1
:00404BC4 83C450          add esp, 00000050
:00404BC7 C3              ret                          ;看来应从这里返回就可以注册成功.

解决方法:
1.把E873FDFFFF(call 00404A50)改为B801000000(mov eax, 00000001)。
2.把E873FDFFFF85C07456改为E873FDFFFF85C07556,就是je变jne。
3.把几个相似模块里第一次调用00405730后面的74(je)改为75(jne)。

注:
1.前两种解决方法很方便,但不彻底:输入password后显示"Thanks for registering!"并可完全使用,但下一次启动就又成了未注册版。第三种方法虽麻烦些,但没有上面的问题。为什么?极盼赐答。
2.关于那个反复被CALL的00405730,我进去看过,因为能力有限,未能有所斩获。但我认为password一定可以从那里得到,而且我认为我的解决方法不太高明,均请各位高手补充,多谢。
3.这个软件的破解十分容易,结构简单,像我这样的菜鸟都能搞定。且体积不大——190K,新手一定要试试。
URL:http://www.yes2.net/down/audiocom.zip

  • 标 题:搞定! (2千字)
  • 作 者:THK
  • 时 间:2001-2-23 19:38:05

ok!
我来讲讲!
016F:00404A50  SUB      ESP,BYTE +50
016F:00404A53  CALL    004048B0
016F:00404A58  PUSH    EAX      <--------- ? eax 注意到吗?
016F:00404A59  LEA      EAX,[ESP+34]
016F:00404A5D  PUSH    EAX
016F:00404A5E  MOV      ECX,00440BE8
016F:00404A63  CALL    00405770
016F:00404A68  LEA      ECX,[ESP+30]
016F:00404A6C  PUSH    ECX
016F:00404A6D  CALL    00404A10
016F:00404A72  ADD      ESP,BYTE +04
016F:00404A75  LEA      EDX,[ESP+18]
016F:00404A79  MOV      ECX,00440BE8
016F:00404A7E  PUSH    EDX
016F:00404A7F  CALL    004059D0
016F:00404A84  PUSH    EAX
016F:00404A85  MOV      ECX,00440BE8
016F:00404A8A  CALL    00405C10
016F:00404A8F  LEA      ECX,[ESP+00]
016F:00404A93  PUSH    BYTE +10
016F:00404A95  PUSH    ECX
016F:00404A96  PUSH    EAX
016F:00404A97  CALL    00424CC7
016F:00404A9C  ADD      ESP,BYTE +0C
016F:00404A9F  LEA      EDX,[ESP+00]
016F:00404AA3  MOV      ECX,00440BE8
016F:00404AA8  PUSH    EDX
016F:00404AA9  CALL    00405990
016F:00404AAE  LEA      EAX,[ESP+30]  <-------? eax  正确的password
016F:00404AB2  PUSH    DWORD 00441124  <-----? 441124  你输入的
016F:00404AB7  PUSH    EAX
016F:00404AB8  MOV      ECX,00440BE8
016F:00404ABD  CALL    00405730    开始比较
016F:00404AC2  TEST    EAX,EAX
--------------------------------------------------------------
016F:00405730  MOV      EAX,[ESP+04]
016F:00405734  PUSH    ESI
016F:00405735  XOR      ESI,ESI
016F:00405737  MOV      CL,[EAX]    <------ 取一位到cl
016F:00405739  PUSH    EDI
016F:0040573A  MOV      EDI,[ESP+10]
016F:0040573E  TEST    CL,CL        <-------测试
016F:00405740  JZ      00405754
016F:00405742  MOV      EDX,EDI
016F:00405744  SUB      EDX,EAX
016F:00405746  CMP      CL,[EDX+EAX]      <------比较
016F:00405749  JNZ      00405763
016F:0040574B  MOV      CL,[EAX+01]
016F:0040574E  INC      ESI        <--------
016F:0040574F  INC      EAX        <--------计数器
016F:00405750  TEST    CL,CL
016F:00405752  JNZ      00405746
016F:00405754  MOV      CL,[ESI+EDI]
016F:00405757  XOR      EAX,EAX
016F:00405759  TEST    CL,CL
016F:0040575B  POP      EDI
016F:0040575C  POP      ESI
016F:0040575D  SETNZ    AL      <-----------标志位

password:Bn9-pW-56z-aa
我们都在成长!

                                                THK