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';}//这里应用 mqconsole.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 加密,这样会成果好点。