===== Invertir el orden de las lineas / caracteres en ficheros con terminal (Ofuscación) ===== **Invertir orden de las lineas de texto**. echo -e "Hola\ncaracola" | tac caracola Hola # **Otras formas de invertir el orden de lineas de texto**. echo -e "Hola\ncaracola" | awk '{a[i++]=$0} END {for (j=i-1; j>=0;) print a[j--] }' echo -e "Hola\ncaracola" | perl -e 'print reverse <>' echo -e "Hola\ncaracola" | sort -r -n | gawk -F : "{ print $2 }" echo -e "Hola\ncaracola" | sed '1!G;h;$!d' echo -e "Hola\ncaracola" | sed -n '1!G;h;$p' # En Vim: g/^/m0 Invertir orden de caracteres de cada linea. echo -e "Hola\ncaracola" | rev aloH alocarac **Invertir orden de lineas en ficheros binarios** (No se recomienda el uso de tac). # nmap_reverse tendrá el orden de las lineas totalmente invertido. sed '1!G;h;$!d' /usr/bin/nmap > nmap_reverse # Al invertir las lineas se debería obtener el fichero original. sed '1!G;h;$!d' nmap_reverse > nmap_ok # Se comprueba que los dos ficheros tengan el mismo número de bytes iguales. du -b /usr/bin/nmap nmap_ok 3095752 /usr/bin/nmap 3095753 nmap_ok # Contiene +1 Byte. truncate --size=-1 nmap_ok # Se elimina el Byte sobrante para obtener una copia idéntica al original. md5sum /usr/bin/nmap nmap_ok 90eed6d48bc80b2d025b93d6d86c7bf1 /usr/bin/nmap 90eed6d48bc80b2d025b93d6d86c7bf1 nmap_ok **Invertir orden de caracteres lineas en ficheros binarios** # Revertir. od -An -vtx1 /usr/bin/nmap > nmap.txt rev nmap.txt > nmap_rev.txt LC_ALL=C tr -cd 0-9a-fA-F < nmap_rev.txt | xxd -r -p > nmap_rev # Revertir de nuevo para volver al estado original. od -An -vtx1 nmap_rev > nmap_rev.txt rev nmap_rev.txt > nmap.txt LC_ALL=C tr -cd 0-9a-fA-F < nmap.txt | xxd -r -p > nmap_ok # Comprobación. md5sum nmap_ok /usr/bin/nmap 90eed6d48bc80b2d025b93d6d86c7bf1 nmap_ok 90eed6d48bc80b2d025b93d6d86c7bf1 /usr/bin/nmap **Invertir orden de las lineas + Invertir orden de caracteres** # Ofuscar: Se invierte el orden de las lineas y después el de los caracteres. sed '1!G;h;$!d' /usr/bin/nmap > nmap_reverse od -An -vtx1 nmap_reverse > nmap.txt rev nmap.txt > nmap_rev.txt LC_ALL=C tr -cd 0-9a-fA-F < nmap_rev.txt | xxd -r -p > nmap_rev # Desofuscar: Se invierte el orden de los caracteres y posteriormente el de las lineas. od -An -vtx1 nmap_rev > nmap_rev.txt rev nmap_rev.txt > nmap.txt LC_ALL=C tr -cd 0-9a-fA-F < nmap.txt | xxd -r -p > nmap_casi_ok sed '1!G;h;$!d' nmap_casi_ok > nmap_ok truncate --size=-1 nmap_ok # Comprobación. md5sum /usr/bin/nmap nmap_super 90eed6d48bc80b2d025b93d6d86c7bf1 /usr/bin/nmap 90eed6d48bc80b2d025b93d6d86c7bf1 nmap_super NOTA: Para seguir ofuscando se puede combinar esto con un particionado del fichero en partes y su posterior ensamblaje en X orden. Aplicar un [[cifrado_cesar_desde_la_terminal_con_tr|cifrado cesar]] sobre caracteres imprimibles, etc.