Lewati ini sebagai argumen pertama:
C=("").char;_G[C(112,114,105,110,116)](C(72,101,108,108,111,44,32,87,111,114,108,100,33))
Dengan asumsi kode asli ada dalam file tehtmi.lua
, jalankan (dalam bash atau shell serupa):
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))'
Ini juga bekerja pada Lua 5.3, yang digunakan TIO, jadi mengapa Anda tidak mencobanya secara online ? Saya belum menguji implementasi yang menggunakan inti "PUC-Rio's Lua 5.1" (karena saya tidak dapat menemukan informasi), tetapi solusi saya mungkin juga bekerja di sana.
Bagaimana?
Ini menjalankan argumen pertama sebagai kode, tetapi hanya jika mengandung kurang dari 5 karakter huruf kecil.
Triknya adalah berlari print("Hello, World!")
. Cara lain yang bisa dijalankan adalah menggunakan _G["print"]("Hello, World!")
, yang hanya menggunakan string.
Tetapi kita tidak dapat menggunakan string secara langsung karena pembatasan jumlah huruf kecil, namun, Anda dapat menjalankan ("").char
untuk mendapatkan fungsi string.char
, yang dapat mengkonversi dari serangkaian byte ke string. Saya menugaskannya ke variabel huruf besar (jadi kami tidak mencapai batas) sehingga kami dapat menggunakannya untuk membangun kedua print
dan Hello, World!
string yang dapat digunakan seperti di atas.