小紅傘殺毒軟體自動化調用

來源:互聯網
上載者:User

標籤:des   winform   style   blog   http   io   ar   color   os   

這個東西本身沒什麼技術含量,啟動新進程 跟命令列一樣 幾句代碼的事 。說白了 還是要靠殺毒軟體支援。比如你可以在伺服器上做一個自動化的 程式模組  ,有使用者上傳文檔 就進行病毒檢測。現在的殺毒軟體都可以自動做到這些的 ,指定目錄下出現病毒檔案會報的。殺毒軟體還可以設定計劃任務 ,指定何時掃描指定檔案夾 ,可以設定檢測到病毒後對檔案的處理方式。其實這種需求本身是沒什麼太大必要的 ,坑爹啊 客戶是上帝啊。既然有需求我們就要 給客戶實現。

好 不說了開始幹活了。先從網上下載個免費版的小紅傘 ,安裝好。我的是這個版本的:

轉到我的安裝目錄 C:\Program Files (x86)\Avira\AntiVir Desktop  看到這個了噻: avscan.exe  ,我們就調用它。通過命令調用avscan需要一個設定檔 ,我們在d盤建立一個文字檔 更名為myavp.avp  內容為:

[CFG]
GuiMode=1
ExitMode=1
[SEARCH]
Parameter=0x00300432
[CONTROLCENTER]
ProfileName=myscan

然後把檔案屬性設為唯讀 ,要不然 調用後 小紅傘會刪除此設定檔。別問我什麼意思 ,我也不知道什麼意思 ,小紅傘安裝目錄也有很多的avp檔案 。不過可以確定一點 guimode=1 意思是控制是否彈出介面 ,哇哈哈    ,別砸我。為了測試成功與否我們得找個病毒檔案,擦 我哪去找病毒檔案啊 ,最終我還是找了個 ,當前比較流行 時尚的lpk.dll 。如假包換這絕對是一個病毒檔案 我朋友傳給我的壓縮包裡的。然後再隨便找個圖片檔案  th.jpg  其他隨便什麼exe檔案  隨便都可以 隨意。

然後 運行命令列如下:

D:\>cd C:\Program Files (x86)\Avira\AntiVir Desktop
C:\Program Files (x86)\Avira\AntiVir Desktop>avscan /CFG="d:\myavp.avp" /PATH="d:\th.jpg"

這隻是個普通圖片檔案 事實檢測此妹紙是無毒的:

然後運行命令 參數設定為掃描有病毒的檔案:
C:\Program Files (x86)\Avira\AntiVir Desktop>avscan /CFG="d:\myavp.avp" /PATH="d:\lpk.dll"
結果:

注意在win7下 有可能會出現提示“要允許以下程式對電腦進行更新嗎” 這個請自行設定 管理員權限。

我們想要的是不讓他彈出介面,把上面的 配置 第一個項改成GuiMode=0  ,然後再運行命令列 ,結果是 介面是沒了 但是命令列裡 卻什麼結果也不返回 。運行命令 然後就完了 空空如也  這個我也不知道怎麼回事 先不管。 建立一個winform程式 寫一段如下c#函數:

 1 void invokeAntivirus(string executeFileFullName,string args,string docFullName) 2 { 3     Process proc =null; 4     proc = new System.Diagnostics.Process(); 5     proc.StartInfo.FileName = executeFileFullName; 6     proc.StartInfo.Arguments = string.Format(args, docFullName); 7     proc.Start(); 8     proc.WaitForExit(); //等待 9 10     if (proc.ExitCode == 0)11         MessageBox.Show("沒病毒啦啦啦");12     else13         MessageBox.Show("注意,有情況");14 }

然後在按鈕的click事件裡調用:

1 string exe = @"C:\Program Files (x86)\Avira\AntiVir Desktop\avscan.exe";2 string args = "/CFG=\"d:\\myavp.avp\" /PATH=\"{0}\"";3 string docFile = textBox1.Text;4 invokeAntivirus(exe, args, docFile);

最後運行下我們編譯後在debug目錄的程式 ,一定要滑鼠右鍵 以管理員方式運行。
在文字框填寫d:\th.jpg

在文字框填寫:d:\lpk.dll

當你點擊按鈕後介面會死幾秒鐘 才有反應 ,因為要等掃描進程結束。如果你想解決此情況不讓介面死掉 那麼最簡單的方式 放到另一個線程裡執行就可以了。proc.ExitCode != 0 的那些代碼是什麼意思其實我也不明白 ,反正等於0的是正常檔案 。反正功能實現了就行了 坑啊。注意需掃描的檔案名稱或者路徑填錯了 並不報錯 而是proc.ExitCode==0 。並且掃描結束後發現d盤的病毒檔案已經不見了。再看小紅傘的介面 原來已經被自動隔離了:

小紅傘殺毒軟體自動化調用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.