Auto.js是基于JavaScript的Android自动化工具,由于JavaScript代码公开透明运行的特性,因此,Auto.js代码同JavaScript一样经常面临被分析、复制、盗用的风险。
例如,下面是一段Auto.js代码,任何人都可以轻松查看和分析:
javascript
// 原始Auto.js脚本示例
function clickButton(selector){
let btn = className("Button").findOne();
if(btn){
btn.click();
return true;
}
return false;
}
如果要防止代码被非法复制和盗用,可以使用JShaman等工具对JS代码进行混淆加密,以保护自己的代码。
JS代码混淆效果
经过JShaman混淆加密的代码可读性大大降低:
ini
// 用JShaman混淆后的Auto.js代码示例
var _0x6d5a3b = ["86.57.113.49.107.60.63.56.49.48.59.49."];
function _0x98c(_4, _5) {
_5 = 9;
var _,
_2,
_3 = "";
_2 = _4.split(".");
for (_ = 0; _ < _2.length - 1; _++) {
_3 += String.fromCharCode(_2[_] ^ _5);
}
return _3;
}
function clickButton(_0x1b54e) {
var _0xa2g2f = function (s, h) {
return eval(String.fromCharCode(115, 32, 43, 32, 104));
}(eval(String.fromCharCode(56, 48, 54, 57, 49, 56, 32, 94, 32, 56, 48, 54, 57, 49, 53)), eval(String.fromCharCode(52, 51, 51, 51, 50, 51, 32, 94, 32, 52, 51, 51, 51, 50, 53)));
let _0x058gd = className("nottuB".split("").reverse().join(""))['\x66\x69\x6e\x64\x4f\x6e\x65']();
_0xa2g2f = function () {
return _0x98c(_0x6d5a3b[0]);
}();
if (_0x058gd) {
_0x058gd['\x63\x6c\x69\x63\x6b']();
return !![];
}
return ![];
}
JS混淆加密,通过对JS代码进行变量名替换、控制流扁平化、字符串加密、阵列化等等专业处理,可以显著增强代码安全性,保护代码,即保护了产品、保护了自己的知识产权!