使用 sed 自動下載 ComboFix

使用 sed 自動下載 ComboFix

我正在嘗試編寫一個 shell 腳本來獲取 ComboFix 所在的動態 URLBleepingComputer.com/download/combofix

但是,由於某種原因,如果下載不起作用,我似乎無法讓我的正規表示式與「單擊此處」的下載連結相符。我使用了正則表達式測試器,它說我匹配了鏈接,但當我執行它時,我似乎無法讓它工作,它會顯示一個空結果。這是我的整個腳本:

 #!/bin/bash
 # Download latest ComboFix from BleepingComputer
 wget -O Listing.html "http://www.bleepingcomputer.com/download/combofix/" -nv
 downloadpage=$(sed -ne 's@^.*<a href="\(http://www[.]bleepingcomputer[.]com/download/combofix/dl/[0-9]\+/\)" class="goodurl">.*$@\1@p' Listing.html)
 echo "DL Page: $downloadpage"
 secondpage="$downloadpage"
 wget -O Download.html $secondpage -nv
 file=$(sed -ne 's@^.*<a href="\(http://download[.]bleepingcomputer[.]com/dl/[0-9A-Fa-f]\+/[0-9A-Fa-f]\+/windows/security/anti[-]virus/c/combofix/ComboFix[.]exe\)">.*$@\1@p' Download.html)
 echo "File: $file"
 wget -O "ComboFix.exe" "$file" -nv
 rm Listing.html
 rm Download.html
 mkdir Tools
 mv "ComboFix.exe" "Tools/ComboFix.exe" -f

前兩次下載成功,我最終得到: http://www.bleepingcomputer.com/download/combofix/dl/12/

但它與最終的 sed 不匹配,它會給我下載鏈接。

它應該匹配的代碼是:

<a href="http://download.bleepingcomputer.com/dl/6c497ccbaff8226ec84c97dcdfc3ce9a/5058d931/windows/security/anti-virus/c/combofix/ComboFix.exe">click here</a>

解決方案:

對於任何有興趣的人來說,最終有效的程式碼是:

#!/bin/bash
# Download latest ComboFix from BleepingComputer
wget -O Download.html "http://www.bleepingcomputer.com/download/combofix/12" -nv
file=$(sed -ne 's@^.*<a href=\x27\(http://download[.]bleepingcomputer[.]com/dl/[0-9A-Fa-f]\+/[0-9A-Fa-f]\+/windows/security/anti[-]virus/c/combofix/ComboFix[.]exe\)\x27>.*$@\1@p' Download.html)
echo "File URL: $file"
wget -OSN "ComboFix.exe" "$file" -nv

答案1

有趣的是:我剛剛去了http://www.bleepingcomputer.com/download/combofix/dl/12/並發現

<a href='http://download.bleepingcomputer.com/dl/587c6038..../..../ComboFix.exe'>點擊此處</a>。

即,URL 由單引號分隔(') 而不是雙引號 () (這就是您的sed命令正在尋找的內容)。

答案2

無需下載第一頁,因為第二頁是靜態的。它將永遠是:

http://www.bleepingcomputer.com/download/combofix/dl/12/

也強烈建議您使用-Nwget 上的標誌來檢查時間戳記。只有當 ComboFix 比您電腦上的版本更新時,才會下載 ComboFix。

還要確保您的腳本每天只運行一次或兩次。無需運行更多。

透過限制請求並使用 -N,您應該避免被我們的腳本自動禁止。

謝謝

相關內容