
Estou tentando escrever um script de shell para obter o URL dinâmico onde o ComboFix está localizado emBleepingComputer.com/download/combofix
No entanto, por algum motivo, não consigo fazer com que meu regex corresponda ao link de download de "clique aqui" se o download não funcionar. Usei um testador de regex e ele disse que correspondi ao link, mas não consigo fazê-lo funcionar quando o executo, aparece um resultado vazio. Aqui está todo o meu script:
#!/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
Os dois primeiros downloads funcionam com sucesso e acabo com: http://www.bleepingcomputer.com/download/combofix/dl/12/
Mas não corresponde ao sed final que me fornecerá o link para download.
O código que deve corresponder é:
<a href="http://download.bleepingcomputer.com/dl/6c497ccbaff8226ec84c97dcdfc3ce9a/5058d931/windows/security/anti-virus/c/combofix/ComboFix.exe">click here</a>
SOLUÇÃO:
Para quem estiver interessado, o código final que funcionou foi:
#!/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
Responder1
Engraçado: acabei de irhttp://www.bleepingcomputer.com/download/combofix/dl/12/e encontrei
<ahref='http://download.bleepingcomputer.com/dl/587c6038..../..../ComboFix.exe'>clique aqui</a>.
ou seja, o URL é delimitado por aspas simples (') em vez de aspas duplas (") (que é o que seu sed
comando está procurando).
Responder2
Não há necessidade de baixar a primeira página, pois a segunda página é estática. Será sempre:
http://www.bleepingcomputer.com/download/combofix/dl/12/
Também é fortemente sugerido que você use o-Nsinalizador no wget para verificar os carimbos de data e hora. Isso só baixará o ComboFix se for mais recente que o do seu computador.
Certifique-se também de que seu script seja executado apenas uma ou duas vezes por dia. Não há necessidade de executá-lo mais do que isso.
Ao limitar as solicitações e usar o -N, você evitará ser automaticamente banido por nossos scripts.
Obrigado