Formas alternativas para caracteres especiales en el terminal

1

Estaba resolviendo un problema en un popular sitio web de piratería para la diversión, cuando se me ocurrió la siguiente idea:

¿Es posible representar, por ejemplo, una '/' (solo la barra) en la terminal (linux) de otra manera? Por ejemplo, hexadecimal:

ejemplo:

cd /etc/

como

cd %2F etc %2F

¿Esto es de alguna manera posible? Aunque en este ejemplo estoy usando un carácter especial (%) nuevamente.

    
pregunta OcK 03.09.2018 - 00:59
fuente

1 respuesta

2

Sí, esto es posible. En la mayoría de las conchas, hay muchas maneras de hacer esto. Cualquier forma en que pueda codificar y decodificar algo en una subshell en ASCII funcionará. Algunos ejemplos para bash:

cd $(printf '\x2fetc')
cd $(base64 -d <<< 'L2V0Ywo=')
cd $(awk 'BEGIN{printf("%cetc",47);}')
cd $(cut -b1 <<< $HOME)etc
eval $(base64 -d <<< 'Y2QgL2V0Ywo=')

Todo lo que se encuentra en la subshell se evalúa primero, por lo que todos se convierten en:

cd /etc

Hay muchas otras formas de hacer esto, muchas más ofuscadas que cualquier otra cosa que he puesto aquí. Pero si todo lo que quiere hacer es cambiar directorios sin usar un / , cualquiera de estos debería ser suficiente. Tenga en cuenta que algunos de estos utilizan bash-isms y no son perfectamente compatibles con POSIX.

    
respondido por el forest 03.09.2018 - 01:58
fuente

Lea otras preguntas en las etiquetas