使用了一众软件工具
如:
https://bbs.pediy.com/thread-196684.htm
https://github.com/zod331/LuaDecrypter
https://codeload.github.com/NightNord/ljd/zip/refs/heads/master
https://down10.zol.com.cn/20190605/CFLuaDC.zip
都不行,最后还是unluac好使:
项目主页:https://sourceforge.net/projects/unluac/
unluac是lua5.1的反编译器,它运行在用标准Lua编译器编译的Lua块上,要求调试信息尚未从块中剥离(默认情况下,Lua编译器包含此调试信息)。
这个程序是用Java编写的,下载部分提供了一个JAR包,因此您不必编译它。它从命令行运行并接受一个参数:Lua块的文件名,反编译的代码被打印到标准输出。
以下是unluac的用法示例:
java -jar unluac_2020_05_28.jar myfile.lua > myfile_decompiled.lua
如果脚本中存在中文乱码的话,可以加上参数:
java -jar unluac_2020_05_28.jar –rawstring myfile.lua > myfile_decompiled.lua
目前对lua5.2和lua5.3的实验版本也有比较好的支持,不完美之处,我会在另一个逆向神器的帖子里说明,两个神器如何完美配合。
下面是我用这个版本对论坛里的金庸群侠传6合1脚本进行逆向的输出结果,首先看下原始的jymain.lua:
很明显被编译成了二进制,版本号是lua5.2
接下来,我们使用命令:java -jar unluac_2020_05_28.jar –rawstring jymain.lua > jymain_src.lua,得到如下结果:
可以看到,lua脚本已经被比较好的还原了,但是有个别的新语法支持不太好,如下:
这种情况,我们需要配合另一个软件luacdes来进行合并处理,后面我会另开一贴专门说明。
链接: https://pan.baidu.com/s/1Fqb4Iu1rXOEvFr1_jxu0zQ 提取码: 35kw