lua混淆方案-新闻详情

lua混淆方案


发布时间:2018-03-30责任编辑:朱明 浏览:8330


当我们的应用提交到app store后,会先经历机器审核

这个审核原理应该也是会不断的升级和变化,只是速度快慢而已。

当前主要原理是对App扫描。

App扫描分为两部分,一部分是对代码进行扫描,一部分是对资源文件进行扫描。

 

代码扫描部分主要是对编译器会对每个函数生成编译器内部才识别的函数名,所以这里就需要针对不同的语言进行不同的修改,而且修改的量也需要比较大,才能绕过苹果的识别库。

 

针对资源文件的识别,主要是针对各个文件扫描出来的MD5进行比对,如果文件和苹果识别库里的App相似达到一定程度,就会触发4.3。

 

这里的lua混淆方案,主要针对的就是这种4.3的情况。

 

第一步将代码合并为一个文件

工具lua-distiller

工具地址:https://www.npmjs.org/package/lua-distiller

 

分析lua代码中的require依赖,将分散的n个lua文件拼合成一个单一的lua文件

 

Install 安装

npm install coffee-script

npm install lua-distiller

Use in command line

[pre]lua-distill -i path/to/main.lua -o dist/dist.lua[/pre]Command line options 命令行参数

  • -h, --help output usage information

  • -V, --version output the version number

  • -o, --output [VALUE] output directory

  • -i, --input [VALUE] path to main entrance coffee      file

 

第二步将合并后的文件进行混淆

混淆工具

LuaObfuscator-master

工具地址:https://github.com/jkusner/LuaObfuscator/

需要安装python3.4.3+

使用命令

 

python __main__.py [--input input.lua] [--output output.lua] [--level 1] [--dontcopy] [--debug]

 

第三步,将美术资源进行压缩

这里就不提供工具了,因为美术资源的格式不同,所需要用到的工具也不同。

 

经过这三步之后,你的app与之前就已经没有同质化的部分了,不过想要通过人工审核,还需要继续努力呀。