又一個 Lua Bot

lua-users home
wiki

Yalb 是(又一個)在沙盒中執行 Lua 程式碼的機器人,居住在 #lua,它的前置字元是 %

與其他機器人不同的是,它可以執行多種版本的 Lua:從 3.2 到 5.3,甚至是 LuaJIT。

介面

指令格式如下:%<版本> <程式碼>

<版本> 為例,是 5.3luajit。您可以留空,則會使用預設值 (5.3)。

除了 Lua 之外,還有其他幾個沙盒,例如 pybc,甚至 c。請參閱 %list 以取得完整清單。

若要執行大量的程式碼,可以將其貼在 [tcp.st][qp.mniip.com] 並執行 dofile URL,例如 % dofile("http://tcp.st/foo")

如果您將 % 符號加倍,即 %%<版本> <程式碼>,輸出內容將重新導向到 yalb 自己的 pastebin 環,從而可以在不寄送垃圾訊息到頻道的情況下,也能夠有長篇的輸出。

另一個指令是 %?<版本> <標題>,它會在手冊中尋找標題 (例如 math.sinlua_pcall6.4.1)。

最後,還有 3 個特殊指令

沙盒

有一個名為 pp 的函數會執行漂亮列印。它會將零個或多個值作為引數,並傳回一個字串。它不會執行表格的深入檢查,但會相應顯示相同的表格/函數/使用者資料。

沙盒會漂亮列印所有從程式碼傳回的內容。

執行時間上限為 3 秒,記憶體限制約為 500 MiB。

您可以讀取位於某些特定位置的檔案,例如 /dev//usr/include/。還有一個(非 chrooted)類 Unix 環境可透過 os.execute 使用。您可以在當前目錄中操作檔案系統,但您可以在其中放置的資料量有限。

是的,它會接收 PM。

來源:後端是個 ptrace 亂七八糟的內容,可於 [這裡] 取得(先前版本使用 [這個])。前端是一個 100 行的 Lua 腳本,花了 15 分鐘湊合起來的。

作者: mniip


RecentChanges · 偏好設定
編輯 · 歷程記錄
最後編輯:2018 年 10 月 29 日下午 7:48 GMT (差異)