深入分析luait反编译之luajit-decomp

本文主要分析了luajit反编译工具luajit-decomp的使用和源码,针对实践中遇到的稳定性、可读性问题进行了探讨。在luajit广泛应用的背景下,文章解决了decoder.au3的编译错误,通过扩容数组解决了反编译崩溃问题,并指出了指令翻译的不足,提出需要重新实现以改善可读性。
摘要由CSDN通过智能技术生成

背景

Luajit在游戏中应用广泛,在逆向分析游戏过程中免不了与luajit打交道,那网上有非常多关于luajit反编译的资料,汇总起来常用的两种方案:https://github.com/zzwlpx/ljd
https://github.com/bobsayshilol/luajit-decomp, 第一种方案相对来说可读性好但兼容性差经常出现反编译异常崩溃。第二种方案反编译更稳定但可读性稍差。在实践中稳定性是优先考虑的,所以这篇文章将深入分析第二种方案并解决开源代码相关问题。

使用

1.下载 https://github.com/bobsayshilol/luajit-decomp

  1. 确定luajit版本(如何确定不是本文重点),这里下载对应版本
  2. 编译luajit然后将生成的luajit.exe、lua51.dll和jit文件夹覆盖到lua-decomp
  3. 复制要反编译的文件到luajit-decomp
  4. 将反编译文件重命名为test.lua
  5. 运行decoder_new.exe
  6. 最终生成test.asm out.lua out2.lua,out2.lua就是我们要的文件

源码分析

源码Decoder.au3编写采用的是basic语言,具体编译环境安装看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值