查看luac編譯的版本
luac xxx.lua
luac產生單個輸出文件,它包含所有給定的源代碼文件的位元組碼。預設時,輸出文件命名為luac.out,但你能通過選項-o改變。
Ⅱ 我想修改一個lua文件,但是是編譯後的,請問如何修改
這是因為你的反編譯器的版本和當初編譯那個Lua文件時的版本不一致。
你首先得知道你這個Lua文件是用哪個版本編譯的,再去找對應版本的Lua反編譯器。
什麼Lua文件值得你花精力去反編譯它啊?能自己搞就自己從頭搞吧。
Ⅲ lua編譯為luac後失效,就是一個游戲的MOD是用lua寫的,未編譯為luac可以正常執行,
你那個 luac4.exe 可能損壞,從官網上重新下載試試。
Ⅳ luac文件和lua文件有什麼區別
lua文件是源代碼,是文本文件,它不利於代碼的保護。
luac文件是經lua編譯器翻譯後的位元組碼文件,是二進制碼文件,可直接分享它以利於源碼的保護。
Ⅳ 有沒有能夠編輯調試編譯Lua(至少5.3.4的版本)的軟體
lua是解釋性語言沒有編譯器只有解釋器就是那個lua.exe
Ⅵ 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 "