?>/script>'; } ?> una ayuda con bash HELPPPP AYUDAMEEE !!! :) Widgets Magazine

Autor Tema: una ayuda con bash HELPPPP AYUDAMEEE !!! :)  (Leído 25344 veces)

0 Usuarios y 1 Visitante están viendo este tema.

5.1

  • Visitante
Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
« Respuesta #40 en: 20-04-2015, 01:25 (Lunes) »
Tio, es más complicado, pero mirate GTKdialog....

Si quieres te echo una manita


Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 16048
Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
« Respuesta #41 en: 20-04-2015, 08:15 (Lunes) »
lo he dejado estar , de hecho acabo de subir iso de desarrollo y lleva la versión script del buscador de macs.  :'(


5.1

  • Visitante
Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
« Respuesta #42 en: 20-04-2015, 16:00 (Lunes) »
Ahi lo tienes .... https://mega.co.nz/#!d113VLSI!FVxAC86cPqIQwelv0peiD6b67Ct7c1s7UdcdX3Iso4s

Código: [Seleccionar]
#!/bin/bash
if [ ! -f /etc/aircrack-ng/airodump-ng-oui.txt ]; then
    yad --image "error" --title "ERROR" --button=gtk-ok:0 --text "<b>ERROR</b>: No existe el archivo /etc/aircrack-ng/airodump-ng-oui.txt, imposible continuar" --fixed --on-top --center --window-icon=error
    exit
fi

[ -z $GTKDIALOG ] && GTKDIALOG=gtkdialog

# VERSION DEL SCRIPT
VERSION="v1.5"

TMPDIR=/tmp/"`basename $0`"
rm -rf "$TMPDIR"
mkdir -p "$TMPDIR"

ARCHIVO_TXT_FABRICANTE="$TMPDIR""/txt_fabricante"
ARCHIVO_TXT_MACS="$TMPDIR""/txt_macs"
ARCHIVO_TXT_TEMP="$TMPDIR/txt_temp"

export ARCHIVO_TXT_FABRICANTE
export ARCHIVO_TXT_MACS
export ARCHIVO_TXT_TEMP

rm $ARCHIVO_TXT_FABRICANTE 2>/dev/null
rm $ARCHIVO_TXT_MACS 2>/dev/null

touch $ARCHIVO_TXT_FABRICANTE
touch $ARCHIVO_TXT_MACS


function buscar_fabricante() {
    rm $ARCHIVO_TXT_FABRICANTE 2>/dev/null
    touch $ARCHIVO_TXT_FABRICANTE
    
    if [ -z $MAC_A_BUSCAR ] || [ "${#MAC_A_BUSCAR}" != 8 ]
    then
yad --image "error" --title "ERROR" --button=gtk-ok:0 --text "<b>ERROR</b>: Error en el formato de la MAC introducida" --fixed --on-top --center --window-icon=error
return
    fi    
    for ((i=1; i<=8; i++)); do
caracter=`expr substr $MAC_A_BUSCAR $i 1`
case $i in
   3|6) if [ $caracter != ":" ]
then
   yad --image "error" --title "ERROR" --button=gtk-ok:0 --text "<b>ERROR</b>: Error en el formato de la MAC introducida" --fixed --on-top --center --window-icon=error
   return
        fi ;;
   2) if [[ $caracter =~ [ACEace02468] ]]
        then
   continue
        else
   yad --image "error" --title "ERROR" --button=gtk-ok:0 --text "<b>ERROR</b>: Error en el formato de la MAC introducida" --fixed --on-top --center --window-icon=error
   return
fi ;;
   1|4|5|7|8) if [[ $caracter  =~ [A-Fa-f0-9] ]]
      then
continue
      else
yad --image "error" --title "ERROR" --button=gtk-ok:0 --text "<b>ERROR</b>: Error en el formato de la MAC introducida" --fixed --on-top --center --window-icon=error
return
      fi ;;
esac
    done
    
    consulta=`cat /etc/aircrack-ng/airodump-ng-oui.txt | grep -i $(echo "$MAC_A_BUSCAR" | tr ':' '-')`
    respuesta=$(echo $consulta | cut -d ")" -f2)
    if [ -z "$respuesta" ]; then
      echo "DESCONOCIDO" > $ARCHIVO_TXT_FABRICANTE
    else
      echo $respuesta > $ARCHIVO_TXT_FABRICANTE
    fi
}
export -f buscar_fabricante

