• 标 题:Vcd Cutter 4.03 crack (7千字)
  • 作 者:mr.wei
  • 时 间:2001-3-21 17:54:58
  • 链 接:http://bbs.pediy.com

Vcd Cutter 4.03 crack
支持众多文件格式(MPG,DAT,AVI,WAV,MOV,M1V,MPV),
能将MPG切割开来,以小文件形式保存起
来,能将AVI文件转换成MPG格式,能控制播放速度,
需要DirectX Media 5.x Runtime(DXM)。
保护方法:典型的国产软件,每台安装机器产生
一个唯一的hardcode,结合用户输入的name,
产生一个授权码。生成的注册文件cdplayer.dat
存放在\windows\system文件夹。
工具:TRW2000 V1.22
1、注册:注意姓名必须含有"."和"@",即以邮件地址的形式出现,
否则无法正确注册
Name=Mr.Wei@China.edu
Code=987654321
2、bpx hmemcpy
单击注册,弹出TR,因为有两个输入框,所以再次按F5退出TR,
很快又返回TR
pmodule
TR自动跟踪到程序入口点,
这点TR要比SI强,后者要按多次F12才能找到入口点
0167:0042D095  LEA      EDX,[ESP+50] //程序执行到此处
0167:0042D099  LEA      EAX,[ESP+10]
0167:0042D09D  PUSH    EDX
0167:0042D09E  PUSH    EAX
0167:0042D09F  CALL    004208E0 //关键调用,F8跟入
0167:0042D0A4  ADD      ESP,BYTE +08
0167:0042D0A7  TEST    EAX,EAX
0167:0042D0A9  JZ      NEAR 0042D132 //跳转到出错对话框
0167:0042D0AF  MOV      ECX,[0049B878]
0167:0042D0B5  PUSH    ECX
0167:0042D0B6  CALL    `GDI32!DeleteObject`
0167:0042D0BC  MOV      EDX,[0049B7D0]
0167:0042D0C2  PUSH    BYTE +7B
0167:0042D0C4  PUSH    EDX
0167:0042D0C5  CALL    `USER32!LoadBitmapA`
0167:0042D0CB  MOV      [0049B878],EAX
0167:0042D0D0  LEA      EAX,[ESP+50]
0167:0042D0D4  PUSH    BYTE +01
0167:0042D0D6  LEA      ECX,[ESP+14]
0167:0042D0DA  PUSH    EAX
0167:0042D0DB  PUSH    ECX
0167:0042D0DC  CALL    00420340
0167:0042D0E1  ADD      ESP,BYTE +0C
0167:0042D0E4  PUSH    BYTE +01
0167:0042D0E6  PUSH    ESI
0167:0042D0E7  CALL    `USER32!EndDialog`
0167:0042D0ED  MOV      EDX,[00486C68]
0167:0042D0F3  PUSH    EDX
0167:0042D0F4  CALL    `USER32!SetActiveWindow`
0167:0042D0FA  MOV      ECX,[00486C68]
0167:0042D100  LEA      EAX,[ESP+10]
0167:0042D104  PUSH    BYTE +00
0167:0042D106  PUSH    EAX
0167:0042D107  PUSH    DWORD 0044BBFC
0167:0042D10C  PUSH    ECX
0167:0042D10D  CALL    EBX
0167:0042D10F  MOV      EDX,[00486C68]
0167:0042D115  PUSH    BYTE +00
0167:0042D117  PUSH    BYTE +00
0167:0042D119  PUSH    EDX
0167:0042D11A  CALL    `USER32!InvalidateRect`
0167:0042D120  MOV      EAX,01
0167:0042D125  POP      EDI
0167:0042D126  POP      ESI
0167:0042D127  POP      EBP
0167:0042D128  POP      EBX
0167:0042D129  ADD      ESP,0380
0167:0042D12F  RET      10
0167:0042D132  PUSH    BYTE -01
0167:0042D134  CALL    `USER32!MessageBeep`
0167:0042D13A  MOV      EAX,[00486C68]
0167:0042D13F  PUSH    BYTE +00
0167:0042D141  PUSH    DWORD 0044BBF4
0167:0042D146  PUSH    DWORD 0044BB70
0167:0042D14B  PUSH    EAX
0167:0042D14C  CALL    EBX //出错对话框
0167:0042D14E  MOV      EAX,01
0167:0042D153  POP      EDI
0167:0042D154  POP      ESI
0167:0042D155  POP      EBP
0167:0042D156  POP      EBX
0167:0042D157  ADD      ESP,0380
0167:0042D15D  RET      10
上述代码的分析应该自下而上:找到出错对话框,
向上查找何处跳转到此处,也就是何处可以跳过出错对话框的显示。
下面代码分析方法也是如此。
3、F8追入    0167:0042D09F  CALL    004208E0
追踪时注意一般按F10,执行到 REPNE SCASB、 REP MOVSB
REP MOVSD 时改按F8,因为TR有个Bug,无法正确跟踪,而SI则可以,
不知刘涛涛在V1.23中改没改掉。
0167:004208E0  SUB      ESP,0208
0167:004208E6  OR      ECX,BYTE -01
0167:004208E9  XOR      EAX,EAX
0167:004208EB  LEA      EDX,[ESP+08]
0167:004208EF  PUSH    EBX
0167:004208F0  PUSH    ESI
0167:004208F1  PUSH    EDI
0167:004208F2  MOV      EDI,0044A470
0167:004208F7  REPNE SCASB
0167:004208F9  NOT      ECX
0167:004208FB  SUB      EDI,ECX
0167:004208FD  MOV      EAX,ECX
0167:004208FF  MOV      ESI,EDI
0167:00420901  MOV      EDI,EDX
0167:00420903  XOR      EDX,EDX
0167:00420905  SHR      ECX,02
0167:00420908  REP MOVSD
0167:0042090A  MOV      ECX,EAX
0167:0042090C  XOR      EAX,EAX
0167:0042090E  AND      ECX,BYTE +03
0167:00420911  REP MOVSB
0167:00420913  MOV      ESI,[ESP+0218]
0167:0042091A  OR      ECX,BYTE -01
0167:0042091D  MOV      EDI,ESI
0167:0042091F  REPNE SCASB
0167:00420921  NOT      ECX
0167:00420923  DEC      ECX
0167:00420924  JZ      0042094A
0167:00420926  MOV      EBX,ESI
0167:00420928  LEA      ECX,[ESP+14]
0167:0042092C  SUB      EBX,ECX
0167:0042092E  LEA      EAX,[ESP+EDX+14]
0167:00420932  MOV      EDI,ESI
0167:00420934  INC      EDX
0167:00420935  MOV      CL,[EAX+EBX]
0167:00420938  XOR      EAX,EAX
0167:0042093A  MOV      [ESP+EDX+13],CL
0167:0042093E  OR      ECX,BYTE -01
0167:00420941  REPNE SCASB
0167:00420943  NOT      ECX
0167:00420945  DEC      ECX
0167:00420946  CMP      EDX,ECX
0167:00420948  JC      0042092E
0167:0042094A  MOV      BYTE [ESP+EDX+14],00
0167:0042094F  PUSH    BYTE +01
0167:00420951  PUSH    DWORD 00459E80
0167:00420956  LEA      EDX,[ESP+1C]
0167:0042095A  PUSH    BYTE +08
0167:0042095C  PUSH    EDX
0167:0042095D  PUSH    DWORD 0044A3F0
0167:00420962  CALL    00419420
0167:00420967  ADD      ESP,BYTE +14
0167:0042096A  LEA      EAX,[ESP+14]
0167:0042096E  LEA      ECX,[ESP+0C]
0167:00420972  PUSH    BYTE +04
0167:00420974  PUSH    EAX
0167:00420975  PUSH    ECX
0167:00420976  CALL    `MSVCRT!memmove`
0167:0042097B  ADD      ESP,BYTE +0C
0167:0042097E  LEA      EDX,[ESP+18]
0167:00420982  LEA      EAX,[ESP+10]
0167:00420986  PUSH    BYTE +04
0167:00420988  PUSH    EDX
0167:00420989  PUSH    EAX
0167:0042098A  CALL    `MSVCRT!memmove`
0167:0042098F  ADD      ESP,BYTE +0C
0167:00420992  LEA      ECX,[ESP+14]
0167:00420996  PUSH    BYTE +00
0167:00420998  PUSH    DWORD 00459E80
0167:0042099D  PUSH    BYTE +08
0167:0042099F  PUSH    ECX
0167:004209A0  PUSH    DWORD 0044A3F0
0167:004209A5  CALL    00419420
0167:004209AA  MOV      EDX,[ESP+24]
0167:004209AE  MOV      EAX,[ESP+20]
0167:004209B2  ADD      ESP,BYTE +14
0167:004209B5  LEA      ECX,[ESP+0114]
0167:004209BC  PUSH    EDX
0167:004209BD  PUSH    EAX
0167:004209BE  PUSH    DWORD 0044A44C
0167:004209C3  PUSH    ECX
0167:004209C4  CALL    `USER32!wsprintfA`
0167:004209CA  MOV      ESI,[ESP+022C] //d esi显示输入的code
0167:004209D1  ADD      ESP,BYTE +10
0167:004209D4  LEA      EAX,[ESP+0114] //d eax显示真正的code
0167:004209DB  MOV      DL,[EAX]
0167:004209DD  MOV      BL,[ESI]
0167:004209DF  MOV      CL,DL
0167:004209E1  CMP      DL,BL
0167:004209E3  JNZ      00420A14
0167:004209E5  TEST    CL,CL
0167:004209E7  JZ      004209FF
0167:004209E9  MOV      DL,[EAX+01]
0167:004209EC  MOV      BL,[ESI+01]
0167:004209EF  MOV      CL,DL
0167:004209F1  CMP      DL,BL
0167:004209F3  JNZ      00420A14
0167:004209F5  ADD      EAX,BYTE +02
0167:004209F8  ADD      ESI,BYTE +02
0167:004209FB  TEST    CL,CL
0167:004209FD  JNZ      004209DB
0167:004209FF  XOR      EAX,EAX
0167:00420A01  XOR      ECX,ECX
0167:00420A03  TEST    EAX,EAX
0167:00420A05  SETZ    CL
0167:00420A08  MOV      EAX,ECX
0167:00420A0A  POP      EDI
0167:00420A0B  POP      ESI
0167:00420A0C  POP      EBX
0167:00420A0D  ADD      ESP,0208
0167:00420A13  RET   
4、所以最快速的破解方法是
bpx 167:4209d4
追踪到后 d eax 就看到自己到code了。
5、破解后vcdcutter截取文件时仍然有7秒种时间限制,
因为软件本身就是演示版本,软件作者
Jiao ShanWu 说为给您带来的不便而抱歉。
没办法,只能给Jiao ShanWu 寄50元,
才能得到正式版本。
Kao,Jiao ShanWu , I 服了you!.
(Mr.Wei,2001-3-22)