可疑文件的批處理最好能用循環(huán)來(lái)寫主體部分
實(shí)驗(yàn)中涉及到4個(gè)文件:list.txt,pre.bat,check.bat,check.log。
首先,要有l(wèi)ist.txt,這個(gè)文件記錄了所有可疑文件,每行寫一個(gè)。這個(gè)需要手工寫,但是只需要寫文件路徑和文件名,回車換行再寫下一個(gè)即可,工作量說(shuō)大也不大,說(shuō)小也不小。形如:
……
%systemroot%\explorer.exe
%systemroot%\system32\rundll32.exe
……
第二,pre.bat,這是個(gè)預(yù)處理,是用來(lái)生成check.bat這個(gè)批處理的。其中使用了for循環(huán),從list.txt中按行讀出文件名,替換變量后寫入到check.bat當(dāng)中。這里面使用最多的是echo。在含有輸出重定向的操作(包括for循環(huán))中,因?yàn)閷懭隿heck.bat的內(nèi)容中又含有寫入check.log的操作,所以這里使用了雙引號(hào),用以屏蔽掉其中一個(gè)輸出重定向操作。這里就有了一個(gè)問(wèn)題:本來(lái)寫入check.bat中的命令帶了雙引號(hào),失去了“命令”的作用而成了“字符串”,所以生成check.bat后還要手工刪掉其中所有的雙引號(hào)。這個(gè)不知道能不能用批處理來(lái)實(shí)現(xiàn),我目前沒有找到什么方法。pre.bat的內(nèi)容如下:
@echo off
echo @echo off>> check.bat
echo echo BATCH STARTS...>> check.bat
echo echo PRESS ANY KEY TO START THE BATCH...>> check.bat
echo pause>> check.bat
echo "date /t>> check.log">> check.bat
echo "time /t>> check.log">> check.bat
echo "echo -------START------>> check.log">> check.bat
::以上均向check.bat中寫入提示文字及命令。
for /F %%i in (list.txt) do echo "if exist %%i echo %%i & echo %%i>> check.log">> check.bat
::FOR循環(huán),從list.txt中讀取文件名,
::IF判斷若存在文件則顯示文件名并將其寫入check.log中。
echo "echo -------END------>> check.log">>check.bat
echo echo BATCH ENDS!>> check.bat
echo echo PRESS ANY KEY TO EXIT...>> check.bat
echo pause>> check.bat
pause
第三,check.bat,這是真正用來(lái)檢查可疑文件的,也是4個(gè)文件中最長(zhǎng)的一個(gè),由pre.bat生成之后,手工刪除了其中所有的雙引號(hào)(使用了記事本的替換功能,其實(shí)也很方便,完全沒有什么工作量)。執(zhí)行時(shí),若存在可疑文件,則顯示并寫入記錄文件check.log中。該文件內(nèi)容形如:
@echo off
echo BATCH STARTS...
echo PRESS ANY KEY TO START THE BATCH...
pause
date /t>> check.log
time /t>> check.log
echo -------START------>> check.log
……
if exist %systemroot%\explorer.exe echo %systemroot%\explorer.exe & echo %systemroot%\explorer.exe>> check.log
if exist %systemroot%\system32\rundll32.exe echo %systemroot%\system32\rundll32.exe & echo %systemroot%\system32\rundll32.exe>> check.log
……
echo -------END------>> check.log
echo BATCH ENDS!
echo PRESS ANY KEY TO EXIT...
pause
第四,記錄文件check.log,由check.bat生成,記錄檢查結(jié)果。形如:
2007-01-15
20:18
-------START------
……
C:\WINDOWS\explorer.exe
C:\WINDOWS\system32\rundll32.exe
……
-------END------
現(xiàn)在剩下的問(wèn)題就是寫list.txt了,具體有多少我沒有統(tǒng)計(jì),不過(guò)一天應(yīng)該可以寫完,明天可能王經(jīng)理結(jié)賬要來(lái)公司找我,如果沒別的特殊情況的話,明天可以寫完,差不多可以將1.0版發(fā)給同事和小郭了。
相關(guān)文章
使用 certutil 實(shí)現(xiàn) Hex2Bin 和 Base64 加解密的方法
這篇文章主要介紹了使用 certutil 實(shí)現(xiàn) Hex2Bin 和 Base64 加解密的方法,需要的朋友可以參考下2016-10-10
批處理的api WMIC學(xué)習(xí)體會(huì)有感
上期的專欄里,NP給大家寫了一篇很精彩也很有實(shí)際應(yīng)用效果的批處理教程。這期,我給大家講一下最近我學(xué)習(xí)wmic的體會(huì)。2008-06-06
批處理腳本(.bat)實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè)文件夾并執(zhí)行命令?(假設(shè)有新文件則拷貝到遠(yuǎn)程文件夾內(nèi))
文章介紹了如何使用批處理腳本(.bat)實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè)文件夾,并在檢測(cè)到新文件時(shí)將其拷貝到遠(yuǎn)程文件夾中,腳本通過(guò)比較當(dāng)前和之前的文件列表來(lái)檢測(cè)新文件,并根據(jù)文件名首字母進(jìn)行條件判斷,滿足條件的文件將被拷貝,感興趣的朋友一起看看吧2025-02-02
DOS批處理腳本語(yǔ)言簡(jiǎn)介與詳細(xì)說(shuō)明
DOS批處理腳本語(yǔ)言簡(jiǎn)介與詳細(xì)說(shuō)明...2007-03-03
bat截取日期、時(shí)間之后進(jìn)行 set /a 計(jì)算時(shí)08和09會(huì)被看做非法八進(jìn)制數(shù)字
這篇文章主要介紹了bat截取日期、時(shí)間之后進(jìn)行 set /a 計(jì)算時(shí)08和09會(huì)被看做非法八進(jìn)制數(shù)字,需要的朋友可以參考下2021-09-09
寫一個(gè)bat批處理文件啟動(dòng)windows進(jìn)程和延時(shí)關(guān)閉的代碼
一個(gè)實(shí)現(xiàn)啟動(dòng)windows進(jìn)程和延時(shí)關(guān)閉的bat批處理文件,用于打開IE與關(guān)閉IE,學(xué)習(xí)批處理的朋友可以參考下。2010-11-11
用BAT創(chuàng)建文件夾文件及回顯環(huán)境變量的問(wèn)題
這篇文章主要介紹了用BAT創(chuàng)建文件夾文件及回顯環(huán)境變量的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03

