當前位置:編程學習大全網 - 源碼下載 - cocostudio導出的lua文件如何反編譯?

cocostudio導出的lua文件如何反編譯?

Lua源文件-混淆-> Lua源文件(混淆後)-編譯-> Luac文件(帶變量名和行號用於調試)-strip->;Luac文件(沒有調試信息)

Lua/luac -加密/打包-& gt;數據文件

數據文件-解包/解密->;Lua/luac-& gt;Lua虛擬機

1.跟蹤、脫殼、解包和解密以獲得luac。

追Lual _ LoadBufferLual _ LoadFile Lua _ Load應該能找到解密函數。

Hook,這三個函數,導出解密後的數據,直接就是壹個luac文件。如果妳連lua源文件都不編譯。

鉤子luaV_execute可以得到Proto*,嘗試用luaU_dump導出。LuaD_precall應該是不必要的。

2.非標準luac處理

我們有兩個解決方案來處理luac。

1.得到壹個可以執行上述非標準luac的lua版本。

找出編譯方法,更改lua源文件,編譯壹個,想怎麽做就怎麽做,編譯對應的luadec。

如果能找到lua51.dll什麽的,直接調用就行了。但是,它只能用於導出luac比較文件格式,或者執行找到的幾個關鍵函數。

2.將非標準luac轉換成標準格式luac,俗話說:山不來我就去山。

非標準的luac是怎麽做到的?

1.錯誤的標題更改文件標題

#定義lua.h簽名" \033Lua" // lua.h

2.錯誤的頭改變了數據類型。

// luaconf.h

#定義LUA數字雙精度

#定義LUA _數字雙精度

LUA _要浮動的數字

LUA號碼掃描到“%f”

LUA _號碼_FMT到“%.7g”

l_mathop(x)到(x##f)

lua_str2number使用strtof

3.錯誤的代碼操作碼重定義

//其中“順序OP”被更改。

/* grep "ORDER OP "如果您更改這些枚舉*/

枚舉操作碼;// lopcodes.h

const Lu _ byte luaP _ op modes[];// lopcodes.c

const char * const luaP _ op names[];// lopcodes.c

  • 上一篇:如何才能快速的學習ARM單片機。我有51的基礎
  • 下一篇:dat放在哪個MT4文件
  • copyright 2024編程學習大全網