• 标 题:密码大师4.0破解过程 (3千字)
  • 作 者:conanxu[BCG]
  • 时 间:2001-5-6 16:23:05
  • 链 接:http://bbs.pediy.com

密码大师4.0破解过程
软件下载:http://www.inhua.com/down/jm4.0.zip
用Trw2000载入文件运行,下断点bpx messageboxa,选择大于2M的文件,被拦下,按F12到下面
016F:004020D1  LEA      ECX,[EBP+FFFE772C]
016F:004020D7  CALL    004892A1
016F:004020DC  MOV      EDX,[EBP-10]
016F:004020DF  MOV      EAX,[EDX+1FBC]
016F:004020E5  MOV      ECX,[EBP-10]
016F:004020E8  CMP      DWORD [ECX+EAX*4+101C],00200B20    -->监测文件长度
016F:004020F3  JNA      004020F7                          -->不跳就死,改为JMP SHORT 004020F7
016F:004020F5  JMP      SHORT 00402118
016F:004020F7  MOV      EDX,[EBP-10]
016F:004020FA  MOV      EAX,[EDX+1FBC]
016F:00402100  ADD      EAX,BYTE +01
016F:00402103  MOV      ECX,[EBP-10]
016F:00402106  MOV      [ECX+1FBC],EAX
016F:0040210C  MOV      EDX,[EBP-10]
016F:0040210F  CMP      DWORD [EDX+1FBC],BYTE +02          -->监测载入文件数目
016F:00402116  JNG      00402140                          -->不跳就死,改为JMP SHORT 00402140
016F:00402118  PUSH    BYTE +00
016F:0040211A  PUSH    DWORD 005B8710
016F:0040211F  PUSH    DWORD 005B84DC
016F:00402124  MOV      ECX,[EBP-10]
016F:00402127  CALL    00484682                          -->这里面就是错误提示了,向上看看
016F:0040212C  MOV      BYTE [EBP-04],00
016F:00402130  LEA      ECX,[EBP+FFFE772C]
016F:00402136  CALL    00488A4E
016F:0040213B  JMP      00402238
016F:00402140  MOV      BYTE [EBP-04],00
016F:00402144  LEA      ECX,[EBP+FFFE772C]
016F:0040214A  CALL    00488A4E
破解完成。。。。。
退出。。。
什么。。。。竟然有出现提示窗口,干掉他,下断点bpx messageboxa,运行软件,推出,程序被栏下,按2次F12到下面
016F:00402FD9  POP      ECX
016F:00402FDA  MOV      [EBP-04],ECX
016F:00402FDD  PUSH    BYTE +00
016F:00402FDF  PUSH    DWORD 005B8710
016F:00402FE4  PUSH    DWORD 005B84DC
016F:00402FE9  MOV      ECX,[EBP-04]
016F:00402FEC  CALL    00484682                          -->这个就是退出的提示窗口了,用5个nop盖了它
016F:00402FF1  MOV      ECX,[EBP-04]
016F:00402FF4  CALL    0047F1B9
016F:00402FF9  POP      EDI
016F:00402FFA  POP      ESI
016F:00402FFB  POP      EBX
016F:00402FFC  ADD      ESP,BYTE +44
016F:00402FFF  CMP      EBP,ESP
016F:00403001  CALL    0041F440
016F:00403006  MOV      ESP,EBP
016F:00403008  POP      EBP
本想该结束了吧,没想到退出时又出现了提示窗口,bpx messageboxa,按2次F12到下面
016F:00424773  AND      ECX,BYTE +04
016F:00424776  TEST    ECX,ECX
016F:00424778  JZ      004247E8                    -->这个跳转可以带过下面的CALL,改为JMP SHORT 004247E8
016F:0042477A  CMP      DWORD [EBP+10],BYTE +00
016F:0042477E  JZ      0042479D
016F:00424780  PUSH    BYTE +0A
016F:00424782  LEA      EDX,[EBP+FFFFCFDC]
016F:00424788  PUSH    EDX
016F:00424789  MOV      EAX,[EBP+10]
016F:0042478C  PUSH    EAX
016F:0042478D  CALL    004280D0
016F:00424792  ADD      ESP,BYTE +0C
016F:00424795  MOV      [EBP+FFFFCFD4],EAX
016F:0042479B  JMP      SHORT 004247A7
016F:0042479D  MOV      DWORD [EBP+FFFFCFD4],00
016F:004247A7  LEA      ECX,[EBP+FFFFF000]
016F:004247AD  PUSH    ECX
016F:004247AE  MOV      EDX,[EBP+14]
016F:004247B1  PUSH    EDX
016F:004247B2  MOV      EAX,[EBP+FFFFCFD4]
016F:004247B8  PUSH    EAX
016F:004247B9  MOV      ECX,[EBP+0C]
016F:004247BC  PUSH    ECX
016F:004247BD  MOV      EDX,[EBP+08]
016F:004247C0  PUSH    EDX
016F:004247C1  CALL    00424800                      -->这里是错误框
016F:004247C6  ADD      ESP,BYTE +14
016F:004247C9  MOV      [EBP+FFFFEFF8],EAX
016F:004247CF  CMP      DWORD [EBP+08],BYTE +02
016F:004247D3  JNZ      004247E0
016F:004247D5  PUSH    DWORD 005E5688
016F:004247DA  CALL    `KERNEL32!InterlockedDecrement`
016F:004247E0  MOV      EAX,[EBP+FFFFEFF8]
016F:004247E6  JMP      SHORT 004247FB
016F:004247E8  CMP      DWORD [EBP+08],BYTE +02
016F:004247EC  JNZ      004247F9
载运行一下,一切流畅,到此破解终于完成了
烦。。。。。


conanxu[BCG]
conanxu@eastday.com