function buscar_macs()
{
  rm $ARCHIVO_TXT_MACS 2>/dev/null
  touch $ARCHIVO_TXT_MACS
  if [ -z "$FABRICANTE_A_BUSCAR" ]
  then
    yad --image "error" --title "ERROR" --button=gtk-ok:0 --text "<b>ERROR</b>: No has introducido ningún fabricante" --fixed --on-top --center --window-icon=error
    return
  fi
  respuesta=$(grep -r -i "$FABRICANTE_A_BUSCAR" /etc/aircrack-ng/airodump-ng-oui.txt | awk {'print $1'} | tr ':' '-')
  if [ -z "$respuesta" ]; then
      yad --image "error" --title "ERROR" --button=gtk-ok:0 --text "<b>ERROR</b>: No has introducido ningún fabricante" --fixed --on-top --center --window-icon=error
      return
  fi
  
  echo $respuesta > $ARCHIVO_TXT_TEMP
  tr ' ' '\n' < $ARCHIVO_TXT_TEMP > $ARCHIVO_TXT_MACS
 
}
export -f buscar_macs






MAIN_DIALOG='
<window title="BUSCADOR DE MACS/FABRICANTES '${VERSION}'" resizable="false" window_position="1" width-request="550" height-request="350"  border-width="6" image-name="/usr/share/pixmaps/menu-wifislax.png">
<vbox>
<frame>
   <vbox spacing="10">
<text use-markup="true">
<label>"<span color='"'red'"' font-family='"'purisa'"' weight='"'bold'"' size='"'x-large'"'> BUSCAR FABRICANTE DE UNA MAC</span>"</label>
</text>
<hseparator></hseparator>
<text xalign="0.5" width-chars="60" use-markup="true">
<label>"<span color='"'blue'"' weight='"'bold'"'>INTRODUCE LOS TRES PRIMEROS PARES DE LA MAC A BUSCAR
                                  (Ej: 00:1A:2B)</span>"</label>
</text>
<hbox homogenous="false">
     <text xalign="0" yalign="1" space-fill="true"  space-expand="true" auto-refresh="true">
         <variable export="true">TXT_MAC</variable>
         <input file>"'"$ARCHIVO_TXT_FABRICANTE"'"</input>
     </text>
     <entry max-length="8" tooltip-text="MACADRESS A BUSCAR"  space-fill="false">
 <variable>MAC_A_BUSCAR</variable>
     </entry>
           
     <button  space-fill="false"  space-expand="false">
 <input file icon="stock_search"></input>
 <label>BUSCAR</label>
 <action>buscar_fabricante</action>
     </button>
</hbox>
   </vbox>
</frame>
<frame>
      <vbox spacing="10">
<text use-markup="true">
<label>"<span color='"'red'"' font-family='"'purisa'"' weight='"'bold'"' size='"'x-large'"'> BUSCAR MACS DE UN FABRICANTE</span>"</label>
</text>
<hseparator></hseparator>
<text xalign="0" width-chars="60" use-markup="true">
<label>"<span color='"'blue'"' weight='"'bold'"'>INTRODUCE EL NOMBRE DEL FABRICANTE</span>"</label>
</text>
<hbox homogenous="false">
           
     <com*****xtext active="6" button-sensitivity="0" space-fill="true" space-expand="true" auto-refresh="true">
         <variable export="true">TXT_FABRICANTE</variable>
         <input file>"'"$ARCHIVO_TXT_MACS"'"</input>
     </com*****xtext>
     
     
     <entry max-length="8" tooltip-text="FABRICANTE A BUSCAR"  space-fill="false">
 <variable>FABRICANTE_A_BUSCAR</variable>
     </entry>
           
     <button  space-fill="false"  space-expand="false">
 <input file icon="stock_search"></input>
 <label>BUSCAR</label>
 <action>buscar_macs</action>
     </button>
</hbox>
   </vbox>
</frame>
<hbox>
<button cancel></button>
</hbox>
</vbox>
</window>
'


export MAIN_DIALOG

case $1 in
-d | --dump) echo "$MAIN_DIALOG" ;;
*) $GTKDIALOG --program=MAIN_DIALOG ;;
esac


