Jshaman.com
技术资料
小游戏过审:JS代码混淆加密技巧
通过率几乎100%的小游戏过审方法
微信小游戏过审,如何对JS代码混淆加密更容易通过?
示例代码:
var a=1;
var b=2;
function c(){a=3;}
function d(){b=4;}
此仅为示例,实际代码肯定比这复杂的多,这里是演示原理。
一般情况下,单纯的想保护JS代码,防护代码被分析、复制、盗用,可以把上述代码一次性复制到JShaman(https://www.jshaman.com)混淆加密,获得加密代码就可以了。
但,如果目的是为了过审,那样是不行的,通过率很低。
如果想高成功率过审,技巧如下:
思路:如上述代码中,有全局变量定义(a、b)、有函数(c、d),加密时,采用“分块加密”的方式,把整体代码一部分一部分的加密,再拼合。
具体操作时,可以把变量定义(a、b)先加密,加密后替换掉原代码;再将函数c加密,再替换原代码;再加密函数d、再替换。当然,也可以将函数c、d一起加密、一起替换。
实际的项目中,比如有e、f、g、h函数,还可以e、h函数一起加密,或f、g、h函数一起加密。
注意:加密配置中,不要启用“全局函数加密、全局变量名加密”,否则分块加密并拼合后可能出现某些变量名或函数名找不到定义的问题。
例如,通常这种方式处理后,上面的示例代码形式可以成为:
/*仅做演示,实际会复杂的多*/
/*第一个分块加密结果*/
var a=0x5cb79^0x5cb78;var b=0x80e9f^0x80e9d;
/*第二个分块加密结果*/
function c(){a=0xe94e6^0xe94e5;}
/*第三个分块加密结果*/
function d(){b=0x92c7b^0x92c7f;}
或者:
/*仅做演示,实际会复杂的多*/
/*第一个分块加密结果*/
var a=0x5cb79^0x5cb78;var b=0x80e9f^0x80e9d;
/*第二个分块加密结果*/
function c(){a=0xa12cb^0xa12c8;}function d(){b=0x4e742^0x4e746;}
代码量多时,一次性加密的量也可以多一些,可以一次处理多个函数。但切记一次处理的代码是完整的。不可将函数代码中间部分切断。
如果原代码是被压缩或打包的,可以先进行代码格式化(https://www.jshaman.com/tools/js-beautify.html),然后依上方式再处理。
另一个技巧:分块时,可以将一块用JShaman加密(https://www.jshaman.com/),另一块用JS-Obfuscator加密(https://www.js-obfuscator.com/),如此这般,效果更佳!
用这种方式混淆加密JS代码过审,细致操作,通常率非常非常高,几乎100%。(~ ̄▽ ̄)~
示例代码:
var a=1;
var b=2;
function c(){a=3;}
function d(){b=4;}
此仅为示例,实际代码肯定比这复杂的多,这里是演示原理。
一般情况下,单纯的想保护JS代码,防护代码被分析、复制、盗用,可以把上述代码一次性复制到JShaman(https://www.jshaman.com)混淆加密,获得加密代码就可以了。
但,如果目的是为了过审,那样是不行的,通过率很低。
如果想高成功率过审,技巧如下:
思路:如上述代码中,有全局变量定义(a、b)、有函数(c、d),加密时,采用“分块加密”的方式,把整体代码一部分一部分的加密,再拼合。
具体操作时,可以把变量定义(a、b)先加密,加密后替换掉原代码;再将函数c加密,再替换原代码;再加密函数d、再替换。当然,也可以将函数c、d一起加密、一起替换。
实际的项目中,比如有e、f、g、h函数,还可以e、h函数一起加密,或f、g、h函数一起加密。
注意:加密配置中,不要启用“全局函数加密、全局变量名加密”,否则分块加密并拼合后可能出现某些变量名或函数名找不到定义的问题。
例如,通常这种方式处理后,上面的示例代码形式可以成为:
/*仅做演示,实际会复杂的多*/
/*第一个分块加密结果*/
var a=0x5cb79^0x5cb78;var b=0x80e9f^0x80e9d;
/*第二个分块加密结果*/
function c(){a=0xe94e6^0xe94e5;}
/*第三个分块加密结果*/
function d(){b=0x92c7b^0x92c7f;}
或者:
/*仅做演示,实际会复杂的多*/
/*第一个分块加密结果*/
var a=0x5cb79^0x5cb78;var b=0x80e9f^0x80e9d;
/*第二个分块加密结果*/
function c(){a=0xa12cb^0xa12c8;}function d(){b=0x4e742^0x4e746;}
代码量多时,一次性加密的量也可以多一些,可以一次处理多个函数。但切记一次处理的代码是完整的。不可将函数代码中间部分切断。
如果原代码是被压缩或打包的,可以先进行代码格式化(https://www.jshaman.com/tools/js-beautify.html),然后依上方式再处理。
另一个技巧:分块时,可以将一块用JShaman加密(https://www.jshaman.com/),另一块用JS-Obfuscator加密(https://www.js-obfuscator.com/),如此这般,效果更佳!
用这种方式混淆加密JS代码过审,细致操作,通常率非常非常高,几乎100%。(~ ̄▽ ̄)~