Códigos

Esta página contendrá partes de códigos, o códigos enteros programados por nosotros. El objetivo en principio es el de UTILIDAD (por si a alguien le puedan servir los pequeños scripts que nos creamos para uso personal).

También se colgarán Scripts incompletos, y con bugs, por los cuales serán bienvenidos correcciones y comentarios.


Un posible wlandecryter

Por mucha gente es conocido el Wlandecryter, que proporciona, una vez ejecutado, un diccionario para desencriptar las claves por defecto de los routers de Imagenio de Timofónica!.

Pues bien, como hace tiempo, no encontraba este pequeño programilla por ninguna parte, me creé uno bastante rudimentario (hecho en Bash Script), que necesita más tiempo para crear el diccionario y no detecta automáticamente el la marca del Router por el BSSID (por lo que no comprueba si coincide con algún bessid ya anteriormente utilizado). Al no comprobar de qué marca se trata, o sabes tu mismo cuál es, o le das a crear el diccionario con las tres posibles opciones (con lo que tardará más aun si cabe).

Pues nada, el código en cuestión es este:

#!/bin/sh

#Generador de diccionarios

# "Z","X","C"+"primeros 6 caracteres del BSSID"+"4núm de 0000 hasta FFFF en hexadecimal"+"XX del WLAN_XX"


##fun operar (crea, mediante el bucle while la secuencia hexadecimal)
function fun_operar {
CONTADOR=0
while [ $CONTADOR -le 65535 ]; do
	echo $letra$mac$(printf "%04X\n" $CONTADOR)$xx >> $salida	
	let CONTADOR=CONTADOR+1
	done
}

################################
##      AQUÍ EMPIEZA          ##
################################

#Borrar pantalla

clear

## Comprobar lanzamiento:

if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ]; then
	echo '¡ATENCIÓN, MAL INICIADO!, ejemplos:'
	echo 'uso: '$0' <6 primeros caracteres del BSSID>  '
	exit
fi

#Cargar los parametros:

mac=$1
xx=$2
salida=$3

## Borrar el contenido de posible fichero anterior:

echo ' ' > $salida

## Bifurcar:
echo '¿Que router quieres utilizar?:'
OPCIONES="ZyXEL Xavi Comtred Todos"
select opt in $OPCIONES; do
	if [ "$opt" = "ZyXEL" ]; then
		letra=Z
      		fun_operar
      		exit
	elif [ "$opt" = "Xavi" ]; then
		letra=X
     		fun_operar
		exit
	elif [ "$opt" = "Comtred" ]; then
		letra=C
		fun_operar
		exit
	elif [ "$opt" = "Todos" ]; then
		letra=Z
		fun_operar
		letra=X
		fun_operar
		letra=C
		fun_operar
		exit
 	else
	clear
 	echo 'Opción errónea'
	fi
done

Crea iconos para idesk de forma guiada