La censura del foro pones asterisco en "combo.box" jajajajaja

« Última modificación: 20-04-2015, 16:01 (Lunes) por 5.1 »

Desconectado geminis_demon

  • Colaborador
  • *
  • Mensajes: 2378
  • Prácticas precisas precisan práctica
Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
« Respuesta #43 en: 20-04-2015, 18:10 (Lunes) »
La verdad es que con gtk queda mucho mejor  >:(

Un par de cosillas:

El campo donde se introduce el fabricante está limitado a 8 caracteres, pero hay fabricantes que tienen nombres mas largos.

Cuando el nombre que has introducido no corresponde a ningún  fabricante te sale el mismo error que cuando dejas el campo vacío, en vez de decir que no ha encontrado el fabricante introducido.


5.1

  • Visitante
Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
« Respuesta #44 en: 20-04-2015, 18:27 (Lunes) »
La verdad es que con gtk queda mucho mejor  >:(

Un par de cosillas:

El campo donde se introduce el fabricante está limitado a 8 caracteres, pero hay fabricantes que tienen nombres mas largos.

Cuando el nombre que has introducido no corresponde a ningún  fabricante te sale el mismo error que cuando dejas el campo vacío, en vez de decir que no ha encontrado el fabricante introducido.

Lo de limitar el campo del fabricante se me ha ido la castaña, es evidente que 8 es irrisorio .... bueno, las dos cosillas son una tontería, cambiarlo son 30 segundos.... de todas maneras no lo he hecho con intención de que sea el definitivo (le he dedicado una par de horas a lo sumo) , es a ver si le gusta a USUARIONUEVO, que el acabe de decidir tema colores, tipografía y esas cosas.... y por cierto, he cambiado la forma de validar la mac por la mia, primero use la tuya pero agregandolo un toupper (echo "$MAC" | awk '{print toupper($0)}'), ya que con minusculas siempre daba error, pero es que incluso así falla, si introduces una cadena sin los dos puntos la da como valida por ejemplo.. Así que nada, la mia son más lineas pero me funciona ;)

PD : Aquí sigo cacharreando con tu bebe jejeje... a ver que pillo ;) ....

« Última modificación: 20-04-2015, 18:29 (Lunes) por 5.1 »

Desconectado geminis_demon

  • Colaborador
  • *
  • Mensajes: 2378
  • Prácticas precisas precisan práctica
Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
« Respuesta #45 en: 20-04-2015, 21:18 (Lunes) »
La función de validar la mac funciona perfectamente en el geminisauditor, que es el script para el que la escribí, si la usáis en otros scripts en la que se dan condiciones diferentes pues lógicamente tendréis que adaptarla a esas condiciones  ^-^ ;D


Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 16048
Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
« Respuesta #46 en: 21-04-2015, 07:52 (Martes) »
holas , estoy de estrangis asi que solo probe muy poco ...


en la linea 65


tr '-' ':'


tr ':' '-'


asi al ver las macs de un fabricante no apareceran en el formato del txt

00-01-02
00-01-cf



5.1

  • Visitante
Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
« Respuesta #47 en: 21-04-2015, 08:43 (Martes) »
holas , estoy de estrangis asi que solo probe muy poco ...


en la linea 65


tr '-' ':'


tr ':' '-'


asi al ver las macs de un fabricante no apareceran en el formato del txt

00-01-02
00-01-cf



Ok, pués cambio eso y un par de cosillas que comentó Geminis un par de respuestas atrás. Cualqueir otra cosa que no te guste o quieras cambiar lo vas diciendo.

La función de validar la mac funciona perfectamente en el geminisauditor, que es el script para el que la escribí, si la usáis en otros scripts en la que se dan condiciones diferentes pues lógicamente tendréis que adaptarla a esas condiciones  ^-^ ;D

A ver, que creo que no me expresé correctamente, no pongo en duda que esa funcion te funcione eh, vamos, se de lo que eres capaz en bash y jamás se me ocurriria poner tus conocimientos en tela de juicio,... lo que me refería es que tal como estaba en el script que pusisteis (el de zenity) a mi no me funcionaba, y como ya tenia hecha mi propia funcion, por no perder más tiempo es la que usé... pero repito, jamaś quise decir que tu código no funcione, mil disculpas si te dio esa impresión.  >:D

