Передайте це як перший аргумент:
C=("").char;_G[C(112,114,105,110,116)](C(72,101,108,108,111,44,32,87,111,114,108,100,33))
Припустимо, що початковий код знаходиться у файлі tehtmi.lua
, запустіть (у bash чи подібній оболонці):
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))'
Він також працює на Lua 5.3, для чого використовується TIO, тож чому б не спробувати його в Інтернеті ? Я не пройшов тестування на застосуванні, яке використовує ядро "LUCA 5.1" PUC-Rio (тому що я не можу реально знайти будь-яку інформацію), але моє рішення, ймовірно, також працює там.
Як?
Він запускає перший аргумент у вигляді коду, але лише якщо він містить менше 5 малих символів.
Хитрість - бігти print("Hello, World!")
. Інший спосіб, яким це можна запустити, - це використання _G["print"]("Hello, World!")
, яке використовує лише рядки.
Але ми не можемо використовувати рядок безпосередньо через обмеження в малому регістрі, проте ви можете запустити ("").char
функцію string.char
, яка може перетворити з ряду байтів у рядок. Я призначив її для великої великої величини (щоб ми не досягли межі), щоб ми могли використовувати її для побудови print
і Hello, World!
рядків, і рядків, які можна використовувати як вище.