Usando sed per scaricare automaticamente ComboFix


3

Sto provando a scrivere uno script di shell per afferrare l'URL dinamico su cui si trova ComboFix at BleepingComputer.com/download/combofix

Tuttavia, per qualche motivo non riesco a ottenere la mia espressione regolare per abbinare il collegamento di download del "clic qui" se il download non funziona. Ho usato un regex tester e ho detto che ho trovato il link, ma non riesco a farlo funzionare quando lo eseguo, ma restituisce un risultato vuoto. Ecco il mio intero 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

I primi due download funzionano correttamente e alla fine ho: http://www.bleepingcomputer.com/download/combofix/dl/12/

Ma non riesce ad abbinare il finale sed che mi darà il link per il download.

Il codice che deve corrispondere è:

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

SOLUZIONE:

Per chiunque fosse interessato, il codice finale che funzionava era:

#!/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

Risposte:


1

È divertente: sono appena andato a http://www.bleepingcomputer.com/download/combofix/dl/12/ e trovato

& lt; a href = ' http://download.bleepingcomputer.com/dl/587c6038..../..../ComboFix.exe '& gt; fai clic qui & lt; / a & gt ;.

vale a dire, l'URL è delimitato da virgolette singole ( ' ) piuttosto che le doppie virgolette ( " ) (che è ciò che è tuo sed comando sta cercando).


Che strano, lo sto visualizzando in Chrome e vedo le doppie virgolette
Ecksters

Hai ragione però, questo è il problema, ho visto il file Download.html e ha le virgolette singole
Ecksters

2

Non è necessario scaricare la prima pagina poiché la seconda pagina è statica. Sarà sempre:

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

Si consiglia inoltre vivamente di utilizzare il -N segnala su wget per controllare i timestamp. Questo scaricherà solo ComboFix se è più recente di quello sul tuo computer.

Assicurati inoltre che lo script venga eseguito solo una o due volte al giorno. Non è necessario eseguirlo di più.

Limitando le richieste e utilizzando il -N, si dovrebbe evitare di essere automaticamente bannati dai nostri script.

Grazie


Non ero sicuro se il primo fosse statico o no, perché altrimenti il ​​numero sembra non necessario, grazie per avermelo fatto notare. Attualmente lo script viene eseguito solo una volta al giorno durante la notte, mi assicurerò di aggiungere il -N ad esso, grazie per il suggerimento e le informazioni interne :)
Ecksters
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.