• 标 题:听力之友1.0破解 (3千字)
  • 作 者:fwnl
  • 时 间:2002-2-28 11:03:04
  • 链 接:http://bbs.pediy.com

听力之友1.0破解
Crack by fwnl
软件说明:
“听力之友”是一款侧重于练习英语听力的电脑复读软件。它绝不同于一般的电子复读机的功能,
通过对波形语音文件的智能断句,满足英语学习者通过听写、读背突破听力的功能。
此软件为作者在用"逆向法"学习英语的过程中根据自己的体会和现在市面上的软件的不足而设计的。
方便的单句模式,特别适合于用”逆向法“练习英语听力的初级、中级英语爱好者。
下载:http://cnfatcat.6to23.com/elf.zip
破解工具:TRW2000 w32dasm8.93

用w32dasm8.93反编后发现程序是通过判断注册码是否符合7个不同的条件以决定是否注册成功
第一个条件判断处:
:0040AC83 83BDF0FEFFFF08          cmp dword ptr [ebp+FFFFFEF0], 00000008
:0040AC8A 0F84E0000000            je 0040AD70    //不跳就失败                   
:0040AC90 66C7850CFFFFFF8000      mov word ptr [ebp+FFFFFF0C], 0080

* Possible StringData Ref from Data Obj ->"注册码不正确"
                                  |
:0040AC99 BA6C024400              mov edx, 0044026C
:0040AC9E 8D45D8                  lea eax, dword ptr [ebp-28]
:0040ACA1 E8DECD0100              call 00427A84

第二个条件判断处:
:0040B029 59                      pop ecx
:0040B02A 84C9                    test cl, cl
:0040B02C 0F84E0000000            je 0040B112    //不跳就失败
:0040B032 66C7850CFFFFFFE000      mov word ptr [ebp+FFFFFF0C], 00E0

* Possible StringData Ref from Data Obj ->"注册码不正确"
                                  |
:0040B03B BA81024400              mov edx, 00440281
:0040B040 8D45AC                  lea eax, dword ptr [ebp-54]
:0040B043 E83CCA0100              call 00427A84
第三个条件判断处:
:0040B1D3 E808CA0100              call 00427BE0
:0040B1D8 59                      pop ecx
:0040B1D9 84C9                    test cl, cl
:0040B1DB 0F84E0000000            je 0040B2C1  //不跳就失败
:0040B1E1 66C7850CFFFFFFF800      mov word ptr [ebp+FFFFFF0C], 00F8

* Possible StringData Ref from Data Obj ->"注册码不正确"
                                  |
:0040B1EA BA94024400              mov edx, 00440294
:0040B1EF 8D459C                  lea eax, dword ptr [ebp-64]
:0040B1F2 E88DC80100              call 00427A84
:0040B1F7 FF8518FFFFFF            inc dword ptr [ebp+FFFFFF18]

四到六和前面都差不多,所以略过

第七个条件判断处:
:0040BA12 59                      pop ecx
:0040BA13 84C9                    test cl, cl
:0040BA15 0F84E6000000            je 0040BB01    //这里跳注册便成功了
:0040BA1B 66C7850CFFFFFF5801      mov word ptr [ebp+FFFFFF0C], 0158

* Possible StringData Ref from Data Obj ->"注册码不正确"
                                  |
:0040BA24 BAE8024400              mov edx, 004402E8
:0040BA29 8D854CFFFFFF            lea eax, dword ptr [ebp+FFFFFF4C]
:0040BA2F E850C00100              call 00427A84

综合看出如果要注册成功,程序必需跳到0040bb01处,用TRW2000载入后bpx 0040AC8A(第一个跳转处)
填入注册码点确定中断后 a 40ac8a,然后写 jmp 40bb01(注意补一个nop),F5返回程序发现注册成功,
重新运行程序发现还是注册了.于是在注册表中找到注册标记如下:
REGEDIT4

[HKEY_CURRENT_USER\Software\elf]
"init"="30"
把这个文件做成个注册表文件就可当注册机用了,哈哈
      ******                        ***                        fwnl     
      ***                            **                    2002.2.28         
  ********  **** ** ***  ******    **                        长沙         
      **      *** * **    **  **    **                               
    ***      *******    ***  **    ***                             
    **      ** **      **  ***    ****                               
  ***