視窗鎖王ver5.10簡介

看雪資料發表於2015-11-15

視窗鎖王ver5.10簡介 

這是一款強大的安全保護軟體。它利用Windows底層的VxD技術在WINDOWS 95/98/Me下實現了對硬碟的全面保護。主要功能有:可以對硬碟上的任意分割槽、目錄實現隱藏,防刪除,防改寫(只讀),抗惡性病毒傳染,資料防竊等功能。 

軟體使用簡單,只需執行(執行時無蹤無跡)即可,無須先對硬碟重新分割槽,是硬碟保護卡理想的軟體解決方案,廣泛適用於學校機房,單位機房,網咖,電腦屋以及個人電腦的安全保護。 

視窗鎖王使用pe-compact加殼,用pe-scan可以脫殼。 

視窗鎖王防TRW2000,一旦它的執行介面出現以後,如果發現TRW2000就會直接關機。但是不防Twx2002。使用靜態方法分析,查詢ExitWindowsEx,其中一處為程式處次執行時重新啟動用,另一處就是防Trw2000關機處。 

:00407972 83BDECFEFFFF00 cmp dword ptr [ebp+FFFFFEEC], 00000000 
:00407979 7706 ja 00407981--------------------------------->跳到關閉系統(改成90) 
:0040797B 837DFC00 cmp dword ptr [ebp-04], 00000000 
:0040797F 760E jbe 0040798F-------------------------------->不跳會走到關閉系統(改成EB) 

* Referenced by a (U)nconditional or (C)onditional Jump at Address: 
|:00407979(C) 

:00407981 6A00 push 00000000 
:00407983 6A05 push 00000005 

* Reference To: USER32.ExitWindowsEx, Ord:0000h----------------------------->到此處會關閉Windows 
                                  | 
:00407985 FF1514144200 Call dword ptr [00421414] 
:0040798B 33C0 xor eaxeax 
:0040798D EB05 jmp 00407994 

* Referenced by a (U)nconditional or (C)onditional Jump at Address: 
|:0040797F(C) 

:0040798F B801000000 mov eax, 00000001 

* Referenced by a (U)nconditional or (C)onditional Jump at Address: 
|:0040798D(U) 

:00407994 8BE5 mov espebp 
:00407996 5D pop ebp 
:00407997 C20800 ret 0008 

再來看註冊問題,由於我還是新手,搞了好多天也沒有搞好註冊的問題,沒有辦法了,爆破吧 

軟體退出時會出現提示框,詢問是否繼續保護。由此處入手! 
此軟體實現保護的方法時呼叫 KERNEL32.DeviceIoControl這個API函式,此函式引數說明如下: 

說明 
對裝置執行指定的操作 
返回值 Long,非零表示成功,零表示失敗。會設定GetLastError 
參數列 
引數 型別及說明 
hDevice Long,裝置控制程式碼 
dwIoControlCode Long,帶有 FSCTL_ 字首的常數。參考裝置控制選項的部分列表 
lpInBuffer Any,具體取決於dwIoControlCode引數。參考裝置控制選項的部分列表 
nInBufferSize Long,輸入緩衝區的長度 
lpOutBuffer Any,具體取決於dwIoControlCode引數。參考裝置控制選項的部分列表 
nOutBufferSize Long,輸出緩衝區的長度 
lpBytesReturned Long,實際裝載到輸出緩衝區的位元組數量 
lpOverlapped OVERLAPPED,這個結構用於重疊操作。針對同步操作,請用ByVal As Long傳遞零值 

用TRW2000跟蹤,在此函式上下斷點,從Load到程式後臺執行總共呼叫6次 

1、004075BD CALL NTEAPI32!NetBios 
2、00407016 CALL NTEAPI32!NetBios 
3、0040765C CALL NTEAPI32!NetBios 
4、004073E8 CALL KERNEL32.DeviceIoControl 
5、0040741A CALL KERNEL32.DeviceIoControl 
6、00407C64 CALL KERNEL32.DeviceIoControl 

根據函式說明猜測關鍵是後3次呼叫,並且最終確定是否保護是在最後一次呼叫,其餘兩次是在確定分割槽和目錄的目前狀態。基於此種猜想,將最後一次呼叫之前的引數入棧操作全部按照如下格式進行更改! 

* Possible StringData Ref from Code Obj ->"請您確認!" 
                                  | 
:0040811E 680CA34200 push 0042A30C 

* Possible StringData Ref from Code Obj ->"軟體退出後是否繼續保護?" 
                                  | 
