大老的打狗教程第三篇(最終篇)如何解掉,rockey4的狗加密的軟體! (12千字)
大老的打狗教程第三篇(最終篇)如何解掉,rockey4的狗加密的軟體!希望對大家有所幫助!大老=[DCG]=
軟體名:國內北京某著名婚紗攝影設計製作軟體
保護 :北京飛天誠信公司公司堅石的狗(rockey4)
所用工具:trw2000 wasm32 hiew688
破解難度:難
破解人:大老
所屬組織:=BCG= =[DCG]=
本人作品:檔案加密狗檢測工具 2.0
本人郵箱:dalao@qdcnc.com
dalao@top86.com
本人主頁:http://dalao2002.yeah.net
本人論壇:http://61.177.65.168/dalaobbs/cgi-bin/leoboard.cgi
Oicq:79234668
此文獻給所有愛好解密的朋友們!
我寫的打狗教程這是第三篇!也是最後一篇了!這一篇我寫兩部分!其中第一部分是狗殼,第二部分是程式本身的解密了!
如果你看過我的第一篇HASP解密教程的話!會對你解ROCKEY狗有所幫助!
ROCKEY狗和HASP狗讀狗呼叫有些方面是很相似的!
我只是大體說一下破解的思路! 高手不要見笑呀!
希望對大家有所幫助!
(第一部分) =狗殼=
我來講講rockey4的外殼!rockey4的外殼做得不錯!相容性非常好!保護後有程式的每個段需要4組狗裡的
返回資料來還原!遺憾的是這個外殼的花指令基本上沒有!好了不說了!GO GO..
==========================================================================================
(1)讀狗部分
:004B1935 83C408
add esp, 00000008
:004B1938 8D4C2408
lea ecx, dword ptr [esp+08]
:004B193C 8D542406
lea edx, dword ptr [esp+06]
:004B1940 8D442430 lea
eax, dword ptr [esp+30]
:004B1944 6A00
push 00000000
:004B1946 51
push ecx
:004B1947
8B4E0A mov ecx,
dword ptr [esi+0A]
:004B194A 6A02
push 00000002
:004B194C 52
push edx
:004B194D
6A28 push
00000028
:004B194F 50
push eax
:004B1950 6800E410A4
push A410E400
:004B1955 51
push ecx
:004B1956 FF9616050000
call dword ptr [esi+00000516] ------>這裡是DEVICEIOCONTROL函式
上面的是函式入口的引數 寫底層模擬的話!上面有你需要的重要資訊!
:004B195C 85C0
test eax, eax
:004B195E 7509
jne 004B1969
:004B1960 660DFFFF or ax,
FFFF
:004B1964 5E
pop esi
:004B1965 83C454
add esp, 00000054
:004B1968 C3
ret
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004B195E(C)
|
:004B1969 668B442406
mov ax, word ptr [esp+06] =========>這裡是讀狗返回的標誌!沒有狗是3!有狗返回的是0!
:004B196E
5E
pop esi
:004B196F 83C454
add esp, 00000054
--------------------------------------------------------------------------------------------
(2)加密段資料解密部分
:004B12DC 8D55D4
lea edx, dword ptr [ebp-2C]
:004B12DF 52
push edx
:004B12E0
8D45E0 lea eax,
dword ptr [ebp-20]
:004B12E3 50
push eax
:004B12E4 8D4DE8
lea ecx, dword ptr [ebp-18]
:004B12E7 51
push ecx
:004B12E8 8D55B0
lea edx, dword ptr [ebp-50]
:004B12EB 52
push edx
:004B12EC
8D45B8 lea eax,
dword ptr [ebp-48]
:004B12EF 50
push eax
:004B12F0 8D4DD0
lea ecx, dword ptr [ebp-30]
:004B12F3 51
push ecx
* Possible Reference to Dialog: DialogID_0066, CONTROL_ID:0008,
""
|
:004B12F4 6A08
push 00000008
:004B12F6
E8B5050000 call 004B18B0
========>讀狗,如果成功EAX=0
:004B12FB 83C424
add esp, 00000024
:004B12FE 25FFFF0000
and eax, 0000FFFF
:004B1303 85C0
test eax, eax
:004B1305 7405
je 004B130C =====>成功JMP
:004B1307 E900020000
jmp 004B150C
* Referenced
by a (U)nconditional or (C)onditional Jump at Address:
|:004B1305(C)
|
:004B130C 668B55E8
mov dx, word ptr [ebp-18] ======>注意返回的(重要資料1)
:004B1310 668955BC
mov word ptr [ebp-44], dx
:004B1314 668B45E0 mov
ax, word ptr [ebp-20] ======>注意返回的(重要資料2)
:004B1318 668945BE
mov word ptr [ebp-42], ax
:004B131C 668B4DD4 mov
cx, word ptr [ebp-2C] ======>注意返回的(重要資料3)
:004B1320 66894DC0
mov word ptr [ebp-40], cx
:004B1324 668B55B4 mov
dx, word ptr [ebp-4C] ======>注意返回的(重要資料4)
:004B1328 668955C2
mov word ptr [ebp-3E], dx
:004B132C 8B45FC
mov eax, dword ptr [ebp-04]
:004B132F 8B4812
mov ecx, dword ptr [eax+12]
:004B1332 8B55AC
mov edx, dword ptr [ebp-54]
:004B1335 030A
add ecx, dword ptr [edx]
:004B1337 894DF4
mov dword ptr [ebp-0C], ecx
:004B133A
C745D800000000 mov [ebp-28], 00000000
:004B1341
EB09 jmp
004B134C
=================================================================================================
下面是資料還原解密部分
* Referenced by a (U)nconditional or (C)onditional Jump
at Address:
|:004B1379(U)
|
:004B1343 8B45D8
mov eax, dword ptr [ebp-28]
:004B1346
83C001 add eax,
00000001
:004B1349 8945D8
mov dword ptr [ebp-28], eax
* Referenced by a (U)nconditional
or (C)onditional Jump at Address:
|:004B1341(U)
|
:004B134C 8B4DAC
mov ecx, dword ptr [ebp-54]
:004B134F 8B55D8
mov edx, dword ptr [ebp-28]
:004B1352 3B5104
cmp edx, dword ptr [ecx+04] ========>判斷是不是資料段解密完畢
:004B1355 7324
jnb 004B137B ========>如果是真則是資料還原解密完畢!下面的是還原演算法!
:004B1357 8B45F4
mov eax, dword ptr [ebp-0C]
:004B135A 0345D8
add eax, dword ptr [ebp-28]
:004B135D 33C9
xor ecx, ecx
:004B135F 8A08
mov cl, byte ptr [eax]
:004B1361 8B45D8
mov eax, dword ptr [ebp-28]
:004B1364 33D2
xor edx, edx
:004B1366 F775F0
div [ebp-10]
:004B1369 33C0
xor eax, eax
:004B136B 8A4415BC
mov al, byte ptr [ebp+edx-44]
:004B136F
33C8 xor
ecx, eax
:004B1371 8B55F4
mov edx, dword ptr [ebp-0C]
:004B1374 0355D8
add edx, dword ptr [ebp-28]
:004B1377
880A mov
byte ptr [edx], cl
:004B1379 EBC8
jmp 004B1343
==================================================================================================
(3)入口點
下面的程式碼就是外殼結尾部分
:004B14F3 8902
mov dword ptr [edx], eax
*
Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:004B14E0(C),
:004B14EB(C)
|
:004B14F5 41
inc ecx
:004B14F6 3B4B2E
cmp ecx, dword ptr [ebx+2E]
:004B14F9 72DF
jb 004B14DA
* Referenced by a (U)nconditional or (C)onditional Jump
at Address:
|:004B101D(C)
|
:004B14FB 8B83EA040000
mov eax, dword ptr [ebx+000004EA] ===============>這裡就是入口點的資料地址
:004B1501 034312
add eax, dword ptr [ebx+12]
:004B1504 5F
pop edi
:004B1505 5E
pop esi
:004B1506
5B
pop ebx
:004B1507 8BE5
mov esp, ebp
:004B1509 5D
pop ebp
:004B150A FFE0
jmp eax
========>如果有狗那麼eax就是程式的入口點!
-----------------------------------------------------------------------------------------------------
上面就是狗殼部分!我講完了!希望講的還不是很糟!如果你不明白我也沒辦法了!
====================================================================================================
第二部分 (程式本身的解密)
這個程式本身的加密做得很好!有很多處加密點!而且還用到了部分演算法資料在程式當中使用!所以這東西解起來比較麻煩!
我在這就簡單寫寫了!
:0047FD14 FF1504E44B00
Call dword ptr [004BE404] ====================>這裡讀狗
:0047FD1A
85C0 test
eax, eax
:0047FD1C 750F
jne 0047FD2D
:0047FD1E 66B8FFFF
mov ax, FFFF
:0047FD22 5D
pop ebp
:0047FD23
5F
pop edi
:0047FD24 5E
pop esi
:0047FD25 5B
pop ebx
:0047FD26 81C47C020000
add esp, 0000027C
:0047FD2C C3
ret
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0047FD1C(C)
|
:0047FD2D 668B442412
mov ax, word ptr [esp+12] ================>讀狗後的返回標誌!ax=0就行了!
:0047FD32
5D
pop ebp
:0047FD33 5F
pop edi
:0047FD34 5E
pop esi
:0047FD35 5B
pop ebx
:0047FD36
81C47C020000 add esp, 0000027C
:0047FD3C
C3
ret
這樣搞完了!程式已經可以進入介面了!但是點重要功能!程式就非法操作了!
再來!經過跟蹤!發現!
(1)
:0044DEA4
68149D5200 push 00529D14
:0044DEA9 681C9E5200 push 00529E1C
:0044DEAE 681E9E5200 push
00529E1E
:0044DEB3 68209E5200
push 00529E20
:0044DEB8 68229E5200
push 00529E22
:0044DEBD 68149E5200
push 00529E14
:0044DEC2 68189E5200
push 00529E18
:0044DEC7 68249E5200
push 00529E24
:0044DECC 6A0E
push 0000000E
:0044DECE
C705189E520000000000 mov dword ptr [00529E18], 00000000
:0044DED8
A3149E5200 mov dword ptr [00529E14],
eax
:0044DEDD E8FE1A0300
call 0047F9E0 ==========>這裡讀狗
:0044DEE2 83C424
add esp, 00000024
:0044DEE5
66F7D8 neg ax
:0044DEE8 1BC0
sbb eax, eax
:0044DEEA F7D0
not eax
:0044DEEC 662305229E5200
and ax, word ptr [00529E22] ==========>這裡是返回的重要資料!
:0044DEF3
C3
ret
還有這裡
:0044BE21 68149D5200
push 00529D14
:0044BE26 681C9E5200
push 00529E1C
:0044BE2B 681E9E5200
push 00529E1E
:0044BE30 68209E5200
push 00529E20
:0044BE35 68229E5200
push 00529E22
:0044BE3A 68149E5200
push 00529E14
:0044BE3F 68189E5200
push 00529E18
:0044BE44 68249E5200
push 00529E24
:0044BE49 6A08
push 00000008
:0044BE4B C705149E520045970000 mov dword ptr [00529E14], 00009745
:0044BE55 E8863B0300 call
0047F9E0 ============>這裡讀狗!
:0044BE5A 83C424
add esp, 00000024
:0044BE5D 6685C0
test ax, ax
:0044BE60 7511
jne 0044BE73 =======>有狗的話這裡是不會跳轉的!
:0044BE62 66A11E9E5200 mov ax, word
ptr [00529E1E] ===========>返回的重要資料!
:0044BE68 6689442444
mov word ptr [esp+44], ax
:0044BE6D 8B442444
mov eax, dword ptr [esp+44]
:0044BE71 EB02
jmp 0044BE75 =======>到正確的部分正常執行!
* Referenced by a (U)nconditional
or (C)onditional Jump at Address:
|:0044BE60(C)
|
:0044BE73 33C0
xor eax, eax
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0044BE71(U)
|
:0044BE75 25FFFF0000
and eax, 0000FFFF ========>下面的是演算法部分如果返回的資料錯誤會導致程式非法操作!
:0044BE7A 8B7E04
mov edi, dword ptr [esi+04]
:0044BE7D 2D44420000
sub eax, 00004244
:0044BE82 8B7608
mov esi, dword ptr [esi+08]
:0044BE85
8BC8 mov
ecx, eax
:0044BE87 B8ABAAAA2A
mov eax, 2AAAAAAB
:0044BE8C F7E9
imul ecx
:0044BE8E D1FA
sar edx, 1
===============================================================================================
程式中有多處類似的程式碼!來監測加密狗!好了!就先說這個多了!解決其實很簡單!只要有狗把重要資料部分得到!呵呵剩下的不用我多說了吧!
終於寫完了!累!寫東西好累呀!呵呵!
再來說兩句加密狗現在發展的好快現在的加密狗已經發展到第5代了!代表產品(深思4和rockey5)新的加密狗結合了傳統加密鎖技術和智慧卡!硬體複製的難度好像更大了!軟體本身破解的難度也提高了不少!如果加密者能結合新產品的特點靈活運用!軟體本身的破解難度會變得異常的困難!當然了!如果加密者的加密方案比較簡單或有漏洞軟體還是可以破解的!謝謝大家看我羅嗦了這麼多!希望以上寫的對愛好解密的朋友!有所幫助!謝謝大家看完此文!
如果你覺得寫的還行請回個貼子!支援一下!謝謝!
如果要轉載請保留完整
大老=[DCG]=
dalao@top86.com
http://dalao2002.yeah.net
2003-05-03
凌晨3:24
相關文章
- 大老的打狗教程第二篇如解掉,深思3的狗加密的軟體!希望對大家有所幫助!大老=[DCG]=
(13千字)2015-11-15加密
- 大老的打狗教程第一篇如解掉hasp的狗!希望對大家有所幫助!大老=[DCG]=
(12千字)2002-06-25
- TDMD軟體狗破解方法(帶狗殺狗) (6千字)2001-10-25
- 軟體狗[Dongles]的加密與解密技術2002-05-27加密解密
- Shub-Nigurrath的軟體狗教程2015-11-15
- 軟體狗,dongle
(3千字)2002-12-17
- 本人作品,2488的解狗教程(DOS下的狗),應客戶要求,不便說出軟體名字。 (2千字)2002-02-18
- Hardlock加密狗破解過程-----外殼型加密狗的破解方法 (7千字)2001-10-15加密
- 如何破解深思Ⅲ加密狗!想解狗的朋友過來看了!
(10千字)2015-11-15加密
- 異想天開的打狗記錄(高手免進) (12千字)2002-07-17
- 打狗棒法:TDSD軟體狗 (20千字)2002-07-02
- 如何破解掉vt4.0的軟體狗(一種醫藥用影像分析軟體) 不錯的文章
(7千字)2015-11-15
- 彩虹的DL(也叫軟體狗)2004-08-28
- 打狗棒法:深思3軟體狗(47千字)2002-06-30
- 速達3000PRO加密狗軟體學習
(5千字)2003-02-19加密
- 本人作品---夢龍智慧專案管理99A解狗教程(獻給對加密狗有興趣的朋友)
(13千字)2015-11-15專案管理加密
- 全域性CSS的終結(狗帶)2015-10-24CSS
- 談到軟體狗,我說幾句 (1千字)2000-05-08
- 聖天諾LDK加密鎖(加密狗)如何保護Linux系統下的軟體2024-03-19加密Linux
- IT狗的日常2013-12-08
- 蒙泰5.0加密狗破解過程 (6千字)2001-10-11加密
- 加密狗集中管理方案2014-03-07加密
- 破解《速達3000 Pro》 正式版的加密狗 (16千字)2001-03-16加密
- Crack之親歷手跡6---破解AuthorWare5的軟體狗() (2千字)2002-03-09
- 翻譯的第三篇,軟體演算法和 OllyDB的用法(新的除錯軟體) (10千字)2001-07-19演算法除錯
- 彩虹狗GS-MH破解-淺談狗的破解方法2015-11-15
- 方正飛騰3.1加密狗破解過程-----淺談Sentinel Super Pro的加密演算法 (14千字)2015-11-15加密演算法
- 原創深思3加密狗破解2015-11-15加密
- 菜狗的KMP學習2024-03-26KMP
- 管家婆8.2單機版加密狗破解過程 (3千字)2001-10-13加密
- 破解管家婆輝煌網路版8.0A客戶端的加密狗 (6千字)2001-10-05客戶端加密
- Dog Parker智慧狗窩能有償“看狗” 再不怕出門丟狗2016-11-21
- iOS 的看門狗機制2018-09-18iOS
- IT的消費化:尾巴搖狗2011-03-10
- MSTCAD空間網格結構設計軟體另類解狗 (41千字)2015-11-15
- 開啟樹莓派的硬體看門狗功能2014-06-30樹莓派
- 被狗搞的頭大,找個小軟體換換腦子,flashget96a去廣告條 (5千字)2001-07-10
- 安裝安全狗和寶塔mysql打不開2024-11-16MySql