lua編譯luac
『壹』 直接把Lua編譯成Luac然後發布的時候還需要對腳本進行加密么
官方的lua編譯幾乎都能反編譯!改用luajit吧
『貳』 lua腳本怎麼編譯成二進制
luac的參數提供完整路徑,或者在lua文件所在目錄打開命令行
另外請確認已正確設置環境變數(如在cmd下直接luac可以運行,即提示no input files give即可)
比如lua文件在E:\f1\f2\f3\a.lua的話
cmd ->
luac e:\f1\f2\f3\a.lua
或者
在資源管理器中瀏覽到f2,然後shift+右鍵f3,在此打開命令行 (僅win7,xp貌似沒這選項),然後luac a.lua
又或者
cmd ->
e: --打開E盤
cd f1\f2\f3 --cd命令進入f3
luac a.lua
『叄』 lua腳本怎麼編譯成luac
luac xxx.lua
luac產生單個輸出文件,它包含所有給定的源代碼文件的位元組碼。預設時,輸出文件命名為luac.out,但你能通過選項-o改變。
『肆』 luac文件和lua文件有什麼區別
lua文件是源代碼,是文本文件,它不利於代碼的保護。
luac文件是經lua編譯器翻譯後的位元組碼文件,是二進制碼文件,可直接分享它以利於源碼的保護。
『伍』 lua編譯為luac後失效,就是一個游戲的MOD是用lua寫的,未編譯為luac可以正常執行,
你那個 luac4.exe 可能損壞,從官網上重新下載試試。
『陸』 lua編譯器和編輯器 scite是編輯器 編寫程序然後調用可以用cmd來 那麼這個是做什麼用的
lua可以編譯,叫做luac,也可以直接解釋執行。而運行lua後出現的稱為lua shell,可以直接執行用戶敲入的lua語句,方便用戶調試。python也有類似的shell,比如idle什麼的。ruby也有。就是可以將用戶敲入的合法語句直接解釋執行。
『柒』 如何把lua編譯成luac
不是在lua解釋器里用的……
命令行下luac 文件名
你這樣等於是試圖解釋lua語句luac.exe asd.lua,同時提供兩個table的鍵值,自然非法
『捌』 把lua編譯luac之後,還要進行加密嗎
加密是可以,關鍵是你用的解釋器能否讀懂。
所以 加密需要定製的運行環境!
『玖』 luac文件怎麼進行反編譯
lua源文件--obfuscate-->lua源文件(混淆後)--compile-->luac文件(帶調試用的變數名和行號)--strip-->luac文件(不帶調試信息)
lua/luac--加密/打包-->數據文件
數據文件--解包/解密-->lua/luac-->lua虛擬機
1. 跟蹤,脫殼,解包,解密,獲得 luac
追 luaL_loadbuffer luaL_loadfile lua_load 應該可以找到 解密函數。
hook 這3個函數,導出解密後的數據,直接就是 luac 文件。如果沒編譯甚至是 lua源文件。
hook luaV_execute 可以拿到 Proto* ,想辦法用 luaU_mp 導出。luaD_precall 應該沒必要搞。
2. 非標准 luac 處理
我們有兩種方案來處理得到的 luac
1. 得到一個能夠執行上述非標 luac 的 lua 版本
搞清楚編譯方式,改 lua 源文件,編譯出一個,這樣做什麼都可以,還能編譯出對應的 luadec 。
如果能找到 lua51.dll 之類的就直接調用吧。但是,只能用於導出 luac 對比文件格式,或者執行找到的幾個關鍵函數。
2. 將非標 luac 轉換成標准格式 luac,正所謂:山不來就我,我便去就山
非標准 luac 是怎麼做的:
1. bad header 改文件頭
#define LUA_SIGNATURE "