将lub文件反编译成lua文件(俗称解密lub文件)

之前我们在《将lua文件编译成lub文件(俗称加密lua文件)》已经介绍过如何将lua文件转换成lub的加密格式。本章将介绍如何将lub加密格式反汇编成lua文件(俗称解密lub文件)。

请注意:解密只能还原出大部分lua的数据内容,如果涉及到有函数(function)在lub文件里面的话,那么解密出来的函数代码不是很理想,还需要我们手动进行一些修复操作(本文会举例说明)。

为了方便大家进行操作,请下载我准备的一个简易工具包,下载后请直接解压:http://pan.baidu.com/s/1jGqYo78

解压后,请把想解密的lub文件放在工具目录下(文件后缀必须是lub才行)

然后运行Decrypt5.1.bat脚本,即可完成解密操作,解密后的文件会放在Output目录里面,如下图所示:

到了这里,我们的解密操作已经告一段落了,但是实际上此时的lua文件内容还是比较不理想的,请用Notepad++打开这个解密后的iteminfo.lua文件,你会发现内容乱成一坨,可读性非常差如下:

下面我来教大家如何利用Notepad++的替换功能,来将上面的这个乱七八糟的文件,转换成如下图所示的理想文件:

现在请用Notepad++打开我们解密后乱糟糟的itemInfo.lua文件,并按Ctrl+H打开替换界面,把下面的“循环查找”和“扩展(n,r,t,,x)”选上:

下面我会给出一组替换字符串,大家按照顺序进行替换就好。

——————————————————————————————————

请下载格式整理文件:下载iteminfo格式整理.txt

——————————————————————————————————

如果操作不出意外的话,当你完成上面的替换之后,应该就可以看到一个比较规整的itemInfo.lua文件了!不过这还不够,因为我最开始说过,解密操作对于一些函数的支持不是很好,所以我们还要做一些修复工作。

接下来请搜索main = function()这个关键词,可以看到如下所示的界面,把下面这一段都删掉:

删掉之后,将刚刚下载的“iteminfo格式整理.txt”底部的这一段函数贴进去:

最后看起来如下图所示,保存之后就可以丢到System目录下运行试试看了(可能根据情况,丢到System目录下的时候,你得将文件名改成iteminfo.lub才可以被游戏读取)!

至此你已经掌握了如何解密lub文件,以及如何对解密后的文件进行格式化处理(虽然这里只是以iteminfo.lub举例子,不过其他lub文件应该也是差不多的,都是用批量替换来实现格式整理。至于函数的修复部分,其实很简单,找一个明文的能正确读取的lua文件,把对应的函数拿过来就行。其实我们更多时候解密的目的,是为了拿到里面的数据,而不在乎能完整的将一个lub文件100%无缺陷的解密还原成lua!)