|
发表于 2007-8-5 09:14:35
|
显示全部楼层
"互斥"的意思是說裝了某牌後不讓你裝別牌。某些牌子(如PCCLIN..)根本除了格式化無法反安裝。說句內行人常說的話,沒人對防毒軟體有信心,只能要求自己小心並養成好習慣。
以前面說的Viking木馬(群)來說,我試過大陸各牌軟體,沒一個掃得到(這個情況下當然覺得掃完了),只有"瑞星"能找到,只是它殺了太多,會造成系統完蛋。它會"滲透到各分割槽,並破壞所有執行檔",因此你無論是在C\D\E...所有的執行檔都完蛋;就算你以為把C\格式化了,但其它槽仍有病毒並繼續擴散。
此外某些"綁架式"的木馬掃毒軟件反而不好找,後來我發現用全硬碟htm/html/txt/xml.. Search and Replace的方法反而更好。
部分程式函數列舉於下:(Vb)
- Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
- Private Const forReading = 1, forWriting = 2, forAppending = 3
- Private fs, f
- Private Sub Form_Load()
- ' fs 表示 FileSystemObject 物件
- Set fs = CreateObject("Scripting.FileSystemObject")
- End Sub
- ' 包含子目錄的檔案搜尋
- ' 參數 inPath 表示起始目錄,參數 Filter 表示檔案過濾條件,例如字串 "*.txt;*.htm;*.html"
- ' 選擇性參數 Include_SubDir 決定是否要搜尋子目錄,預設為否
- Private Sub searchFile(inPath As String, Filter As String, Optional Include_SubDir As Boolean)
- On Error Resume Next
-
- Dim fn As String, pfn As String, i As Long, isFind As Boolean
- Dim dirList() As String, nDir As Long, filterList() As String
-
- filterList = Split(Filter, ";")
- fn = Dir(inPath, vbHidden Or vbDirectory Or vbReadOnly)
- Do While fn <> ""
- If fn <> "." And fn <> ".." Then
- pfn = inPath & fn
- If fs.FolderExists(pfn) Then
- If Include_SubDir Then
- nDir = nDir + 1
- ReDim Preserve dirList(nDir)
- dirList(nDir) = pfn
- End If
- Else
- isFind = False
- For i = 0 To UBound(filterList)
- If UCase(fn) Like UCase(filterList(i)) Then isFind = True: Exit For
- Next i
- If isFind Then
- '====================
- ' 針對找到的檔案執行處理程序
- '====================
- End If
- End If
- End If
- fn = Dir
- Loop
- For i = 1 To nDir
- searchFile dirList(i) & "", Filter, Include_SubDir
- Next i
- End Sub
- ' 取得指定文件的全部內容
- Private Function getFileText(fn As String) As String
- On Error Resume Next
- Set f = fs.OpenTextFile(fn, forReading)
- getFileText = f.ReadAll
- f.Close
- End Function
- ' 重寫指定文件的全部內容,並且傳回是否成功
- Private Function saveFileText(fn As String, txt As String) As Boolean
- On Error GoTo ErrorHandler
- Set f = fs.OpenTextFile(fn, forWriting)
- f.write txt
- f.Close
- saveFileText = True
- Exit Function
- ErrorHandler:
- saveFileText = False
- End Function
- ' 取得指定文件的全部內容(另一種方法)
- 'Private Function getFileText(fn As String) As String
- ' Open fn For Binary As #1
- ' getFileText = Input(LOF(1), 1)
- ' Close #1
- 'End Function
- ' 重寫指定文件的全部內容(另一種方法)
- 'Private Sub saveFileText(fn As String, txt As String)
- ' Open fn For Output As #1
- ' Print #1, txt
- ' Close #1
- 'End Sub
- ' 以系統的預設方式,開啟個別檔案
- Private Sub openFile(fn as String)
- ShellExecute Me.hWnd, "open", fn, "", "", 1
- End Sub
- ' 以 notepad.exe 檢視個別檔案
- Private Sub viewFile(fn as String)
- ShellExecute Me.hWnd, "open", "notepad.exe", Chr(34) & fn & Chr(34), "", 1
- End Sub
- ' 以 explorer.exe 瀏覽檔案的所在目錄
- Private Sub exploreDir(fn as String)
- ShellExecute Me.hWnd, "open", "explorer.exe", "/e," & fs.GetParentFolderName(fn), "", 1
- End Sub
复制代码 |
|