又一個 Lua Bot |
|
%
與其他機器人不同的是,它可以執行多種版本的 Lua:從 3.2 到 5.3,甚至是 LuaJIT。
指令格式如下:%<版本> <程式碼>
<版本>
為例,是 5.3
或 luajit
。您可以留空,則會使用預設值 (5.3)。
除了 Lua 之外,還有其他幾個沙盒,例如 py
、bc
,甚至 c
。請參閱 %list
以取得完整清單。
若要執行大量的程式碼,可以將其貼在 [tcp.st] 或 [qp.mniip.com] 並執行 dofile URL,例如 % dofile("http://tcp.st/foo")
。
如果您將 %
符號加倍,即 %%<版本> <程式碼>
,輸出內容將重新導向到 yalb 自己的 pastebin 環,從而可以在不寄送垃圾訊息到頻道的情況下,也能夠有長篇的輸出。
另一個指令是 %?<版本> <標題>
,它會在手冊中尋找標題 (例如 math.sin
、lua_pcall
或 6.4.1
)。
最後,還有 3 個特殊指令
%help
會列印有點有幫助的訊息。%list
會列印沙盒清單。%cleanup
會將檔案系統還原至原始狀態。
有一個名為 pp
的函數會執行漂亮列印。它會將零個或多個值作為引數,並傳回一個字串。它不會執行表格的深入檢查,但會相應顯示相同的表格/函數/使用者資料。
沙盒會漂亮列印所有從程式碼傳回的內容。
執行時間上限為 3 秒,記憶體限制約為 500 MiB。
您可以讀取位於某些特定位置的檔案,例如 /dev/
或 /usr/include/
。還有一個(非 chrooted)類 Unix 環境可透過 os.execute 使用。您可以在當前目錄中操作檔案系統,但您可以在其中放置的資料量有限。
是的,它會接收 PM。
來源:後端是個 ptrace 亂七八糟的內容,可於 [這裡] 取得(先前版本使用 [這個])。前端是一個 100 行的 Lua 腳本,花了 15 分鐘湊合起來的。
作者: mniip