Pase esto como el primer argumento:
C=("").char;_G[C(112,114,105,110,116)](C(72,101,108,108,111,44,32,87,111,114,108,100,33))
Suponiendo que el código original está en un archivo tehtmi.lua
, ejecute (en bash o un shell similar):
lua tehtmi.lua 'C=("").char;_G[C(112,114,105,110,116)](C(72,101,108,108,111,44,32,87,111,114,108,100,33))'
También funciona en Lua 5.3, que es lo que usa TIO, entonces, ¿por qué no lo prueba en línea ? No he probado en una implementación que utiliza el núcleo "PUC-Rio's Lua 5.1" (porque realmente no puedo encontrar ninguna información), pero mi solución probablemente también funcione allí.
¿Cómo?
Ejecuta el primer argumento como código, pero solo si contiene menos de 5 caracteres en minúscula.
El truco es correr print("Hello, World!")
. Otra forma de ejecutar esto es mediante el uso _G["print"]("Hello, World!")
, que solo utiliza cadenas.
Pero no podemos usar la cadena directamente debido a la restricción de recuento en minúsculas, sin embargo, puede ejecutar ("").char
para obtener la función string.char
, que puede convertir de una serie de bytes a una cadena. Lo asigné a una variable en mayúscula (para que no lleguemos al límite) para que podamos usarlo para construir tanto print
las Hello, World!
cadenas como las que se pueden usar como se indica arriba.