sed を使用して ComboFix を自動的にダウンロードする

sed を使用して ComboFix を自動的にダウンロードする

私は、ComboFixが配置されている動的URLを取得するシェルスクリプトを書こうとしています。BleepingComputer.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

最初の 2 回のダウンロードは正常に動作し、次のようになります。 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

2 ページ目は静的なので、最初のページをダウンロードする必要はありません。常に次のようになります。

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

また、-Nwget にフラグを設定してタイムスタンプをチェックします。これにより、コンピューター上にあるものよりも新しい ComboFix のみがダウンロードされます。

また、スクリプトは 1 日に 1 回か 2 回だけ実行されるようにしてください。それ以上実行する必要はありません。

リクエストを制限し、-N を使用することで、スクリプトによって自動的に禁止されることを回避できます。

ありがとう

関連情報