• 标 题:我的破解之路-BBOY (3千字)
  • 作 者:guest(bboycool@263.net)
  • 时 间:2000-7-21 1:22:31
  • 链 接:http://bbs.pediy.com

我的破解之路——BBOY

1.Win2000破解过程(第一次成功地破解)    2000-7-15

首先用Trw2000下断点bpx getdlgitemtexta
一共会有五次,因为有五个输入框

执行完五次getdlgitemtexta后,会有一个call,跟踪进去
----------------------------------------------------
......
......
0187:0140EC66  TEST    EAX,EAX
0187:0140EC68  JZ      0140EC84    ------错误的地址(使用r eip改正地址)
----------------------------------------------------
0187:0140EC6A  MOV      EAX,[01428064]
0187:0140EC6F  CMP      EAX,EDI
0187:0140EC71  JZ      0140EC8D    ------正确的地址
0187:0140EC73  MOV      ECX,[0142BA18]
0187:0140EC79  CMP      ECX,[EBP+18]
0187:0140EC7C  JZ      0140EC8D    ------正确的地址(使用r eip改正地址)
----------------------------------------------------
执行此段的话就会跳转到错误的地址
0187:0140EC7E  MOV      [0142B934],EBX
0187:0140EC84  XOR      EAX,EAX
0187:0140EC86  POP      EDI
0187:0140EC87  POP      ESI
0187:0140EC88  POP      EBX
0187:0140EC89  LEAVE 
0187:0140EC8A  RET      14
-----------------------------------------------------
0187:0140EC8D  ......    正确的地址

后记:
    Win2000的加密很有意思,它的注册码计算在一个子程序中。如果不正确,子程序就正常的退出;如果正确就跳转到正确的代码区执行程序。



2.Hex Workshop2.10破解过程    2000-7-17

首先输入注册码 87654321
用Trw2000下断点bpx getwindowtexta
中断后用指令pmodule返回
-----------------------------------------------------
0187:00441F5E  CALL    `USER32!GetWindowTextA`
0187:00441F64  PUSH    BYTE -01
0187:00441F66  MOV      ECX,EDI
0187:00441F68  CALL    00434F8B    获得注册码长度
0187:00441F6D  JMP      SHORT 00441F7B
不断地按F8(很长的一段时间)
-----------------------------------------------------
0187:00416367  MOV      [EBP-10],EAX
0187:0041636A  CMP      DWORD [EBP-10],BYTE +00
跳向错误的地址:
0187:0041636E  JZ      NEAR 004163ED    使用r eip改正
-----------------------------------------------------
0187:00416374  MOV      ECX,[EBP+FFFFFF2C]
0187:0041637A  ADD      ECX,BYTE +5C
0187:0041637D  CALL    00404760
0187:00416382  PUSH    EAX
0187:00416383  MOV      EAX,[EBP+FFFFFF2C]
0187:00416389  MOV      EAX,[EAX+68]
0187:0041638C  ADD      EAX,BYTE +02
0187:0041638F  PUSH    EAX
0187:00416390  CALL    00428888
0187:00416395  ADD      ESP,BYTE +08
--------------------------------------------------------

后记:
    这个软件很奇怪,执行时总是跳来跳去,估计是经过加密了的。在注册后,程序所在的文件夹中生成一个HEXWORKS.REG的文件。



3.打字高手2.01破解过程    2000-7-19

首先输入注册码 87654321
用Trw2000下断点bpx hmemcpy (getwindowtexta和getdlgitemtexta无效)
中断后用指令pmodule返回
s 0030:0,ffffffff '87654321'
得到输入的注册码地址 xxxxxxxx
bpm xxxxxxxx rw
g

程序中断在:
--------------------------------------------------------
0187:00403FFD  ADD      EDX,EAX
0187:00403FFF  PUSH    EDX
0187:00404000  SHR      EDX,02
0187:00404003  JZ      0040402B
--------------------------------------------------------
前四个字节比较:
0187:00404005  MOV      ECX,[ESI]
0187:00404007  MOV      EBX,[EDI]
0187:00404009  CMP      ECX,EBX
0187:0040400B  JNZ      00404065    错误的地址
--------------------------------------------------------
后四个字节比较:
0187:0040400D  DEC      EDX
0187:0040400E  JZ      00404025
0187:00404010  MOV      ECX,[ESI+04]
0187:00404013  MOV      EBX,[EDI+04]
0187:00404016  CMP      ECX,EBX
0187:00404018  JNZ      00404065    错误的地址
---------------------------------------------------------
只要d edi就可以看都注册码79826002了(由此可见直接比较注册码的方式十分的不可靠)

后记:这个软件是垃圾,第一次使用后我就把它给删除了