PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   系統組件 (https://www.pcdvd.com.tw/forumdisplay.php?f=19)
-   -   每日更新 NAV 病毒的簡易方式 (改良) (https://www.pcdvd.com.tw/showthread.php?t=339082)

adelies 2004-05-26 10:00 PM

每日更新 NAV 病毒的簡易方式 (改良)
 
這篇是接續「更新 NAV 病毒另一種方式 (適合喜歡每日更新)」,不過因為內容會有差異,為了避免有網友搞錯,所以重發一篇,請見諒。

主要的目的是為了「能隨自己的喜好定期更新」,也許有人會問,防毒軟體不是會自動定期 Update 嗎?是的,沒錯,不過也許會有人不清楚 Symantec 的病毒碼更新有兩種:

1. Intelligent Updater:在工作週期間,Intelligent Updater 每日更新。
2. LiveUpdate:每個星期更新,除非爆發大流行,這時定義檔就會更新的比較頻繁。
(詳細可參考:何時使用 Intelligent Updater 代替 LiveUpdate)

以今天為例 (5/26 21:30),LiveUpdate 的病毒碼是 5/19;Intelligent Updater 的病毒碼是 5/25。但說實在去點選下載,實在有點麻煩,所以,以下利用官方提供的批次檔,經過修改與熱心網友的協助,完成比上次提出來更簡易的方式。


四個步驟:

1. 下載 WGET (檔案傳輸軟體),並解到一個目錄中 (例如 C:\NAV\)。
WGET 檔案下載: ftp://ftp.sunsite.dk/projects/wget/...1b-complete.zip
WGET 網站: http://www.gnu.org/software/wget/wget.html
(事實上只需要 wget.exe、libeay32.dll 與 ssleay32.dll)

2. 下載 FCOM (檔案比對軟體),並解到與上者「相同」的目錄中 (例如 C:\NAV\)。
FCOM 檔案下載: http://www.topcatcomputing.com/downloads/fcom.zip
網站: http://www.topcatcomputing.com/arti...le.asp?DocId=16
(事實上只需要 FCOM32.exe)

3. 將以下文字存成 *.bat 批次檔,與上者「相同」的目錄中 (例如 C:\NAV\NAV.bat):
代碼:
@Echo Off
cls
wget -N ftp://ftp.symantec.com/public/english_us_canada/antivirus_definitions/norton_antivirus/static/symcdefsi32.exe
FCOM32 symcdefsi32.exe symcdefsi32.bak /Q
if errorlevel=1 goto Install
if errorlevel=0 goto No_Need
else goto Error
:Install
symcdefsi32.exe /Q
copy symcdefsi32.exe symcdefsi32.bak /Y > NUL
echo Update complete.
goto End
:No_Need
echo No update needed.
goto End
:Error
echo Error occured.
:End
@Echo On

4. 檔案管理員點選 .bat 執行。 (或在 CMD 中執行亦可)


說明:
1. 點選 .bat 即可自動執行 (要將 .bat 排程亦可)。
2. 會下載 symcdefsi32.exe,並備份一份為 symcdefsi32.bak。
3. 會比對官方伺服器的 symcdefsi32.exe 與本地端 symcdefsi32.exe 是否相同。若相同就不會下載。
4. 若使用 Server 版,請將批次檔中「symcdefsi32.exe」改為「symcdefsx86.exe」。
5. 事實上「symcdefsi32.exe」就是官方病毒碼下載網頁中的「yyyymmdd-0aa-i32.exe」;而「symcdefsx86.exe」就是網頁中的「yyyymmdd-0aa-x86.exe」。

PS:感謝網友阿豐大大的大力協助,與其他網友的測試 (就不一一具名囉~ :) ),謝謝!

Bon-Chih 2004-05-26 10:18 PM

給個好:like:

幫推 讚呀~~繼續加油:agree:

adelies 2004-05-26 10:29 PM

補一下 :)
若您的網路需要使用 Proxy,可將 .bat 修改成支援 Proxy!例如假設 Proxy 為:WWW.XXX.YYY.ZZZ:Port (例如:140.116.155.989:8080)。
代碼:
@Echo Off
cls
set ftp_proxy=WWW.XXX.YYY.ZZZ:Port
wget --proxy=on -N ftp://ftp.symantec.com/public/english_us_canada/antivirus_definitions/norton_antivirus/static/symcdefsi32.exe
...(以下都一樣)



