我的破解之路-BBOY (3千字)

看雪資料發表於2000-07-21

我的破解之路――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了(由此可見直接比較註冊碼的方式十分的不可靠)

後記:這個軟體是垃圾,第一次使用後我就把它給刪除了

相關文章