共计 2489 个字符,预计需要花费 7 分钟才能阅读完成。
Autojs 加密抉择通过勾选 Autojs 加密选项,零碎会主动配置适宜 Autojs 加密的计划。
Autojs 加密次要调整内容
1、加密 PX 平坦系数的调整,更加适宜 Autojs 语法,使得 Autojs 加密后脚本运行速度不会受到影响。
2、加密语法更兼容 Autojs。
3、更加适宜 Autojs 平安的加密算法。
4、Autojs 不须要控制台输入和反调试,当抉择 Autojs 的时候,会主动屏蔽“禁用控制台调试”和“禁止控制台输入”。
Autojs 加密注意事项
因为平时和应用 Autojs 的同学接触较多,发现一个比较严重的问题。Autojs 的研发人员,对 Autojs 的语法、JavaScript 语法审慎度、谨严度等都比拟毛糙,导致代码加密后不能运行,针对这个问题,上面提几点,心愿 Autojs 的研发人员,大神们留神了。
1、if、for、try…catch 等蕴含部分作用于的语法块的书写留神点。谬误示范:
if(type == 1){var mq = 'active';}else if (type == 2){var mq = 'selected';}else{var mq = 'checked';}
// 这里应用 mq
console.log(mq);
下面的代码,在失常的业务中应用个别不会呈现问题,起因是 autojs 是基于 JavaScript,因为 JavaScript 是弱语言,导致语法能够不必那么谨严。然而一旦加密的时候,因为 if 语句块外面保安的 mq 都是局部变量,这会有可能使加密程序会认为这 4 个 mq 毫无关系。
正确示范:
var mq = 'checked';
if(type == 1){mq = 'active';}else if (type == 2){mq = 'selected';}
// 这里应用 mq
console.log(mq);
下面的代码,先是定义一个变量“mq”,而后给一个默认值,如果业务中没有默认值,就给一个空串,或者就不给默认值,而后顺次判断条件,而后给出相应的值,这样书写,更加谨严,代码容错率好。加密起来也不会出问题。
其余阐明:
包含“for”循环中,写了局部变量,而后在 for 的里面去应用,这也是同理的情理。
包含 try…catch 中,写了局部变量,而后在里面去应用,这也是同理的情理。
不要感觉这些无所谓,其实不论您是为了最初加密,还是平时书写,咱们应该能留神的就要留神到,能考究的就要考究,这样写进去的代码会更优良,容错率高,不会说运行着忽然出一些莫名其妙的问题。
2、办法名变量名放到字符串里,或者数组里等问题阐明。
谬误示范:
function demo() {alert('jsjiami.com');
}
setInterval("demo()",1000);
下面的代码,定义了一个办法名为“demo”,在一个定时工作中去 1000 毫秒(1 秒),去执行 demo 办法。然而一旦加密后,有可能办法名 demo 被脱敏了,变成了“_0xkjda”相似这样了,而上面的字符串“demo()”是没有任何变动的,导致找不到 demo 办法—demo is not defined。
正确示范:
function demo() {alert('jsjiami.com');
}
setInterval(demo,1000);
这样的话,加密程序能晓得 setInterval 中的 demo 指向下面的办法,加密后批改了办法变量名后,会同时批改 2 处,这样就不会造成找不到办法。
其余阐明:
这样的案例我看到 N 次,有的人是把办法放入数组中,或者去拼接字符串,而后去 eval 执行,都是同样的情理,因为字符串在没有运行的时候,咱们的加密工具是无奈辨认是否有关联。所以别用办法名、变量名以字符串形式去传递。
3、UI 代码,也是最重要的问题。
最好的形式是把 ui 代码批改一下。
原来代码:
ui.layout(
<drawer id="drawer">
<vertical>
<appbar bg="#ff0000">
<toolbar id="toolbar" title="演示代码"/>
<tabs id="tabs"/>
</appbar>
<viewpager id="viewpager">
<frame>
<vertical gravity="top">
<text text="演示代码" margin="10" textColor="black" textSize="16sp"/>
</vertical>
</frame>
<frame layout_weight="1">
<webview id="webview" w="*" h="*"/>
</frame>
</viewpager>
</vertical>
</drawer>
);
批改后代码:
var demo = '<drawer id="drawer">\
<vertical>\
<appbar bg="#ff0000">\
<toolbar id="toolbar" title="演示代码"/>\
<tabs id="tabs"/>\
</appbar>\
<viewpager id="viewpager">\
<frame>\
<vertical gravity="top">\
<text text="演示代码" margin="10" textColor="black" textSize="16sp"/>\
</vertical>\
</frame>\
<frame layout_weight="1">\
<webview id="webview" w="*" h="*"/>\
</frame>\
</viewpager>\
</vertical>\
</drawer>'
ui.layout(demo);
这也就能在应用“https://www.jsjiami.com 加密”了
咱们在 Autojs 放入了 ui; 代码就是 ui.layout() 蕴含的代码,这种代码因为是 ui,其实没必要加密,如果您就是想加密,先用 : JS/HTML 混合加密【记得选纯 JS 加密】。
而后放到 JS 文件中,能够一起用最牛加密 https://www.jsjiami.com 加密,这样会成果好点。