TDMD軟體狗破解方法(帶狗殺狗) (6千字)
TDMD軟體狗破解方法(帶狗殺狗)
工具:TRW2000
Hview
這次殺狗還是用帶狗殺狗方法,破解狗的常用斷點:bpio 378,bpx deviceiocontrol,bpx environmentstringa(聽說對HASP狗有效,我沒有試過),今天我們用bpx
deviceiocontrol這個斷點來破它。
一般TDMD狗的呼叫形式是:
:0057C054 53
push ebx
:0057C055 56
push esi
:0057C056 57
push edi
:0057C057 56
push esi
:0057C058 57
push edi
:0057C059 52
push edx
:0057C05A 51
push ecx
:0057C05B 53
push ebx
:0057C05C 50
push eax
:0057C05D E82C020000 call 0057C28E
<=====判斷狗的CALL
:0057C062 85C0
test eax, eax <=====有狗就返回0
:0057C064 7405
je 0057C06B <=====有狗就跳到正常的程式,否則就退出程式
:0057C066 E989000000 jmp 0057C0F4
好了,下斷點後程式會被中斷在狗驅動中,從TRW2000中我們知道這個狗是金天地的TDMD,中斷後我們用F10和F12返回到主程式中,如下:
:0057C7B0 50
push eax
:0057C7B1 FF15AC815D00 call dword ptr
[005D81AC] <====第一次讀狗,在TRW2000中應該是call KERNEL32!Deviceiocontrol,這個CALL是判斷埠上有沒有活動的印表機和加密狗
:0057C7B7 8945F8
mov dword ptr [ebp-08], eax <=====返回到這裡
:0057C7BA 837DF800 cmp
dword ptr [ebp-08], 00000000
:0057C7BE 7421
je 0057C7E1
<=====不跳
:0057C7C0 83BD20FFFFFF00 cmp dword ptr [ebp+FFFFFF20],
00000000
:0057C7C7 7416
je 0057C7DF
<=====不跳
:0057C7C9 81BD20FFFFFF00300000 cmp dword ptr [ebp+FFFFFF20], 00003000
:0057C7D3 740A
je 0057C7DF
<======不跳
:0057C7D5 818520FFFFFF00005000 add dword ptr [ebp+FFFFFF20], 00500000
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0057C7C7(C), :0057C7D3(C)
|
:0057C7DF EB0A
jmp 0057C7EB
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0057C7BE(C)
|
:0057C7E1 C78520FFFFFF00005200 mov dword ptr [ebp+FFFFFF20], 00520000
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0057C7DF(U)
|
:0057C7EB EB01
jmp 0057C7EE
:0057C7ED E8
BYTE E8
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0057C7EB(U)
|
:0057C7EE 83BD20FFFFFF00 cmp dword ptr [ebp+FFFFFF20],
00000000 <====第一次判斷狗
:0057C7F5 7427
je 0057C81E <====沒有狗就不跳,所以我們這裡要把它改為Jmps 0057C81E
:0057C7F7 EB01
jmp 0057C7FA
:0057C7F9 E8
BYTE E8
看一下0057C81E的程式碼:
:0057C81E 8B8530FEFFFF mov eax, dword
ptr [ebp+FFFFFE30]
:0057C824 A3A0705D00 mov dword
ptr [005D70A0], eax
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0057C77F(C)
|
:0057C829 EB01
jmp 0057C82C
:0057C82B E8
BYTE E8
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0057C829(U)
|
:0057C82C E8C8F8FFFF call 0057C0F9
<=====計算密碼的CALL
:0057C831 0FB7D8
movzx ebx, ax
:0057C834 C1E310
shl ebx, 10
:0057C837 E8BDF8FFFF call 0057C0F9
<=====計算密碼的CALL
:0057C83C 0FB7C0
movzx eax, ax
:0057C83F 0BD8
or ebx, eax
:0057C841 899D38FEFFFF mov dword ptr
[ebp+FFFFFE38], ebx
:0057C847 EB01
jmp 0057C84A
:0057C849 E8
BYTE E8
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0057C847(U)
|
:0057C84A A168705D00 mov eax,
dword ptr [005D7068]
:0057C84F 50
push eax
:0057C850 E883FAFFFF call 0057C2D8
:0057C855 83C404
add esp, 00000004
:0057C858 898540FEFFFF mov dword ptr
[ebp+FFFFFE40], eax
:0057C85E EB01
jmp 0057C861
然後就是按F10一直向下走了,直到出現第二個CALL KERNEL32!Deviceiocontrol時:
:0057C8E1 50
push eax
:0057C8E2 FF15AC815D00 call dword ptr
[005D81AC] <=====第二次讀狗(Call KERNEL32!Deviceiocontrol)
:0057C8E8 8945F8
mov dword ptr [ebp-08], eax
:0057C8EB 8B45FC
mov eax, dword ptr [ebp-04]
:0057C8EE 50
push eax
:0057C8EF FF1558815D00 call dword ptr
[005D8158]
:0057C8F5 8B8528FEFFFF mov eax, dword
ptr [ebp+FFFFFE28]
:0057C8FB 50
push eax
:0057C8FC E85DFBFFFF call 0057C45E
:0057C901 83C404
add esp, 00000004
:0057C904 837DF800 cmp
dword ptr [ebp-08], 00000000
:0057C908 7434
je 0057C93E
:0057C90A 83BD20FFFFFF00 cmp dword ptr [ebp+FFFFFF20],
00000000 <=====第二次判斷狗,如果沒有狗,這裡的記憶體地址[81FD08]是一個非0的數,同時這個記憶體地址也是加密狗的重要記憶體地址,所以我們要把這個地址的內容改為0,我的改法是:and
dword prt [ebp+ffffff20],00000000,剛好是一樣的程式碼長度
:0057C911 7513
jne 0057C926
:0057C913 8B8524FFFFFF mov eax, dword
ptr [ebp+FFFFFF24] <====取從狗中讀出的資料
:0057C919 338538FEFFFF xor eax, dword
ptr [ebp+FFFFFE38] <====與另外的一個資料異或,將結果賦給EAX
:0057C91F A3D8705D00 mov dword
ptr [005D70D8], eax <=====將結果賦給記憶體地址[005D70D8],我們先帶狗執行程式,可知執行到這裡的時候,EAX的值是5CCAB580,所以我們必須把這個記憶體地址的內容賦為5CCAB580
:0057C924 EB16
jmp 0057C93C
我的改法是:
:0057C90A 83A520FFFFFF00 and dword ptr [ebp+FFFFFF20],
00000000
:0057C911 7513
jne 0057C926
:0057C913 8B8524FFFFFF mov eax, dword
ptr [ebp+FFFFFF24]
:0057C919 B880B5CA5C mov eax,
5CCAB580 <=====將EAX賦予5CCAB580
:0057C91E 90
nop
:0057C91F A3D8705D00 mov dword
ptr [005D70D8], eax <======將5CCAB580賦給記憶體地址[005D70D8]
:0057C924 EB16
jmp 0057C93C
至此,TDMD狗就被我們破掉了
相關文章
- 彩虹狗GS-MH破解-淺談狗的破解方法2015-11-15
- 軟體狗,dongle
(3千字)2002-12-17
- Hardlock加密狗破解過程-----外殼型加密狗的破解方法 (7千字)2001-10-15加密
- 打狗棒法:TDSD軟體狗 (20千字)2002-07-02
- 蒙泰5.0加密狗破解過程 (6千字)2001-10-11加密
- 如何破解深思Ⅲ加密狗!想解狗的朋友過來看了!
(10千字)2015-11-15加密
- 打狗棒法:深思3軟體狗(47千字)2002-06-30
- Crack之親歷手跡6---破解AuthorWare5的軟體狗() (2千字)2002-03-09
- 談到軟體狗,我說幾句 (1千字)2000-05-08
- 彩虹的DL(也叫軟體狗)2004-08-28
- Dog Parker智慧狗窩能有償“看狗” 再不怕出門丟狗2016-11-21
- 本人作品,2488的解狗教程(DOS下的狗),應客戶要求,不便說出軟體名字。 (2千字)2002-02-18
- Shub-Nigurrath的軟體狗教程2015-11-15
- 原創深思3加密狗破解2015-11-15加密
- IT狗的日常2013-12-08
- 軟體狗[Dongles]的加密與解密技術2002-05-27加密解密
- 全域性CSS的終結(狗帶)2015-10-24CSS
- 大老的打狗教程第三篇(最終篇)如何解掉,rockey4的狗加密的軟體!
(12千字)2015-11-15加密
- 酷狗面試感想2015-06-17面試
- easyCVR 機密狗2024-06-23VR
- 如何破解掉vt4.0的軟體狗(一種醫藥用影像分析軟體) 不錯的文章
(7千字)2015-11-15
- 速達3000PRO加密狗軟體學習
(5千字)2003-02-19加密
- 管家婆8.2單機版加密狗破解過程 (3千字)2001-10-13加密
- 單身狗——排序22020-10-12排序
- 十五、WDG看門狗2024-03-07
- 破解管家婆輝煌網路版8.0A客戶端的加密狗 (6千字)2001-10-05客戶端加密
- 大老的打狗教程第二篇如解掉,深思3的狗加密的軟體!希望對大家有所幫助!大老=[DCG]=
(13千字)2015-11-15加密
- 破解《速達3000 Pro》 正式版的加密狗 (16千字)2001-03-16加密
- 我來寫一下LanSentry的解狗破解過程 (5千字)2002-01-19
- MSTCAD空間網格結構設計軟體另類解狗 (41千字)2015-11-15
- 加密狗集中管理方案2014-03-07加密
- 菜狗的KMP學習2024-03-26KMP
- ctfshow-菜狗杯-web2024-05-14Web
- skinsdog 狗網好用嗎?csgo開箱網站skinsdog 狗網官網地址2020-10-29Go網站
- PerfDog效能狗上手體驗及總結分析2021-11-17
- 貼彩虹狗破解工具的序號產生器 (727字)2001-07-01
- 4 年前端狗,2 年 CTO2019-04-08前端
- 4 年前端狗 2 年 CTO2019-03-26前端