anndaming

 

有关Lua代码混淆

lua库本身提供的是字节码编译器,但这个不是混淆,是我搞混了。

使用方法:luac a.lua –o a.luc

另外网上有一个在线混淆器:

http://www.capprime.com/CapprimeLuaObfuscator/CapprimeLuaObfuscator.aspx

这个混淆器基本上能达到混淆的目的,仍有缺点如下:

1. 同一段代码的混淆在不同时间进行混淆,得到的混淆字段不同

          这是致命的缺点,因为我们需要进行动态更新时,并不会更新所有的Lua文件,那么对要更新的文件进行混淆,同一个方法,如果得到方法名与前一次不同,则动态更新的意义就不存在了

2. 不能同时对多个文件进行混淆

         因为我们程序往往是工程级别,在现在这个自动化概念被十分重视的时代,一个个文件进行混淆的操作明显是不被接受的。

这个在线混淆器的最大优点是:

         只有与在Lua中定义过的变量名和方法名相同字段才会被混淆。

 

另外,我们要进行Lua代码混淆,要考虑到我们的Lua代码中存在对象的概念,也就是说,我们进行混淆时,要注意不能把对象的方法给进行混淆,否则在与OC交互的过程会出问题。

同时,我们会在Lua中重写一些OC方法,那这部分方法名是不应当被混淆的。

综上,要对Lua代码进行混淆,要考虑的因素较多。我们一般只进行一次加密就能够很好地达到混淆效果。如果是要去掉多余的注释、空格、空行等,我们可以写脚本批量处理Lua文件即可。

posted on 2013-06-12 10:02  anndaming  阅读(8233)  评论(0编辑  收藏  举报

导航