
私は、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 を使用することで、スクリプトによって自動的に禁止されることを回避できます。
ありがとう