Etiquetascripting

[Tip] AND (&&) y OR (||) en bash

Parece algo muy simple, pero estoy seguro que muchos no lo saben: Usar los operadores lógicos && y || al momento de crear scripts o ejecutar comandos en bash.
Podemos condicionar la ejecución de un comando en función de otro; por ejemplo, si falla el primer comando, entonces no ejecuto el segundo, o bien, si no se ejecuta el primero entonces ejecuto el segundo, dependiendo de lo que necesitemos.
Ejemplos:

Ejecutar el comando2 solo si se ejecuta el comando1:
$ comando1 && comando2

Ejecutar el comando2 solo si no se ejecuta el primero
$ comando1 || comando2

Sería así:
[zerial@balcebu ~]$ comando1 || echo "Como comando1 no existe, entonces ejecuto el echo"
bash: comando1: command not found
Como comando1 no existe, entonces ejecuto el echo
[zerial@balcebu ~]$ echo "El primer echo se ejecuta, pero el segnudo no" || echo "Como comando1 no existe, entonces ejecuto el echo"
El primer echo se ejecuta, pero el segnudo no
[zerial@balcebu ~]$

Es muy útil cuando queremos programar scripts para ejecutar tareas condicionadas a otros comandos.

Esteganografía: Ofuscación de archivos (parte 3)

Luego de haber presentado la primera y segunda parte de este post, les presentaré un script que automatiza el proceso de “esconder” y “encontrar” el archivo y además mostrar como podemos solucionar el problema de los “bytes” para poder separar el archivo original. Es un simple script en bash, que usa los mismos comandos y técnicas mostradas en los post anteriores, con comandos basicos como cat, split, etc. Para “marcar” la división entre el archivo oculto dentro del archivo original lo haremos de una forma bien simple.

Marcar la división entre los archivos

Para saber exactamente el byte donde debemos cortar con split el archivo para poder separarlo, vamos a agregar, al final de nuestro archivo ofuscado, una linea en texto plano con un numero X = bytes. Puede sonar absurdo por lo simple que es, pero es posible.

Seguir leyendo

Esteganografía: Ofuscación de archivos (parte 2)

Luego de haber enseñado como ofuscar un archivo dentro de otro, llegó el momento de saber como “separarlos”. En la primera parte, hubo comentarios de quienes tenian problemas porque se corrompía el archivo y no todas las versiones de unrar o unzip lo podían descomprimir, ya que obviamente, el archivo tiene muchos bits y bytes extras que no corresponden al zip, al rar o al archivo que escondimos. Una vez separado el archivo que hemos escondido, evitaremos todos estos problemas y tendremos nuestro archivo íntegro.

Para separar el archivo vamos a usar el comando split, que nos permite “dividir” o “cortar” un archivo por líneas, bytes, etc. En este caso, separaremos por bytes el archivo.
La sintaxis de split para separar un archivo es tan simple como:

$ split --bytes=XXX archivo
o tambien
$ split -b XXX archivo

De esta forma, el split separará el archivo cada XXX bytes, creando archivos de la forma xab, xac, xad, … xaN.
Ejemplo:
[zerial@balcebu ejemplo_split]$ du -sh archivo.jpg
48K archivo.jpg
[zerial@balcebu ejemplo_split]$ split -b 10000 archivo.jpg
[zerial@balcebu ejemplo_split]$ ls
archivo.jpg xaa xab xac xad xae
[zerial@balcebu ejemplo_split]$ du -csh *
48K archivo.jpg
12K xaa
12K xab
12K xac
12K xad
8.0K xae
104K total
[zerial@balcebu ejemplo_split]$

Para poder separar el archivo ofuscado, vamos a necesitar saber de antemano el tamaño del archivo original, para poder separarlo por esa cantidad de bytes.

Seguir leyendo