《MAGICWIN RELEASE 1.2》註冊碼破解
目標:MAGICWIN
古老的內碼轉換工具,但因為本人一直在用它,而且尚未註冊,所以就那 它練手了!
作者:RATARICE[BCG]
工具:TRW2000 1.22
過程:
一、 執行MAGICWIN,彈出註冊框。(因為我的已經過期了!)
填上serial number:(已填好)
your name: RATARICE[BCG]
registration code: 987654321000 (比sn長,才行!後邊會講到)
二、 執行TRW
CTRL+N,下BPX HMEMCPY,CTRL+N
三、 點“OK”。被攔。下BD *,PMODULE,程式如下:
1B87:0411 CALL `USER!GETDLGITEMTEXT`
1B87:0416 PUSH SI --------------------------->我們在著。
1B87:0417 PUSH WORD CA
1B87:041A PUSH SS
.
.
.
.
.
.
1B87:0505 LEA AX,[BP+FEC8]
1B87:0509 PUSH AX
1B87:050A PUSH SS
1B87:050B LEA AX,[BP-38]
1B87:050E PUSH AX
1B87:050F PUSH SS
1B87:0510 LEA AX,[BP-1C]
1B87:0513 PUSH AX
1B87:0514 CALL 03AB ----------------->此處為關鍵。追進去。
1B87:0519 ADD SP,BYTE +0E
1B87:051C CMP AX,01 ---------------->比較AX的值,判斷註冊是否成功
1B87:051F JNZ 0579 ----------------->跳則出錯。
1B87:0521 CALL 73
***************************************
CALL 03AB 中的程式碼如下:
2F6F:03AB PUSH BP ------------------->我們在著。
2F6F:03AC MOV BP,SP
2F6F:03AE SUB SP,86
2F6F:03B2 PUSH SI
2F6F:03B3 PUSH DI
2F6F:03B4 MOV WORD [BP-02],00
2F6F:03B9 PUSH DWORD [BP+06]
2F6F:03BD CALL `KERNEL!LSTRLEN` ----->取機器碼的長度。
2F6F:03C2 PUSH AX
2F6F:03C3 PUSH DWORD [BP+0A]
2F6F:03C7 CALL `KERNEL!LSTRLEN` ----->取註冊碼的長度。
2F6F:03CC POP DX
2F6F:03CD CMP DX,AX ---------------->比較,如果大於則繼續。
2F6F:03CF JNG 03F6
往下找,一直到:
48DF:04D4 LEA AX,[BP+FF7A]
48DF:04D8 MOV DX,DI
48DF:04DA ADD DX,AX
48DF:04DC PUSH SS
48DF:04DD PUSH DX
48DF:04DE CALL `USER!_WSPRINTF`
48DF:04E3 ADD SP,BYTE +0C
48DF:04E6 PUSH SS
48DF:04E7 LEA AX,[BP+FF7A]
48DF:04EB PUSH AX ------------------->打D AX,就可看到真註冊碼了。
48DF:04EC PUSH DWORD [BP+0A]
48DF:04F0 CALL `USER!LSTRCMP`
小結:
serial number: MGW40172-10
your name: RATARICE[BCG]
registration code: MGWEAFFGIPN988