PS: 剛把上一篇的 quote 改為 code,這樣網址連結應該就不會被簡略化了~ :shy:

newhamg 2004-05-26 10:57 PM

我上了一課....感恩大大的指教

jackal0601 2004-05-26 11:02 PM

剛剛測試了一下
真的可以^^

謝謝

那再請問一下

是不是CMD跑完 就可以把剛下載完的 新的病毒檔 刪除

另外

那個 FCOM 比對的作用是?

adelies 2004-05-26 11:24 PM

引用:
Originally posted by jackal0601
剛剛測試了一下
真的可以^^
謝謝
那再請問一下
是不是CMD跑完 就可以把剛下載完的 新的病毒檔 刪除
另外
那個 FCOM 比對的作用是?

不能砍,因為需要 .exe 檔與伺服器的檔案比對。

置於 FCOM32 的目的是比對 .exe 與 .bak,看是否需要安裝新的病毒檔。為何要這樣麻煩,因為要兼顧以下兩種可能:

1. WGET 比對檔案,發現一樣 → 不需下載 → FOM32 比對 .exe 與 .bak 會相同 → 因此不會再次安裝算是舊的病毒檔
2. WGET 比對檔案,發現伺服器已更新 → 下載 → FCOM32 比對 .exe 與 .bak 會不同 → 會安裝新的病毒檔



[edited]對了,上面有一個地方沒有寫清楚,server 是指 symantec antivirus "server" 版,不是指 windows server~ :shy:

jackal0601 2004-05-26 11:36 PM

引用:
Originally posted by adelies
不能砍,因為需要 .exe 檔與伺服器的檔案比對。

置於 FCOM32 的目的是比對 .exe 與 .bak,看是否需要安裝新的病毒檔。為何要這樣麻煩,因為要兼顧以下兩種可能:

1. WGET 比對檔案,發現一樣 → 不需下載 → FOM32 比對 .exe 與 .bak 會相同 → 因此不會再次安裝算是舊的病毒檔
2. WGET 比對檔案,發現伺服器已更新 → 下載 → FCOM32 比對 .exe 與 .bak 會不同 → 會安裝新的病毒檔


恩!

瞭解了!

謝謝您的詳細說明^^

club700 2004-05-26 11:37 PM

adelies 大:
若比對不同就會下載檔案,第一次執行因為沒有bak檔,所以應該也會下載。
但是好像不會自動執行安裝:confused:
是不是應該再加上黃色這一條呢,讓下域完後自動執行安裝呢?
:Install
symcdefsi32.exe /Q
copy symcdefsi32.exe symcdefsi32.bak /Y > NUL
echo Update complete.
symcdefsi32.exe

izaka 2004-05-27 12:02 AM

真的很詳細~ 已經 Mark 起來了~ :D

adelies 2004-05-27 12:02 AM

:Install
symcdefsi32.exe /Q
^^^^^^^^^^^^
這行應該就已經安裝完了,因為加了 /Q 參數只是螢幕不會出現任何訊息,也不會要求按任何鍵~ :shy:


(edited:以下順便加進來~ :) )
附註:
給 norton/symantec antivirus "SERVER" 版用的版本,要替換所有的 .exe 與 bak 部分,大致如下:
代碼:
@Echo Off
cls
wget -N ftp://ftp.symantec.com/public/english_us_canada/antivirus_definitions/norton_antivirus/static/symcdefsx86.exe
FCOM32 symcdefsx86.exe symcdefsx86.bak /Q
if errorlevel=1 goto Install
if errorlevel=0 goto No_Need
else goto Error
:Install
symcdefsx86.exe /Q 
copy symcdefsx86.exe symcdefsx86.bak /Y > NUL
echo Update complete.
goto End
:No_Need
echo No update needed.
goto End
:Error
echo Error occured.
:End
@Echo On


* 給 norton/symantec antivirus server 用的批次檔是直接用替換檔名的方式,小弟沒有做過太多測試,所以如果這部分有誤請告知 + 見諒~ :shy:
** 一般的版本應該用第一篇附的即可,因為其檔案比較小,不用佔太多頻寬。 :p


所有的時間均為GMT +8。 現在的時間是12:07 PM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。