轉帖【夢醒時分t0db.myetang.com】翻譯的:【破解Autodesk AUTOCAD 14 狗加密 】 (15千字)
怎樣破解Autodesk AUTOCAD 14 法語版的狗加密
--------------------------------------------------------------------------------
translate by 夢醒時分
yinqun2000@263.net
http://t0db.myetang.com
級別:中級-高階
所需工具:
Soft ice 3.x
你自己最喜歡的 編輯器 (我一直用 Hexworkshop)
彙編知識 (至少是基礎)
Wdasm89 (並不特別需要)
大腦 (你有一個 , 是嗎 ? :p )
一些啤酒 :O ( 因為破解這個軟體是要很長時間的!)
一些音樂 ;)
歷史:
我是很久以前破解這個軟體的... ;O
它對我來說很難,而且浪費了我幾天時間.最難的部分就是找到檢查狗的地方而且我不是用下面我
教你的方法做的!那是一種很複雜的方法...我很蠢的破解了它,而且還常常崩潰!幾天前,我完成了
另一個序號產生器時覺得很煩.所以,我想到除了序號產生器的破解.那麼那個狗保護的Autocad 14?!啊!那
是狗保護!我討厭狗,而且在這方面幾乎沒有什麼經驗...
狗保護是最貴的保護方法,這個軟體的售價是$7000左右!(夠開一個網咖的了)
讓我們來破解它吧:)
BTW,我用好方法破解它大概用了 2 小時 (包括 反彙編: 最長的部分 :p) 這期間沒有當機 ;)
1)執行軟體 :)
好的.. 讓我們來看看這個目標,我安裝這個軟體非常慢.. 該死的光碟!假設它非常快吧!安裝好後,找
到安裝目錄.有一個 Acad.exe 的可執行檔案和其它很多dll檔案...我執行這個軟體,跳出一個對話方塊:
"ERREUR FATALE : Le system de securit?verrouillage materiel..."
這是法語, 意思是:
"FATAL ERROR : security system is missing! blablabla"
好的,它就是告訴我們最重要的硬體(*狗*)丟失!哈哈哈
那麼... 讓我們更深層的看看 ;) 我使用softice設定了在 LPT1上最常用的斷點: (BPIO -H 378 R).
我們停在了這兒:
0028:CE5AA885 88442405 MOV
[ESP+05],AL ; 這兒.
0028:CE5AA889 66C746680100 MOV WORD PTR
[ESI+68],0001
0028:CE5AA88F 8A442405 MOV
AL,[ESP+05]
0028:CE5AA893 884615 MOV
[ESI+15],AL
0028:CE5AA896 884614 MOV
[ESI+14],AL
0028:CE5AA899 5E
POP ESI
0028:CE5AA89A 83C404 ADD
ESP,04
0028:CE5AA89D C3
RET
0028:CE5AA89E CC
INT 3
0028:CE5AA89F CC
INT 3
0028:CE5AA8A0 83EC04 SUB
ESP,04
0028:CE5AA8A3 56
PUSH ESI
0028:CE5AA8A4 8B74240C MOV
ESI,[ESP+0C]
0028:CE5AA8A8 56
PUSH ESI
0028:CE5AA8A9 E832000000 CALL
CE5AA8E0
0028:CE5AA8AE 668B465C MOV
AX,[ESI+5C]
0028:CE5AA8B2 83C404 ADD
ESP,04
0028:CE5AA8B5 6689442406 MOV [ESP+06],AX
0028:CE5AA8BA 8A4658 MOV
AL,[ESI+58]
0028:CE5AA8BD 243F AND
AL,3F
0028:CE5AA8BF 88442405 MOV
[ESP+05],AL
0028:CE5AA8C3 8A442405 MOV
AL,[ESP+05]
0028:CE5AA8C7 668B542406 MOV DX,[ESP+06]
0028:CE5AA8CC EE
OUT DX,AL
0028:CE5AA8CD 5E
POP ESI
0028:CE5AA8CE 83C404 ADD
ESP,04
0028:CE5AA8D1 C3
RET
我們是在 chat_to_dongle routine. 而且如果我們看下面的data部分,我們看到:SENTINELXXX...
這是什麼啊?! 你應該知道有什麼公司提供這種加狗的服務如: Hasp, Sentinel, DesKEY,
Activator/Unikey 還有許多其它的.
因此,我們可以推斷碰到的是一個 SENTINEL 狗加密!我們現在在 SENTINEL.VXD 檔案... 回到文章
中來,我們停在這兒:
0028:CE5AA885 88442405 MOV
[ESP+05],AL ; 這裡..
0028:CE5AA889 66C746680100 MOV
WORD PTR [ESI+68],0001
0028:CE5AA88F 8A442405 MOV
AL,[ESP+05]
0028:CE5AA893 884615 MOV
[ESI+15],AL
0028:CE5AA896 884614 MOV
[ESI+14],AL
我們要看是關於可執行檔案的CALL,所以我們要按三四次F12,我們會在這兒:
0028:CE5B35D6 50 PUSH
EAX
0028:CE5B35D7 55 PUSH
EBP
0028:CE5B35D8 57 PUSH
EDI
0028:CE5B35D9 E8D2FEFFFF CALL CE5B34B0
; 我們的 call :)
0028:CE5B35DE C06C241F01 SHR BYTE PTR [ESP+1F],01
;回到這兒.
0028:CE5B35E3 83C40C ADD ESP,0C
0028:CE5B35E6 0AD8 OR
BL,AL
0028:CE5B35E8 664E DEC
SI
0028:CE5B35EA 75E1 JNZ
CE5B35CD
0028:CE5B35EC C0EB01 SHR BL,01
0028:CE5B35EF 6A64 PUSH
64
0028:CE5B35F1 57 PUSH
EDI
0028:CE5B35F2 E8C979FFFF CALL CE5AAFC0
0028:CE5B35F7 8A44241B MOV AL,[ESP+1B]
0028:CE5B35FB 83C408 ADD ESP,08
0028:CE5B35FE 2401 AND
AL,01
0028:CE5B3600 50 PUSH
EAX
0028:CE5B3601 55 PUSH
EBP
0028:CE5B3602 57 PUSH
EDI
0028:CE5B3603 E8A8FEFFFF CALL CE5B34B0
0028:CE5B3608 83C40C ADD ESP,0C
0028:CE5B360B 0AD8 OR
BL,AL
0028:CE5B360D 66BE0300 MOV SI,0003
0028:CE5B3611 6A64 PUSH
64
0028:CE5B3613 C06C241701 SHR BYTE PTR [ESP+17],01
0028:CE5B3618 57 PUSH
EDI
在 CALL 中:
0028:CE5B35D6 50
PUSH EAX
0028:CE5B35D7 55
PUSH EBP
0028:CE5B35D8 57
PUSH EDI
0028:CE5B35D9 E8D2FEFFFF CALL
CE5B34B0
0028:CE5B35DE C06C241F01 SHR
BYTE PTR [ESP+1F],01
0028:CE5B35E3 83C40C ADD
ESP,0C
0028:CE5B35E6 0AD8
OR BL,AL
0028:CE5B35E8 664E
DEC SI
0028:CE5B35EA 75E1
JNZ CE5B35CD
0028:CE5B35EC C0EB01 SHR
BL,01
0028:CE5B35EF 6A64
PUSH 64
0028:CE5B35F1 57
PUSH EDI
0028:CE5B35F2 E8C979FFFF CALL
CE5AAFC0
0028:CE5B35F7 8A44241B MOV
AL,[ESP+1B]
0028:CE5B35FB 83C408 ADD
ESP,08
0028:CE5B35FE 2401
AND AL,01
0028:CE5B3600 50
PUSH EAX
0028:CE5B3601 55
PUSH EBP
0028:CE5B3602 57
PUSH EDI
0028:CE5B3603 E8A8FEFFFF CALL
CE5B34B0
0028:CE5B3608 83C40C ADD
ESP,0C
0028:CE5B360B 0AD8
OR BL,AL
0028:CE5B360D 66BE0300 MOV
SI,0003
0028:CE5B3611 6A64
PUSH 64
0028:CE5B3613 C06C241701 SHR
BYTE PTR [ESP+17],01
0028:CE5B3618 57
PUSH EDI
0028:CE5B3619 E8A279FFFF CALL
CE5AAFC0
0028:CE5B361E 83C408 ADD
ESP,08
0028:CE5B3621 C0EB01 SHR
BL,01
0028:CE5B3624 8A442413 MOV
AL,[ESP+13]
0028:CE5B3628 2401
AND AL,01
0028:CE5B362A 50
PUSH EAX
0028:CE5B362B 55
PUSH EBP
0028:CE5B362C 57
PUSH EDI
0028:CE5B362D E87EFEFFFF CALL
CE5B34B0
0028:CE5B3632 C06C241F01 SHR
BYTE PTR [ESP+1F],01
0028:CE5B3637 83C40C ADD
ESP,0C
0028:CE5B363A 0AD8
OR BL,AL
0028:CE5B363C 664E
DEC SI
0028:CE5B363E 75E1
JNZ CE5B3621
0028:CE5B3640 6A05
PUSH 05
0028:CE5B3642 80E380 AND
BL,80
0028:CE5B3645 68DF000000 PUSH
000000DF
0028:CE5B364A 57
PUSH EDI
0028:CE5B364B FF5718 CALL
[EDI+18]
0028:CE5B364E 83C40C ADD
ESP,0C
0028:CE5B3651 B900000000 MOV
ECX,00000000
0028:CE5B3656 80FB01 CMP
BL,01
0028:CE5B3659 5D
POP EBP
0028:CE5B365A 83D1FF ADC
ECX,-01
0028:CE5B365D 5F
POP EDI
0028:CE5B365E 6683E103 AND
CX,03
0028:CE5B3662 5E
POP ESI
0028:CE5B3663 668BC1 MOV
AX,CX
0028:CE5B3666 5B
POP EBX
0028:CE5B3667 83C404 ADD
ESP,04
0028:CE5B366A C3
RET
Ok,看看下面的程式碼並不能幫助我們什麼 :( 我看過幾篇關於狗加密的教程.我們做
的這幾步,應該是已經完成了.我想,在CALL後面,會有一個關於狗的 CMP ,如果值是
和狗相同,那麼就透過,否則就會加上一個錯誤的旗標...... 但是,我們是不幸運的,
這裡不是那麼簡單!的.透過和程式碼遊戲(跟蹤call,尋找一些比較的程式碼),我按很多
次 F12 ,但是找不到一點好東西!
BTW,我無從這該死的Sentinel的VXD中出來!按住 F12,可是什麼都沒有變!VDX使我
陷入困境了......我希望回到 Acad.exe 檔案中!我不希望破解狗硬體,大多數的時候,
狗保護的弱點一般都是在目標本身!
我試了 BPIO -h 378 R
讓我們在 I/O-port 上試試其它的斷點 :
378 已經試過了
3BC 這個 ;)
278 這個也是 ;o)
OK,執行軟體,但是卻沒有攔截 ;( 我的天啊!
因為它是一個 VDX ,所以我也試了 bpx CreateFileA ,但是走不了多久......
那麼,為什麼不反彙編它呢?運氣好說不定能找到一些在字串中找到一些關於出錯
的資訊(不要做夢了,那是不可能有的!!:p)現在你能用工具中的啤酒了 ;) 因為我們
要花很長時間去反彙編!!!! 那就是我為什麼不用IDA的原因了! BTW, 我們的目標可
執行檔案大概是 7.24 mb!好了,現在你知道為什麼要花這麼多時間了吧..
喝過酒後,一覺醒來.
經過這麼長的時間,終於反彙編好了! 首先,儲存結果!我們不希望再等那麼多時間,不是
嗎?如果你的電腦當機或者其它原因,你只有再等那麼多時間了!再喝一次酒,呵呵!
完了嗎? Ok!
我們愚蠢的想法是去找字串,運氣不佳,沒有,其實是意料之中 :p 那麼讓我們想想!
我們怎樣攻擊它呢? 我們看看 Import 表吧!看看狗到底呼叫了什麼函式 :) 我們可以找
到一個 "l33t0" API 函式!哈哈,我想會有一些好東西了, 我們來看看核心......
太太太好了 :) 我找到一些有趣的東西了:
DeviceIoControl
從沒有看過,但是名稱,聽起來非常好,不是嗎?
呵呵!去除所有的斷點只在softice中輸入: 'bc *' 和: 'BPX DeviceIocontrol'
現在執行我們的軟體! 哈哈,它攔截下來了 :) 按F12,我們跳出了dll檔案來到了ACAD.exe
:) 讓我們和程式碼玩耍吧.......
先看程式碼, 我按F12幾次直到在一個好位置.下面是來自我的winice.log 的一部分:
:bl
00) BPX KERNEL32!DeviceIoControl // Damn good :)
Break due to BPX KERNEL32!DeviceIoControl
Break due to BPX KERNEL32!DeviceIoControl
Break due to BPX KERNEL32!DeviceIoControl
Break due to BPX KERNEL32!DeviceIoControl
Break due to BPX KERNEL32!DeviceIoControl
Break due to BPX KERNEL32!DeviceIoControl
// 你在這可以看到我在找到好地方之前被攔截下來多少次
// 你用這個 bpx 的時候,你按 F5 3 次,一會有攔截下來,
// 你再按兩次後停在了這兒 :
025F:0098B1AF 668B442402 MOV AX,[ESP+02]
; EAX = 一些值
025F:0098B1B4 83C404 ADD
ESP,04
025F:0098B1B7 C20800 RET
0008
025F:0098B1BA 8D9B00000000 LEA EBX,[EBX+00000000]
025F:0098B1C0 33C0 XOR
EAX,EAX
025F:0098B1C2 8A442408 MOV AL,[ESP+08]
025F:0098B1C6 83F801 CMP
EAX,01
025F:0098B1C9 7415 JZ
0098B1E0
025F:0098B1CB 83F802 CMP
EAX,02
025F:0098B1CE 7456 JZ
0098B226
025F:0098B1D0 83F803 CMP
EAX,03
025F:0098B1D3 0F8497000000 JZ 0098B270
025F:0098B1D9 C20800 RET
0008
// 透過 RET 後,我們落在這兒:
025F:006ABE9A 0FBFC0 MOVSX
EAX,AX ; 呵呵 :)
025F:006ABE9D 83F8FF CMP
EAX,-01 ; EAX = FFFF ?!
025F:006ABEA0 7405
JZ 006ABEA7 ; 跳轉到 6abea7
025F:006ABEA2 25FFFF0000 AND
EAX,0000FFFF
025F:006ABEA7 5F
POP EDI
025F:006ABEA8 C3
RET ; 返回 ....
// 這是最重要的部分 :
025F:006ABD94 83C404 ADD
ESP,04
025F:006ABD97 85C0
TEST EAX,EAX
025F:006ABD99 7C36
JL 006ABDD1
025F:006ABD9B 8D44240C LEA
EAX,[ESP+0C]
025F:006ABD9F 50
PUSH EAX
025F:006ABDA0 E8DB000000 CALL
006ABE80
025F:006ABDA5 83C404 ADD
ESP,04
025F:006ABDA8 85C0
TEST EAX,EAX
025F:006ABDAA 7C25
JL 006ABDD1
025F:006ABDAC 686071A700 PUSH
00A77160
025F:006ABDB1 E8CA000000 CALL
006ABE80
025F:006ABDB6 83C404 ADD
ESP,04
025F:006ABDB9 85C0
TEST EAX,EAX
025F:006ABDBB 7C14
JL 006ABDD1
025F:006ABDBD 68F470A700 PUSH
00A770F4
025F:006ABDC2 E8B9000000 CALL
006ABE80
025F:006ABDC7 83C404 ADD
ESP,04
025F:006ABDCA 3DFDDC0000 CMP
EAX,0000DCFD ; eax= DCFD?
025F:006ABDCF 7408
JZ 006ABDD9 ; 好! 狗
025F:006ABDD1 47
INC EDI ; 鎖住了 :)
025F:006ABDD2 83FF04 CMP
EDI,04
025F:006ABDD5 7EA3
JLE 006ABD7A
025F:006ABDD7 EB17
JMP 006ABDF0 ; 知道嗎?
025F:006ABDD9 8B0D8871A700 MOV
ECX,[00A77188] ;狗在這兒
025F:006ABDDF 6633F6 XOR
SI,SI
025F:006ABDE2 A18471A700 MOV
EAX,[00A77184]
025F:006ABDE7 8B1481 MOV
EDX,[EAX*4+ECX]
025F:006ABDEA C70202000000 MOV
DWORD PTR [EDX],00000002
025F:006ABDF0 8B0D8471A700 MOV
ECX,[00A77184] ;沒有狗:/
025F:006ABDF6 A18871A700 MOV
EAX,[00A77188]
025F:006ABDFB 8B1488 MOV
EDX,[ECX*4+EAX]
025F:006ABDFE 8D0C88 LEA
ECX,[ECX*4+EAX]
025F:006ABE01 8B1D8471A700 MOV
EBX,[00A77184]
025F:006ABE07 8B02
MOV EAX,[EDX]
025F:006ABE09 35A9B50000 XOR
EAX,0000B5A9
025F:006ABE0E 03C3
ADD EAX,EBX
025F:006ABE10 A3A471A700 MOV
[00A771A4],EAX
025F:006ABE15 8B11
MOV EDX,[ECX]
025F:006ABE17 833A00 CMP
DWORD PTR [EDX],00
025F:006ABE1A 752F
JNZ 006ABE4B
025F:006ABE1C E81F010000 CALL
006ABF40
025F:006ABE21 35A9B50000 XOR
EAX,0000B5A9
025F:006ABE26 3D564AFFFF CMP
EAX,FFFF4A56
025F:006ABE2B 741E
JZ 006ABE4B
--------------------------- 8< ---------------------- 擷取 :p
Ok,我首先想到的是改變:
025F:006ABDCA 3DFDDC0000 CMP EAX,0000DCFD ;
是 eax= DCFD ?
025F:006ABDCF 7408 JZ
006ABDD9 ; 好的! 狗鎖住了
成為:
025F:006ABDCA 3DFDDC0000 CMP EAX,0000DCFD
025F:006ABDCF EB08 JMP 006ABDD9
;不管 EAX 了,我跳 :p
但是,EAX 的值很重要,否則是會崩潰的:( 我們也看到了很多處都呼叫了 EAX 暫存器
,檢查了好幾次哦!那麼,我們只有暴力使 EAX 的值等於 DCFD 了!
你還不清除嗎,新手?EAX的值為什麼要等於 DCFD?你沒看到:CMP EAX,0000DCFD
嗎?先在大家都清楚了吧!
我們到哪去修改目標呢?想想什麼時候對 AX 賦值的?我清理一下記憶體,整理出下面這段
程式碼:
025F:0098B1AF 668B442402 MOV AX,[ESP+02]
; EAX = 一些值.
025F:0098B1B4 83C404 ADD
ESP,04
025F:0098B1B7 C20800 RET
0008
025F:0098B1BA 8D9B00000000 LEA EBX,[EBX+00000000]
025F:0098B1C0 33C0 XOR
EAX,EAX
025F:0098B1C2 8A442408 MOV AL,[ESP+08]
025F:0098B1C6 83F801 CMP
EAX,01
025F:0098B1C9 7415 JZ
0098B1E0
025F:0098B1CB 83F802 CMP
EAX,02
025F:0098B1CE 7456 JZ
0098B226
025F:0098B1D0 83F803 CMP
EAX,03
025F:0098B1D3 0F8497000000 JZ 0098B270
025F:0098B1D9 C20800 RET
0008
'是的!就是你說過的那個地方! *SLAP*!!
呵呵,我們只要使EAX的值永遠等於DCFD就行了,程式碼就變成:
66B8FDDC MOV AX,DCFD ; 你知道這是幹什麼,對嗎? ;)
90 NOP
; 一個 NOP 就是什麼都不幹!
C20800 RET 0008 ; 不變
Ok,很簡單吧? BTW 當你修改的時候不要忘了把程式碼倒一下,比如: B8FDCD 是 CDFD,
你應該知道我是什麼意思,對嗎?不??
現在給你的目標打上補丁,執行試試看!
下面就是說軟體破解的非常成功,我就不翻譯了.
原文作者:ACiD BuRN [ECLiPSE / Immortal Descendants]
-=-=-=-=-=-=-=-=-=-=-=-[EOF]-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=夢經第四期-=-=-=-=-=-=-=-
相關文章
- Hardlock加密狗破解過程-----外殼型加密狗的破解方法 (7千字)2001-10-15加密
- 如何破解深思Ⅲ加密狗!想解狗的朋友過來看了!
(10千字)2015-11-15加密
- 方正飛騰3.1加密狗破解過程-----淺談Sentinel Super Pro的加密演算法 (14千字)2015-11-15加密演算法
- 蒙泰5.0加密狗破解過程 (6千字)2001-10-11加密
- TDMD軟體狗破解方法(帶狗殺狗) (6千字)2001-10-25
- 轉帖--對付幾個特殊加密的破解方法以fox程式為主---作者:diaojf
(2千字)2001-04-15加密
- 破解《速達3000 Pro》 正式版的加密狗 (16千字)2001-03-16加密
- 原創深思3加密狗破解2015-11-15加密
- 管家婆8.2單機版加密狗破解過程 (3千字)2001-10-13加密
- 《wifi加密破解論文》翻譯介紹-wifi不再安全2017-10-17WiFi加密
- 轉帖:勝新庫管王破解要點 (1千字)2001-04-12
- 本人作品---夢龍智慧專案管理99A解狗教程(獻給對加密狗有興趣的朋友)
(13千字)2015-11-15專案管理加密
- 破解管家婆輝煌網路版8.0A客戶端的加密狗 (6千字)2001-10-05客戶端加密
- 臨摹到提升:高升科技寫在網際網路時代的夢醒時分2015-03-23
- 彩虹狗GS-MH破解-淺談狗的破解方法2015-11-15
- [翻譯]用dede破解-另一篇~請大家指正~~ (5千字)2015-11-15
- 翻譯一篇很簡單的暴力破解installshield! (6千字)2001-03-15
- 翻譯(1) (6千字)2000-07-22
- Python爬蟲教程-16-破解js加密例項(有道線上翻譯)2018-09-06Python爬蟲JS加密
- 流光 4.5 完全破解 (15千字)2002-08-24
- 轉貼:破解時間限制的老文章(一) (2千字)2000-10-23
- 轉貼:破解時間限制的老文章(二) (2千字)2000-10-23
- GDC演講翻譯——看門狗2的載具同步2021-03-02
- [翻譯]LSP程式的分類2016-09-30
- SentinelLM加密分析及破解方法 (3千字)2015-11-15加密
- 翻譯“如何破解VB5程式的密碼保護... ( By DMA-48!!! )”,希望不會翻重 (4千字)2001-06-30密碼
- 翻譯FLEXlm9.2的破解教學四2004-12-08Flex
- 翻譯FLEXlm9.2的破解教學五2004-12-10Flex
- 翻譯FLEXlm9.2的破解教學三2015-11-15Flex
- 翻譯FLEXlm9.2的破解教學一2015-11-15Flex
- 人工翻譯的分類 安睿傑線上翻譯平臺2022-08-11
- 破解webclaw――全憑眼力 (14千字)2001-05-21Web
- 翻譯:Zendenc
FLEXlm 7.2 破解資訊[TT]2004-12-27Flex
- 破解 Zelix KlassMaster 的字串加密 在java遊戲中作弊(轉載文章) (7千字)2001-07-24SSMAST字串加密Java遊戲
- iTime 破解實錄 (15千字)2001-04-26
- 破解心得之WinImage篇 (15千字)2001-07-01
- Help & Manual 3.0.4.619 破解 (15千字)2015-11-15
- 破解 周公解夢2.11 實戰錄 (3千字)2000-08-22