明天就開學了,開學後就會忙得要命,再也沒有時間來學習破解技術了。
所以這可能是我近期最後一篇文章了。
軟體名:Minicom 3.6
軟體簡介:對於家裡有兩臺電腦的朋友來說,這是個挺有用的軟體。
它可以用來控制網路上另一臺電腦的一切活動。包括執行軟體,更
改系統配置,關機,等等。由於它有實時螢幕抓圖的功能,所以一
切操作都象在自己這臺電腦上進行一樣。
下載地址:
http://dccnet.tucows.com/files2/mc30day.exe
所用的工具:
1.softICE 4.05.可在下列網址download
http://mud.sz.jsinfo.net/per/aaron/files/debuggers/win/si405w9x.zip
2.HIEW 6.01
下載地址: http://go2.163.com/%7Etoye/tools/hiew640reg.zip
破解思路:
本軟體的破解思路和步驟完全來自看雪教材。如果你對這類軟體
的破解原理還不瞭解,請看完這篇文章再看下去。
http://www.kanxue.com/lesson1404.htm
費話少說,讓我們開始吧!
I. 找出對比關鍵。
1. 用 SoftICE 的 Symbol Loader 載入 mincom.exe
2. 被攔下來後,下 bpx getlocaltime
3. 按 F5, 然後,就會被 SoftICE 再次攔下來。
4. 下 wc 取消顯示指令欄。
5. 然後就是狂按 F10 啦。一直到跳出SoftICE為止。
6. 回到 SoftICE 的 Symbol Loader ,選 File---> Save SoftICE History As...
吧剛才我們所看到的東西都儲存為log1.txt。
7. 把系統時間調後三個月。
8. 再用 SoftICE 的 Symbol Loader 載入 mincom.exe.
9. 用前面相同的步驟取得另外一個檔案,取名為 log2.txt.
10. 用寫字板開啟這兩個檔案。看從那裡開始,這兩個檔案開始不同。
我把這兩個檔案的相同部分帖在下面了。
Break due to BPX KERNEL32!GetLocalTime (ET=98.36 milliseconds)
KERNEL32!GetLocalTime
0177:BFF77256 PUSH BFFA2168
0177:BFF7725B PUSH DWORD PTR FS:[EDX]
0177:BFF7725E MOV FS:[EDX],ESP
0177:BFF77261 MOV ECX,[ESP+0C]
0177:BFF77265 ADD BYTE PTR [ECX],00
0177:BFF77268 ADD BYTE PTR [ECX+0F],00
0177:BFF7726C POP DWORD PTR FS:[EDX]
0177:BFF7726F ADD ESP,04
0177:BFF77272 JMP BFF76A58
(JUMP )
0177:BFF76A58 PUSH EBP
0177:BFF76A59 MOV EBP,ESP
0177:BFF76A5B PUSH EDI
0177:BFF76A5C PUSH EBX
0177:BFF76A5D PUSH DWORD PTR [BFFCAE10]
0177:BFF76A63 CALL KERNEL32!ORD_0061
0177:BFF76A68 MOV EDI,[EBP+08]
0177:BFF76A6B MOV ECX,00000004
0177:BFF76A70 SUB EAX,EAX
0177:BFF76A72 REPZ STOSD
0177:BFF76A74 MOV EDI,[EBP+08]
0177:BFF76A77 MOV AH,2A
0177:BFF76A79 CALL BFF712B9
0177:BFF76A7E MOV [EDI+02],DH
0177:BFF76A81 MOV [EDI+06],DL
0177:BFF76A84 MOV [EDI],CX
0177:BFF76A87 SUB AH,AH
0177:BFF76A89 MOV [EDI+04],AX
0177:BFF76A8D MOV AH,2C
0177:BFF76A8F CALL BFF712B9
0177:BFF76A94 MOV [EDI+08],CH
0177:BFF76A97 MOV [EDI+0A],CL
0177:BFF76A9A MOV [EDI+0C],DH
0177:BFF76A9D SUB DH,DH
0177:BFF76A9F IMUL DX,DX,0A
0177:BFF76AA3 MOV [EDI+0E],DX
0177:BFF76AA7 PUSH DWORD PTR [BFFCAE10]
0177:BFF76AAD CALL KERNEL32!ORD_0062
0177:BFF76AB2 POP EBX
0177:BFF76AB3 POP EDI
0177:BFF76AB4 LEAVE
0177:BFF76AB5 RET 0004
0177:00401FF1 MOV ECX,[EBP+08]
0177:00401FF4 MOV DL,[EBP-0A]
0177:00401FF7 MOV [ECX],DL
0177:00401FF9 MOV EAX,[EBP+08]
0177:00401FFC MOV CL,[EBP-0E]
0177:00401FFF MOV [EAX+01],CL
0177:00402002 MOV EDX,[EBP+08]
0177:00402005 MOV DWORD PTR [EDX+04],00000000
0177:0040200C MOV EAX,[EBP-10]
0177:0040200F AND EAX,0000FFFF
0177:00402014 MOV ECX,[EBP+08]
0177:00402017 MOV [ECX+04],EAX
0177:0040201A MOV ESP,EBP
0177:0040201C POP EBP
0177:0040201D RET 0004
0177:00402B31 MOV ECX,[EBP-04]
0177:00402B34 PUSH ECX
0177:00402B35 MOV EDX,[EBP-08]
0177:00402B38 PUSH EDX
0177:00402B39 MOV ECX,[EBP-0C]
0177:00402B3C CALL 00402A66
0177:00402B41 MOV ESP,EBP
0177:00402B43 POP EBP
0177:00402B44 RET
0177:004322B1 MOV [EBP-18],EAX ---> 提取今天日期
0177:004322B4 MOV EAX,[EBP-0128] ---> 提取安裝日期
0177:004322BA ADD EAX,1E
---> 安裝日期加30
0177:004322BD CMP [EBP-18],EAX ---> 比較,看過期沒有。
0177:004322C0 JA 004322D1
---> 大於則跳。跳則過期。
從這兩個檔案我們可以發現從
0177:004322C0 JA 004322D1
處,兩個檔案的流程開始不同。所以,這個jump 就是對比的關鍵。
II. 修改檔案。
11. 用 Hiew 載入 minicom.exe
12. 按 F4 選擇 Decode
13. 按 F5 , 輸入偏址: 000322C0 然後回車。
14. 按 F3, 將 77 改為 74.
15. 修改好後,F9存檔(按回車後到下一行,再按ESC讓對話方塊消失,然後按F9)。
感謝看雪大哥給我的提示,使我的 bpx getsystemtime 能攔截。:)