Usando sed para descargar ComboFix automáticamente

Usando sed para descargar ComboFix automáticamente

Estoy intentando escribir un script de shell para obtener la URL dinámica en la que se encuentra ComboFix enBleepingComputer.com/download/combofix

Sin embargo, por alguna razón parece que no puedo hacer que mi expresión regular coincida con el enlace de descarga de "haga clic aquí" si la descarga no funciona. Utilicé un probador de expresiones regulares y decía que coincidía con el enlace, pero parece que no puedo hacerlo funcionar cuando lo ejecuto, aparece un resultado vacío. Aquí está mi guión completo:

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

Las dos primeras descargas funcionan correctamente y termino con: http://www.bleepingcomputer.com/download/combofix/dl/12/

Pero no coincide con el sed final que me dará el enlace de descarga.

El código que se supone que debe coincidir es:

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

SOLUCIÓN:

Para cualquiera interesado, el código final que funcionó fue:

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

Respuesta1

Eso es gracioso: acabo de ir ahttp://www.bleepingcomputer.com/download/combofix/dl/12/y encontrado

<ahref='http://download.bleepingcomputer.com/dl/587c6038..../..../ComboFix.exe'>haga clic aquí</a>.

es decir, la URL está delimitada por comillas simples (') en lugar de comillas dobles (") (que es lo que sedbusca su comando).

Respuesta2

No es necesario descargar la primera página ya que la segunda página es estática. Siempre será:

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

También se recomienda encarecidamente que utilice el-NORTEmarca en wget para verificar las marcas de tiempo. Esto solo descargará ComboFix si es más nuevo que el de su computadora.

También asegúrese de que su script solo se ejecute una o dos veces al día. No es necesario ejecutarlo más que eso.

Al limitar las solicitudes y utilizar -N, deberías evitar que nuestros scripts te prohíban automáticamente.

Gracias

información relacionada