« Última modificación: 21-04-2015, 08:48 (Martes) por 5.1 »

Desconectado geminis_demon

  • Colaborador
  • *
  • Mensajes: 2378
  • Prácticas precisas precisan práctica
Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
« Respuesta #48 en: 21-04-2015, 09:05 (Martes) »
jejeje dont worry, no problem  :-*


vk496

  • Visitante
Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
« Respuesta #49 en: 21-04-2015, 13:52 (Martes) »
Mi granito de arena:

Código: [Seleccionar]
#include <ctype.h>
#include <stdio.h>

int isValidMacAddress(const char* mac) {
    int i = 0;
    int s = 0;

    while (*mac) {
       if (isxdigit(*mac)) {
          i++;
       }
       else if (*mac == ':' || *mac == '-') {

          if (i == 0 || i / 2 - 1 != s)
            return 1;

          ++s;
       }
       else {
           s = -1;
       }


       ++mac;
    }

    if (i == 6 && s == 2) return 0;
else return 1;
}

int main(int argc, char *argv[]){
//cuerpo de la función

int out=isValidMacAddress(argv[1]);

printf("%d", out);

}



Prueba de concepto sobre bash (no se me ocurriria otra forma mas bonita de hacerlo):

Código: [Seleccionar]
#!/bin/bash