:00408123 6818A34200 push 0042A318 
:00408128 8B8D0CFDFFFF mov ecxdword ptr [ebp+FFFFFD0C] 
:0040812E E8F1090100 call 00418B24 
:00408133 83F806 cmp eax, 00000006 
:00408136 751E jne 00408156---------------> 如果選擇否,則此處跳! 
:00408138 6A00 push 00000000-------------------- 
:0040813A 6A00 push 00000000                         | 
:0040813C 6A00 push 00000000                         | 
:0040813E 6A00 push 00000000                         | 
:00408140 6A00 push 00000000                         |這裡就是8個引數 
:00408142 6A00 push 00000000                         | 
:00408144 6808C0EBFF push FFEBC008              | 
:00408149 8B1560E34200 mov edxdword ptr [0042E360] | 
:0040814F 52 push edx-------------------------/ 

* Reference To: KERNEL32.DeviceIoControl, Ord:0000h 
                                  | 
:00408150 FF15AC124200 Call dword ptr [004212AC] 

* Referenced by a (U)nconditional or (C)onditional Jump at Address:----->到此處取消保護,結束程式 
|:00408136(C) 

:00408156 8B850CFDFFFF mov eaxdword ptr [ebp+FFFFFD0C] 
:0040815C 8B10 mov edxdword ptr [eax
:0040815E 8B8D0CFDFFFF mov ecxdword ptr [ebp+FFFFFD0C] 
:00408164 FF5258 call [edx+58] 
:00408167 8BE5 mov espebp 
:00408169 5D pop ebp 
:0040816A C3 ret 

******************************************* 

下面是動態跟蹤發現的最後一次呼叫 

:00407BF3 55 push ebp 
:00407BF4 8BEC mov ebpesp 
:00407BF6 83EC10 sub esp, 00000010 
:00407BF9 56 push esi 
:00407BFA 894DF0 mov dword ptr [ebp-10], ecx 

* Possible StringData Ref from Code Obj ->"KERNEL32.DLL" 
                                  | 
:00407BFD 6868A14200 push 0042A168 

* Reference To: KERNEL32.LoadLibraryA, Ord:0000h 
                                  | 
:00407C02 FF1570114200 Call dword ptr [00421170] 
:00407C08 8945F8 mov dword ptr [ebp-08], eax 

* Possible StringData Ref from Code Obj ->"RegisterServiceProcess" 
                                  | 
:00407C0B 6878A14200 push 0042A178 
:00407C10 8B45F8 mov eaxdword ptr [ebp-08] 
:00407C13 50 push eax 

* Reference To: KERNEL32.GetProcAddress, Ord:0000h 
                                  | 
:00407C14 FF1580124200 Call dword ptr [00421280] 
:00407C1A 8945F4 mov dword ptr [ebp-0C], eax 
:00407C1D 6A01 push 00000001 
:00407C1F 6A00 push 00000000 
:00407C21 FF55F4 call [ebp-0C] 
:00407C24 8B0D5CE34200 mov ecxdword ptr [0042E35C] 
:00407C2A C1E903 shr ecx, 03 
:00407C2D 8B155CE34200 mov edxdword ptr [0042E35C] 
:00407C33 F7D2 not edx 
:00407C35 03CA add ecxedx 
:00407C37 A15CE34200 mov eaxdword ptr [0042E35C] 
:00407C3C 33D2 xor edxedx 
:00407C3E BEB2070000 mov esi, 000007B2 
:00407C43 F7F6 div esi 
:00407C45 2BC8 sub ecxeax 
:00407C47 894DFC mov dword ptr [ebp-04], ecx 
:00407C4A 6A00 push 00000000------------------------- 
:00407C4C 6A00 push 00000000                               | 
:00407C4E 6A00 push 00000000                               | 
:00407C50 6A00 push 00000000                               | 
:00407C52 6A04 push 00000004 ------------------------|--->對照上面改成6A00 
:00407C54 8D45FC lea eaxdword ptr [ebp-04]-----------|--->對照上面改成8D45 
:00407C57 50 push eax------------------------------|--->對照上面改成6A00 
:00407C58 6814C0EBFF push FFEBC014-------------------------|--->對照上面改成6808C0EBFF 
:00407C5D 8B0D60E34200 mov ecxdword ptr [0042E360] |--->此處相同 
:00407C63 51 push ecx------------------------------/ 

* Reference To: KERNEL32.DeviceIoControl, Ord:0000h 
                                  | 
:00407C64 FF15AC124200 Call dword ptr [004212AC] 
:00407C6A 33C0 xor eaxeax 
:00407C6C 5E pop esi 
:00407C6D 8BE5 mov espebp 
:00407C6F 5D pop ebp 
:00407C70 C20800 ret 0008 

*************************************************************** 
*************************************************************** 

更改以後程式開機實現保護 2003.8.16

相關文章