當前位置:首頁 » 編程軟體 » lua文件編譯

lua文件編譯

發布時間: 2024-01-11 07:52:26

『壹』 請教lua如何反編譯,或者指點一下luadec的用法,請不要復制回答問題。

搜:Lua腳本反編譯入門教程。

『貳』 lua腳本怎麼編譯成luac

luac xxx.lua

luac產生單個輸出文件,它包含所有給定的源代碼文件的位元組碼。預設時,輸出文件命名為luac.out,但你能通過選項-o改變。

『叄』 cocostudio導出的lua文件怎麼反編譯出來

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 "\033Lua" // lua.h
2. bad header 改數據類型
// luaconf.h
#define LUA_NUMBER_DOUBLE
#define LUA_NUMBER double
LUA_NUMBER to float
LUA_NUMBER_SCAN to "%f"
LUA_NUMBER_FMT to "%.7g"
l_mathop(x) to (x##f)
lua_str2number to use strtof

3. bad code OpCode 重定義
// 改有 "ORDER OP" 的地方
/* grep "ORDER OP" if you change these enums */
enum OpCode; // lopcodes.h
const lu_byte luaP_opmodes[]; // lopcodes.c
const char *const luaP_opnames[]; // lopcodes.c

熱點內容
數控編程輕松 發布:2024-11-16 22:23:38 瀏覽:813
能緩存老友記的播放器 發布:2024-11-16 22:22:16 瀏覽:479
python寫入文件字典 發布:2024-11-16 22:21:14 瀏覽:14
androidandbase 發布:2024-11-16 22:16:34 瀏覽:417
phpifecho 發布:2024-11-16 21:57:11 瀏覽:723
android動態載入布局 發布:2024-11-16 21:37:54 瀏覽:799
php判斷ip 發布:2024-11-16 21:07:03 瀏覽:739
有看頭密碼怎麼改 發布:2024-11-16 20:57:39 瀏覽:327
A有語法錯誤不能編譯 發布:2024-11-16 20:49:17 瀏覽:948
廚房需要配置什麼噴淋頭 發布:2024-11-16 20:39:02 瀏覽:298