Este es un programilla también en Bash que le creé a mi cuñado por si quería añadir iconos a su escritorio (en un portátil antiguo que le preparé con unas versión de Debian con una escritorio poco pesado como Fluxbox. El programa simplemente, puede crear, editar y borrar los iconos del programa idesk y al final del flujo comprueba si tienes lanzado idesk. Tiene algún bug que otro, pero cumple su función principal (ayudar a alguien que no tiene mucha idea a crearse unos iconos). Si alguien lo quiere ya sabe, pueden mejorarlo muchísimo…

#!/bin/bash

################################################################
#Crear iconos de manera facil para idesk - aabilio@gmail.com - #
################################################################

#Función para presentar el programa:
function fun_presentacion {
echo ''
echo ''
echo '		##################################'
echo '		#      Crea y edita iconos       #' 
echo '		#        de manera guiada        #'
echo '		#           para idesk           #'
echo '		##################################'
echo ''
echo ''
}

#Funcion para ver si existe proceso de idesk como dato informativo:
function fun_comprobar_proceso {
pidof idesk > /dev/null; num=$(echo $?)
if [ "$num" = 1 ]; then
	echo 'ATENCIÓN, idesk no se está ejecutando, puede que no esté instalado'
	echo 'Si estás seguro que está instaldo'
	echo '¿Quieres ejecutarlo ahora? s/n'
	read opci
	if [ "$opci" = "s" ]; then
		echo 'Ejecutando'
		idesk &
		fun_embellecedor
	else
		echo 'OK'
	fi
fi
}

#Función de embellecedor:
function fun_embellecedor {
echo -n '*'
sleep 0.6
echo -n '*'
sleep 0.6
echo -n '*'
sleep 0.6
echo -n '*'
sleep 0.6
echo -n '*'
sleep 0.6
echo '*'

}

#Funcion para comprobar el lanzamiento: (INCLUIDO AL FINAL EN "FUNCTION MAIN")
#function fun_comprobar {
#echo '¡ATENCIÓN, MAL INICIADO!, ejemplos:'
#if [ -z "$1" ]; then
#	echo 'uso: '$0' nuevo: Si quiere nuevo icono'
#	echo 'uso: '$0' modificar [ruta_al_icono]: Si quiere modificar icono'
#	exit
#fi
#}

#Función para crear iconos nuevos:
function fun_crear {
if [ -n "$temp_icono_elegido" ]; then
	nombre_icono=$temp_icono_elegido
	unset $temp_icono_elegido
	echo 'Creando Icono con nombre: '$nombre_icono'.lnk'
	echo ''
fi
if [ -z "$nombre_icono" ]; then
	echo 'Introduce el nombre del archivo del icono: '
	read nombre_icono
fi
echo 'Introduce el nombre del icono: '
read programa
echo 'Introduce el comando a ejecutar: '
read comando
echo 'Escoge una imagen para el icono: '
sleep 1.5
icono=$(cd /usr/share/pixmaps && zenity --title="Selecciona una imagen para el icono" --file-selection)
echo $icono
echo 'Introduce la coordenada X: '
read x
echo 'Introduce la coordenada Y: '
read y
echo 'Creando Icono'
fun_embellecedor
touch $HOME/.idesktop/$nombre_icono.lnk
echo 'table Icon #No tocar!'>> $HOME/.idesktop/$nombre_icono.lnk
echo 'Caption: '$programa' #Nombre del icono' >> $HOME/.idesktop/$nombre_icono.lnk
echo 'Command: '$comando' #Comando para iniciar el programa!' >> $HOME/.idesktop/$nombre_icono.lnk
echo 'Icon: '$icono' #Ruta de la imagen del icono' >> $HOME/.idesktop/$nombre_icono.lnk
echo 'X: '$x' #Tamaño X del icono' >> $HOME/.idesktop/$nombre_icono.lnk
echo 'Y: '$y' #Tamaño Y del icono' >> $HOME/.idesktop/$nombre_icono.lnk
echo 'end #No tocar!' >> $HOME/.idesktop/$nombre_icono.lnk
echo '#Creado con easy-idesk' >> $HOME/.idesktop/$nombre_icono.lnk
echo ''
echo 'FELICIDADES! Has acabado de crear tu icono'
echo 'Creando menú (Si no aparece pulsar ENTER)'
}

#Función para editar iconos ya creados:
function fun_editar {
#if [ -z "$2" ]; then  (INCLUIDO AL FINAL EN "FUNCTION MAIN")
#	echo '¿Qué icono quieres editar?'
#	find $HOME/.idesktop/ -name '*.lnk' | zenity --progress --pulsate
#	cd $HOME/.idesktop/ && ls *.lnk
#	echo 'escribe uno o pulsa "g" para hacerlo graficamente'
#	read icono_elegido
#	if [ "$icono_elegido" = "g" ]; then
#		icono_elegido=$(cd $HOME/.idesktop/ && zenity --title="Selecciona el icono a editar" --file-selection)
#	fihttp://guide.opendns.com/?url=variables+locales+en+bash&client=ff20
#else
#	icono_elegido=$2
#fi # ya tengo almacenada en "icono_elegido" la ruta del fichero que quiero editar, ahora comporbar si existe:

	#AQUI YA LLEGA con el "icono_elegido" escogido en la "funcion main" del programa
clear
echo 'Has elegido editar: '$icono_elegido
echo ''
echo "Modifiquemos entonces las características del icono"
echo 'Cargando editor'
sleep 1.5
fun_embellecedor
editor $icono_elegido
echo 'CARACTERÍSTICAS CAMBIADAS!'
echo ''
echo 'Quieres cambiar el nombre al archivo del icono?'
OPTIONS="si no"
select opc in $OPTIONS; do
	if [ "$opc" == "si" ]; then
		echo 'Introduce el nuevo nombre (sin extensión): '
		read nuevo_nombre
		mv $icono_elegido $HOME/.idesktop/$nuevo_nombre.lnk
		break
	elif [ "$opc" = "no" ]; then
		clear
		fun_presentacion
		echo 'OK'
		echo ''
		break
	else
		echo 'Opción errónea, elige otra'
		echo 'ENTER para volver a mostrar menú'
	fi
done

echo 'FELICIDADES! Has acabado de editar tu icono'
echo ''
echo 'Creando menú (Si no aparece pulsar ENTER)'
}

#Función para volver a empezar:
function fun_empezar {
echo 'Eliga entre estas opciones: '
OPCIONES="crear editar borrar salir"
select opt in $OPCIONES; do
	if [ "$opt" == "crear" ]; then
		clear
		fun_presentacion
    		fun_crear
		fun_embellecedor
	elif [ "$opt" = "editar" ]; then
		clear
		fun_presentacion
		if [ -z "$2" ]; then
			echo 'Cargando Iconos ya creados'
			echo ''
			#find $HOME/.idesktop/ -name '*.lnk' | zenity --progress --pulsate ##No queda bien
			fun_embellecedor
			echo ''
			cd $HOME/.idesktop/ && ls *.lnk
			echo ''
			echo '¿Qué icono quieres editar?'
			echo 'Escribe uno o pulsa "g" para hacerlo graficamente'
			read icono_elegido
			if [ "$icono_elegido" = "g" ]; then
				icono_elegido=$(cd $HOME/.idesktop/ && zenity --title="Selecciona el icono a editar" --file-selection)
			else
				icono_elegido=$HOME/.idesktop/$icono_elegido
			fi
		else
			icono_elegido=$2
		fi
		#un if para comprobar si existe y si no eviarlo a fun_crear en vez de a fun_editar
		if [ -f "$icono_elegido" ]; then
			fun_editar
		else
			echo 'El icono '\"$(echo $icono_elegido | cut -d/ -f5)\"' no exite, ¿desea crearlo? s/n'
			read opc_temp_icono_elegido
			if [ "$opc_temp_icono_elegido" = "s" ]; then #Implementar bucle para salvar el error!!!
				temp_icono_elegido=$(echo $icono_elegido | cut -d/ -f5 | cut -d. -f1)
				fun_crear
			else
				echo 'OK'
			fi
		fi
		fun_embellecedor
	elif [ "$opt" = "salir" ]; then
		clear
		fun_presentacion
		fun_comprobar_proceso
		echo ''
		echo ''
		echo ''
		echo ''
		echo 'Saliendo'
		fun_embellecedor
		clear
		exit
	elif [ "$opt" = "borrar" ]; then
		fun_borrar
		fun_embellecedor
		fun_empezar
	else
		clear
		fun_presentacion
		echo 'Opción errónea, elige otra'
		echo 'ENTER para volver a mostrar menú'
	fi
done
}

function fun_borrar {
echo 'Cargando los Iconos presentes'
echo ''
#find $HOME/.idesktop/ -name '*.lnk' | zenity --progress --pulsate ##No queda bien
fun_embellecedor
echo ''
cd $HOME/.idesktop/ && ls *.lnk
echo ''
echo '¿Qué icono quieres borrar?'
echo 'Escribe uno o pulsa "g" para hacerlo graficamente'
read icono_borrar
if [ "$icono_borrar" = "g" ]; then
	icono_borrar=$(cd $HOME/.idesktop/ && zenity --title="Selecciona el icono para borrar" --file-selection)
else
	icono_borrar=$HOME/.idesktop/$icono_borrar
fi
echo ''
echo 'Borrando icono: '$icono_borrar
rm $icono_borrar
fun_embellecedor
echo ''
echo 'ICONO BORRADO SATISFACTORIAMENTE'
echo ''
}



############################################################################
###########               AQUÍ EMPIEZA EL PROGRAMA             #############
############################################################################

#Borrar pantalla:
clear

#Presentar:
fun_presentacion

#Comprobar el Lanzamiento:
if [ -z "$1" ]; then
	echo '¡ATENCIÓN, MAL INICIADO!, ejemplos:'
	echo 'uso: '$0' nuevo: Si quiere nuevo icono'
	echo 'uso: '$0' modificar [/ruta/al/icono.lnk]: Si quiere modificar icono'
	echo 'uso: '$0' borrar'
	exit
fi

#Comprobar si existe la carpeta .idesktop:


#Bifurcar entre crear o editar:

if [ "$1" = "crear" ]; then
	fun_crear
	fun_embellecedor
	fun_empezar
elif [ "$1" = "editar" ]; then
	if [ -z "$2" ]; then
		echo '¿Cargando Iconos ya creados?'
		echo ''
		#find $HOME/.idesktop/ -name '*.lnk' | zenity --progress --pulsate ##No queda bien
		fun_embellecedor
		echo ''
		cd $HOME/.idesktop/ && ls *.lnk
		echo ''
		echo '¿Qué icono quieres editar?'
		echo 'Escribe uno o pulsa "g" para hacerlo graficamente'
		read icono_elegido
			if [ "$icono_elegido" = "g" ]; then
				icono_elegido=$(cd $HOME/.idesktop/ && zenity --title="Selecciona el icono a editar" --file-selection)
			else
				icono_elegido=$HOME/.idesktop/$icono_elegido
			fi
	else
		icono_elegido=$2
	fi
	#hacer un if para comprobar si existe y si no eviarlo a fun_crear en vez de a fun_editar
	if [ -f "$icono_elegido" ]; then
		fun_editar
	else
		echo 'El icono '\"$(echo $icono_elegido | cut -d/ -f5)\"' no existe, ¿desea crearlo? s/n'
		read opc_temp_icono_elegido
		if [ "$opc_temp_icono_elegido" = "s" ]; then #Implementar bucle para q pregunte otra vez en caso d error
			temp_icono_elegido=$(echo $icono_elegido | cut -d/ -f5 | cut -d. -f1)
			fun_crear
		else
			echo 'OK'
		fi
	fi
	
	fun_embellecedor
	fun_empezar
elif [ "$1" = "borrar" ]; then
	fun_borrar
	fun_enbellecedor
	fun_empezar
else 
	echo 'No has introducido una opción correcta'
	echo 'Creando menú'
	fun_embellecedor
	fun_empezar
fi

Un pensamiento en “Códigos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>