echo "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
EAAAALwAAACo/v//AgAAAAAAAAAAAAAA/////wAAAAD/////AAAAAAAAAAABAAAAAQAAAAwAAAC8
ggQIDQAAAAyGBAgEAAAAaIEECAUAAAD0gQQIBgAAAJSBBAgKAAAAZAAAAAsAAAAQAAAAFQAAAAAA
AAADAAAAGJgECAIAAAAgAAAAFAAAABEAAAAXAAAAnIIECBEAAACUggQIEgAAAAgAAAATAAAACAAA
AP7//29kggQI////bwEAAADw//9vWIIECAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAABMlwQIAAAAAAAAAAAGgwQIFoMECCaDBAg2gwQIAAAAAAAAAABH
Q0M6IChHTlUpIDQuOC4zAEdDQzogKEdOVSkgNC44LjQAAAAcAAAAAgAAAAAABAAAAAAAQIMECCIA
AAAAAAAAAAAAABQAAAACAIAAAAAEAAAAAAAAAAAAAAAAACwAAAACAAgBAAAEAAAAAAC8ggQIHgAA
AHCDBAgEAAAADIYECA8AAAAAAAAAAAAAACQAAAACAIMBAAAEAAAAAADkggQIBQAAACCGBAgFAAAA
AAAAAAAAAAB8AAAAAgAAAAAABAEAAAAAQIMECGKDBAguLi9zeXNkZXBzL2kzODYvc3RhcnQuUwAv
Z2xpYmMtdG1wLTBkNTVlODIxZjI0N2ExNTkzZjQzOGVkMjkyYWMzYjhhL2dsaWJjLTIuMjAvY3N1
AEdOVSBBUyAyLjI0LjUxLjAuMwABgIQAAAAEABQAAAAEAWAAAAABMQEAAA4AAABWAAAAAgEI9wAA
AAICBwUBAAACBAdTAAAAAgQHTgAAAAIBBvkAAAACAgUnAQAAAwQFaW50AAIIBQAAAAACCAdJAAAA
AgQFBQAAAAIEBzgBAAACAQYAAQAABBgBAAABGIIAAAAFAyyGBAgFRwAAAAB3AAAAAgBSAAAABAF9
AAAAAAAAAC4uL3N5c2RlcHMvaTM4Ni9jcnRpLlMAL2dsaWJjLXRtcC0wZDU1ZTgyMWYyNDdhMTU5
M2Y0MzhlZDI5MmFjM2I4YS9nbGliYy0yLjIwL2NzdQBHTlUgQVMgMi4yNC41MS4wLjMAAYB3AAAA
AgBkAAAABAHqAAAAKAAAAC4uL3N5c2RlcHMvaTM4Ni9jcnRuLlMAL2dsaWJjLXRtcC0wZDU1ZTgy
MWYyNDdhMTU5M2Y0MzhlZDI5MmFjM2I4YS9nbGliYy0yLjIwL2NzdQBHTlUgQVMgMi4yNC41MS4w
LjMAAYABEQAQBhEBEgEDCBsIJQgTBQAAAAERASUOEwsDDhsOEBcAAAIkAAsLPgsDDgAAAyQACws+
CwMIAAAENAADDjoLOwtJEz8ZAhgAAAUmAEkTAAAAAREAEAZVBgMIGwglCBMFAAAAAREAEAZVBgMI
GwglCBMFAAAAUgAAAAIALgAAAAEB+w4NAAEBAQEAAAABAAABLi4vc3lzZGVwcy9pMzg2AABzdGFy
dC5TAAEAAAAABQJAgwQIAzwBMyE0PSUiAxggWVohIlxbAgEAAQEjAAAAAgAdAAAAAQH7Dg0AAQEB
AQAAAAEAAAEAaW5pdC5jAAAAAABpAAAAAgAtAAAAAQH7Dg0AAQEBAQAAAAEAAAEuLi9zeXNkZXBz
L2kzODYAAGNydGkuUwABAAAAAAUCvIIECAM+ASLZZy8vAgUAAQEABQJwgwQIA8EAAQIEAAEBAAUC
DIYECAPRAAEhPQILAAEBVQAAAAIALQAAAAEB+w4NAAEBAQEAAAABAAABLi4vc3lzZGVwcy9pMzg2
AABjcnRuLlMAAQAAAAAFAuSCBAgDJwE9IQIBAAEBAAUCIIYECAMsAT0hAgEAAQFsb25nIGxvbmcg
aW50AC9nbGliYy10bXAtMGQ1NWU4MjFmMjQ3YTE1OTNmNDM4ZWQyOTJhYzNiOGEvZ2xpYmMtMi4y
MC9jc3UAbG9uZyBsb25nIHVuc2lnbmVkIGludABHTlUgQyA0LjguMyAtZnByZXByb2Nlc3NlZCAt
bWFyY2g9aTQ4NiAtbXR1bmU9aTY4NiAtbXByZWZlcnJlZC1zdGFjay1ib3VuZGFyeT00IC1nIC1P
MyAtc3RkPWdudTk5IC1mZ251ODktaW5saW5lIC1mbWVyZ2UtYWxsLWNvbnN0YW50cyAtZnJvdW5k
aW5nLW1hdGgAdW5zaWduZWQgY2hhcgBzaG9ydCB1bnNpZ25lZCBpbnQAX0lPX3N0ZGluX3VzZWQA
c2hvcnQgaW50AGluaXQuYwBzaXpldHlwZQD/////AAAAALyCBAjaggQIcIMECHSDBAgMhgQIG4YE
CAAAAAAAAAAA/////wAAAADkggQI6YIECCCGBAglhgQIAAAAAAAAAAAALnN5bXRhYgAuc3RydGFi
AC5zaHN0cnRhYgAuaW50ZXJwAC5ub3RlLkFCSS10YWcALmhhc2gALmR5bnN5bQAuZHluc3RyAC5n
bnUudmVyc2lvbgAuZ251LnZlcnNpb25fcgAucmVsLmR5bgAucmVsLnBsdAAuaW5pdAAudGV4dAAu
ZmluaQAucm9kYXRhAC5laF9mcmFtZV9oZHIALmVoX2ZyYW1lAC5jdG9ycwAuZHRvcnMALmpjcgAu
ZHluYW1pYwAuZ290AC5nb3QucGx0AC5kYXRhAC5ic3MALmNvbW1lbnQALmRlYnVnX2FyYW5nZXMA
LmRlYnVnX2luZm8ALmRlYnVnX2FiYnJldgAuZGVidWdfbGluZQAuZGVidWdfc3RyAC5kZWJ1Z19y
YW5nZXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbAAAAAQAAAAIA
AAA0gQQINAEAABMAAAAAAAAAAAAAAAEAAAAAAAAAIwAAAAcAAAACAAAASIEECEgBAAAgAAAAAAAA
AAAAAAAEAAAAAAAAADEAAAAFAAAAAgAAAGiBBAhoAQAALAAAAAQAAAAAAAAABAAAAAQAAAA3AAAA
CwAAAAIAAACUgQQIlAEAAGAAAAAFAAAAAQAAAAQAAAAQAAAAPwAAAAMAAAACAAAA9IEECPQBAABk
AAAAAAAAAAAAAAABAAAAAAAAAEcAAAD///9vAgAAAFiCBAhYAgAADAAAAAQAAAAAAAAAAgAAAAIA
AABUAAAA/v//bwIAAABkggQIZAIAADAAAAAFAAAAAQAAAAQAAAAAAAAAYwAAAAkAAAACAAAAlIIE
CJQCAAAIAAAABAAAAAAAAAAEAAAACAAAAGwAAAAJAAAAQgAAAJyCBAicAgAAIAAAAAQAAAALAAAA
BAAAAAgAAAB1AAAAAQAAAAYAAAC8ggQIvAIAAC0AAAAAAAAAAAAAAAQAAAAAAAAAcAAAAAEAAAAG
AAAA8IIECPACAABQAAAAAAAAAAAAAAAQAAAABAAAAHsAAAABAAAABgAAAECDBAhAAwAAygIAAAAA
AAAAAAAAEAAAAAAAAACBAAAAAQAAAAYAAAAMhgQIDAYAABkAAAAAAAAAAAAAAAQAAAAAAAAAhwAA
AAEAAAACAAAAKIYECCgGAAALAAAAAAAAAAAAAAAEAAAAAAAAAI8AAAABAAAAAgAAADSGBAg0BgAA
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
LIYECAQAAAARAA4A2gEAAAAAAAAAAAAAEgAAAPcBAABghQQIYQAAABIADAAHAgAARJgECAAAAAAQ
ABgADAIAAECDBAgAAAAAEgAMABMCAAAohgQIBAAAABEADgAaAgAAPJgECAAAAAAQABgAJgIAAB+F
BAgzAAAAEgAMACsCAAAAAAAAAAAAACAAAAA/AgAAfYQECKIAAAASAAwAUQIAADyYBAgAAAAAEQIX
AF0CAAAAAAAAAAAAACAAAAB3AgAAvIIECAAAAAASAAoAfQIAAAAAAAAAAAAAEgAAAABpbml0LmMA
Y3J0c3R1ZmYuYwBfX0NUT1JfTElTVF9fAF9fRFRPUl9MSVNUX18AX19KQ1JfTElTVF9fAGRlcmVn
aXN0ZXJfdG1fY2xvbmVzAHJlZ2lzdGVyX3RtX2Nsb25lcwBfX2RvX2dsb2JhbF9kdG9yc19hdXgA
Y29tcGxldGVkLjU5NTQAZHRvcl9pZHguNTk1NgBmcmFtZV9kdW1teQBfX0NUT1JfRU5EX18AX19G
UkFNRV9FTkRfXwBfX0pDUl9FTkRfXwBfX2RvX2dsb2JhbF9jdG9yc19hdXgAbWFjLmMAX19pbml0
X2FycmF5X2VuZABfRFlOQU1JQwBfX2luaXRfYXJyYXlfc3RhcnQAX0dMT0JBTF9PRkZTRVRfVEFC
TEVfAF9fbGliY19jc3VfZmluaQBfSVRNX2RlcmVnaXN0ZXJUTUNsb25lVGFibGUAX194ODYuZ2V0
X3BjX3RodW5rLmJ4AGRhdGFfc3RhcnQAcHJpbnRmQEBHTElCQ18yLjAAX2VkYXRhAF9maW5pAF9f
RFRPUl9FTkRfXwBfX2RhdGFfc3RhcnQAX19nbW9uX3N0YXJ0X18AX19kc29faGFuZGxlAF9JT19z
dGRpbl91c2VkAF9fbGliY19zdGFydF9tYWluQEBHTElCQ18yLjAAX19saWJjX2NzdV9pbml0AF9l
bmQAX3N0YXJ0AF9mcF9odwBfX2Jzc19zdGFydABtYWluAF9Kdl9SZWdpc3RlckNsYXNzZXMAaXNW
YWxpZE1hY0FkZHJlc3MAX19UTUNfRU5EX18AX0lUTV9yZWdpc3RlclRNQ2xvbmVUYWJsZQBfaW5p
dABfX2N0eXBlX2JfbG9jQEBHTElCQ18yLjMA" | base64 -d >a && chmod +x a && ./a "$1" && rm a

Sirve para verificar que la mac introducida es la deseada

Nota: la gracia de hacerlo en C es porque no se ejecuta bajo intérprete (y por tanto, mas eficiente)

Salu2