Hardlock加密狗破解過程-----外殼型加密狗的破解方法 (7千字)
MT unlocker 是一個手機解鎖軟體,它的加密方式是用hardlock加密狗加密,這種加密狗是一種外殼型加密狗,和HASP很相象。
小弟沒有接觸過外殼的狗,所以破解時用最原始的方法:跟蹤。
工具: TRW2000
我們先安裝好程式和狗驅動程式,然後執行TRW,選擇TRW選單中的“TRnewTCB”功能,然後執行程式,中斷後就會顯示程式的入
口:
016F:008E240 PUSH EBP <=====中斷在這裡
016F:008E0241 MOV EBP,ESP
016F:008E0243 PUSH EBX
016F:008E0244 PUSH ESI
016F:008E0245 PUSH EDI
016F:008E0246 PUSHA
016F:008E0247 MOV EAX,ESP
016F:008E0249 MOV [008E04C4],EAX
016F:008E024E MOV EAX,008E04E0
016F:008E0253 SUB EAX,[008E0500]
016F:008E0259 MOV [008E0500],EAX
016F:008E025E CMP DWORD [008E04C0],BYTE +00
016F:008E0265 JZ NEAR 008E027F
016F:008E026B MOV EAX,[008E04C4]
016F:008E0270 PUSH EAX
然後一直按F10,直到下面:
016F:008E0301 MOV EDI,[008E04E8]
016F:008E0307 MOV ECX,06
016F:008E030C REP MOVSD
016F:008E030E MOV EAX,[008E04C4]
016F:008E0313 PUSH EAX
016F:008E0314 CALL NEAR [008E04C0] <=====F8進入,以後凡是遇到象這樣的CALL都要按F8進入
016F:008E031A ADD ESP,BYTE +04
進入後繼續按F10,在中間會進入hardlook的狗驅動程式內,它的進入方式很特殊,至今我都不明白它是怎麼進入的,就象是我們運
行程式出錯時會被TRW中斷一樣,在TRW的命令欄中會出現"Break Due On Fault 03
FaultCode=A000"的字樣,我們不管它,只管按F10和F12返回到主程式中,如下:
016F:008F611E MOV EAX,[EBP-50]
016F:008F6121 PUSH EAX
016F:008F6122 CALL NEAR [EBP-54]
016F:008F6125 TEST EAX,EAX <=====返回到這裡
016F:008F6127 JNZ NEAR 008F6140
016F:008F612D MOV EAX,[EBP-50]
然後就是一直F10了,這個過程是解壓縮判斷狗的程式碼,為了加快追蹤,當遇到象下面的程式碼時,將游標直接移到JNA指令所指向的地
址,然後按F7鍵,在以後的地方有很多類似這樣的指令,你一樣可以按這種方法跳過它:
016F:008F61F1 ADD DWORD [EBP-5C],BYTE +02
016F:008F61F5 ADD DWORD [EBP-64],BYTE +02
016F:008F61F9 MOV EAX,[EBP-68]
016F:008F61FC MOV ECX,[EBP-5C]
016F:008F61FF CMP [EAX+04],ECX <======
016F:008F6202 JNA NEAR 008F626B <======注意這條指令
016F:008F6208 MOV EAX,[EBP-64]
016F:008F620B XOR ECX,ECX
016F:008F620D MOV CX,[EAX]
016F:008F6210 AND ECX,F000
016F:008F6216 MOV [EBP+FFFFFF70],ECX
GO,GO,GO....GO TO:
6F:008F64B3 MOV EAX,`DOSMGR_BackFill_Allowed`
016F:008F64B9 MOV EAX,[EAX]
016F:008F64BB MOV `DOSMGR_BackFill_Allowed`,EAX
016F:008F64C1 MOV EAX,[EBP+08]
016F:008F64C4 PUSH EAX
016F:008F64C5 CALL NEAR [008F67CC] <=====F8進入
016F:008F64CB ADD ESP,BYTE +04
016F:008F64CE JMP 008F64D3
016F:008F64D3 MOV ECX,[EBP-10]
016F:008F64D6 MOV `DOSMGR_BackFill_Allowed`,ECX
進入CALL後會第二次進入到狗驅動程式,按上面的方法返回到主程式:
016F:008F8411 PUSH EAX
016F:008F8412 CALL NEAR [EBP-54]
016F:008F8415 TEST EAX,EAX <=====返回到這裡
016F:008F8417 JNZ NEAR 008F8430
016F:008F841D MOV EAX,[EBP-50]
016F:008F8420 PUSH EAX
016F:008F8421 CALL NEAR [EBP-58]
016F:008F8424 MOV DWORD [EBP-28],08
一直按F10,到下面的地方:
016F:008F87A3 MOV EAX,`DOSMGR_BackFill_Allowed`
016F:008F87A9 MOV EAX,[EAX]
016F:008F87AB MOV `DOSMGR_BackFill_Allowed`,EAX
016F:008F87B1 MOV EAX,[EBP+08]
016F:008F87B4 PUSH EAX
016F:008F87B5 CALL NEAR [008F8ABC] <=====F8進入
016F:008F87BB ADD ESP,BYTE +04
進入後按一陣F10,就到了判斷加密狗的地方了:
016F:008E5A67 MOV EDI,[008EFA68]
016F:008E5A6D MOV ECX,06
016F:008E5A72 REP MOVSD
016F:008E5A74 MOV EAX,[EBP+08]
016F:008E5A77 PUSH EAX
016F:008E5A78 CALL NEAR [008EFA10]
016F:008E5A7E ADD ESP,BYTE +04
016F:008E5A81 JMP 008E5B7F
016F:008E5A86 CALL 008E5EC8
<=====注意這個CALL,這個就是檢測加密狗的CALL,當沒有找到狗時,EAX就會返回6,怎樣判斷它是檢測狗的CALL呢?我的經驗是,如
果一個CALL很明顯的比其它的CALL花費的時間要多,那麼這個CALL九成是讀狗的CALL,在我破解的狗中,幾乎是所有讀狗的CALL都
會花比較多的時間,大概是1-3秒吧,所以這個可以做為判斷讀狗的一個依據
016F:008E5A8B MOV [008EFA28],EAX <=====執行到這裡後,用R指令修改EAX的數值,將EAX改為0,改完後你按F5後,你發
現程式已經能夠正常執行了,但我們的目標是要脫掉狗保護,所以就繼續F10了
016F:008E5A90 CMP DWORD [008EFA28],BYTE +00
016F:008E5A97 JZ NEAR 008E5AD6
016F:008E5A9D MOV EAX,[008EFA14]
016F:008E5AA2 PUSH EAX
016F:008E5AA3 MOV EAX,[008EFA28]
繼續按F10,在這個過程中就是主程式的解壓縮了,中間有三個CALL要F8進去的,同樣可以用上來所說的加快跟蹤的方法來跟蹤下去
,當出現下面的指令時,解壓縮就基本上完成了:
016F:008FE97D MOV [009006B0],EAX
016F:008FE982 PUSH DWORD 009005A4
016F:008FE987 MOV EAX,[00900498]
016F:008FE98C PUSH EAX
016F:008FE98D CALL `KERNEL32!GetProcAddress` <=====當出現這些指令時,就要放慢跟蹤的速度了
016F:008FE993 MOV [009006C0],EAX
016F:008FE998 PUSH DWORD 009005B8
016F:008FE99D MOV EAX,[00900498]
016F:008FE9A2 PUSH EAX
016F:008FE9A3 CALL `KERNEL32!GetProcAddress`
<=====
016F:008FE9A9 MOV [009006BC],EAX
016F:008FE9AE PUSH DWORD 009005CC
016F:008FE9B3 MOV EAX,[00900498]
016F:008FE9B8 PUSH EAX
016F:008FE9B9 CALL `KERNEL32!GetProcAddress`
<=====
注意下面的程式碼,這些程式碼我估計是反跟蹤的,因為我跟蹤下去的時候,程式就會出現一個警告對話方塊,說程式是不能執行在除錯狀
態下的,我沒有辦法去掉它,因為我的跟蹤技術還不是很好,哪位高手來幫我補充怎麼樣去掉這些反跟蹤程式碼,在這裡我先謝謝了.
程式碼如下:
16F:008FEBDF JMP 008FEC88
016F:008FEBE4 CMP DWORD [009004BC],BYTE +00
016F:008FEBEB JZ NEAR 008FEC64
016F:008FEBF1 CMP DWORD [009004C8],BYTE +00
016F:008FEBF8 JNZ NEAR 008FEC64
016F:008FEBFE PUSH DWORD 008FF9C2
016F:008FEC03 MOV EAX,[009004BC]
016F:008FEC08 PUSH EAX
016F:008FEC09 PUSH BYTE +00
016F:008FEC0B PUSH BYTE +00
016F:008FEC0D CALL `USER32!SetTimer` <====設定系統定時器,如果程式在跟蹤狀態,程式就會退出
016F:008FEC13 MOV [00900520],EAX
016F:008FEC18 CMP DWORD [00900520],BYTE +00
016F:008FEC1F JNZ NEAR 008FEC64
016F:008FEC25 MOV DWORD [009004A8],03
我們不管它了,繼續F10,中間有兩個CALL要F8進入,進入後按F10直到出現下面的程式碼:
016F:008E1FF3 JMP 008E2003
016F:008E1FF8 POP EDI <=====游標停在這裡
016F:008E1FF9 POP ESI
016F:008E1FFA POP EBX
016F:008E1FFB POP EBP
016F:008E1FFC PUSH DWORD [008E2050]
016F:008E2002 RET
016F:008E2003 POP EDI
016F:008E2004 POP ESI
016F:008E2005 POP EBX
016F:008E2006 LEAVE
016F:008E2007 RET 0C
016F:008E200A ADD [EAX],AL
016F:008E200C ADD [EAX],AL
016F:008E200E ADD [EAX],AL
在地址016F:008E1FF8處停下來,我們已經可以DUMP出檔案了,下指令 PEDUMP d:\temp\crack.exe,至此,我們已經破掉hardlook的
外殼狗了,但是由於我沒有學過脫殼,所以脫出來的檔案竟然有4M(脫殼前只有1M多一點),而且我不知道怎麼樣修正Import表,讓程
序能在win2000下執行,不知哪位大蝦對脫殼很有經驗的話,能否指點小弟一兩招呢,小弟感激涕零.
透過我們對這個程式的破解,我們應該清楚,在破解外殼型的加密狗時,關鍵在於你是否有耐心,還要有一雙明亮的眼睛,外殼狗並
不可怕.同時也再次證明,無論是怎麼好的狗,如果開發商不好好利用的話,結果是整個加密方案以失敗告終.
相關文章
- 蒙泰5.0加密狗破解過程 (6千字)2001-10-11加密
- 管家婆8.2單機版加密狗破解過程 (3千字)2001-10-13加密
- 原創深思3加密狗破解2015-11-15加密
- 如何破解深思Ⅲ加密狗!想解狗的朋友過來看了!
(10千字)2015-11-15加密
- 方正飛騰3.1加密狗破解過程-----淺談Sentinel Super Pro的加密演算法 (14千字)2015-11-15加密演算法
- 破解《速達3000 Pro》 正式版的加密狗 (16千字)2001-03-16加密
- 破解管家婆輝煌網路版8.0A客戶端的加密狗 (6千字)2001-10-05客戶端加密
- jdpack的脫殼及破解 (5千字)2002-06-25
- webeasymail的簡單破解過程 (2千字)2001-08-04WebAI
- OICQ HACK 1.0 破解過程 (9千字)2001-04-23
- Nullz CrackMe 1.1破解過程 (13千字)2001-09-18Null
- WebTimeSync 5.2.0 破解過程 (14千字)2001-10-05Web
- 破解某美容美髮管理系統加密狗、註冊碼、序列號的研究分析2018-06-14加密
- 魔術情書
6.55 破解過程+不脫殼打破解補丁【原創】2004-12-07
- 我終於破解了魔裝網神了,破解過程!!,不過是用2.70破解的。 (1千字)2001-10-15
- 具體的破解過程來也! (10千字)2001-04-21
- 對VCDCUT 4.03的分析破解過程 (18千字)2001-08-08
- dfx V4.0破解過程 (10千字)2000-09-24
- 破解過程-----請多多指教 (2千字)2000-12-31
- 電腦字型秀破解過程 (1千字)2001-03-18
- Kryptel 3.8 暴力破解過程 (18千字)2001-09-18
- PUZZLER1.20破解過程 (4千字)2002-01-26
- SuperCleaner2.30破解過程 (11千字)2002-02-04
- PowerArchiver破解過程。2015-11-15Hive
- 破解<<破解堅盾磁碟加密系統 V4.0>>的全過程 (10千字)2001-10-23加密
- 破解ClockWise 3.03 (7千字)2001-06-06
- 股市風暴4.0的外殼分析與脫殼方法(一) (7千字)2001-06-10
- 加密狗集中管理方案2014-03-07加密
- Password Keeper v6.3破解過程 (8千字)2002-04-12
- post NOW! 破解過程!有意思。 (1千字)2000-12-30
- 有聲有色3.33破解過程 (4千字)2001-02-09
- 專業掃雷 1.2破解過程 (4千字)2001-02-17
- fulldisk A32 破解過程!(簡單) (1千字)2001-03-20
- 密碼大師4.0破解過程 (3千字)2001-05-06密碼
- EmEditor v3.16破解過程 (9千字)2001-07-22
- 木馬克星5.33.60破解過程
(9千字)2002-03-28
- GaitCD破解全過程(installshield) (3千字)2015-11-15AI
- 如何跟蹤ASProtect外殼加密過的程式? (7千字)2001-04-13加密