背景
Luajit在游戏中应用广泛,在逆向分析游戏过程中免不了与luajit打交道,那网上有非常多关于luajit反编译的资料,汇总起来常用的两种方案:https://github.com/zzwlpx/ljd 和
https://github.com/bobsayshilol/luajit-decomp, 第一种方案相对来说可读性好但兼容性差经常出现反编译异常崩溃。第二种方案反编译更稳定但可读性稍差。在实践中稳定性是优先考虑的,所以这篇文章将深入分析第二种方案并解决开源代码相关问题。
使用
1.下载 https://github.com/bobsayshilol/luajit-decomp
- 确定luajit版本(如何确定不是本文重点),这里下载对应版本
- 编译luajit然后将生成的luajit.exe、lua51.dll和jit文件夹覆盖到lua-decomp
- 复制要反编译的文件到luajit-decomp
- 将反编译文件重命名为test.lua
- 运行decoder_new.exe
- 最终生成test.asm out.lua out2.lua,out2.lua就是我们要的文件
源码分析
源码Decoder.au3编写采用的是basic语言,具体编译环境安装看