Autojs怎么安全加密?Autojs在线加密工具注意事项。

Jun 11, 2020 6:59:21 PM 83468

由于本站有很多   Autojs   用户,所以本次针对  Autojs  加做了一次优化。增加了  Autojs   一键配置,感谢大家提出的宝贵意见,您们的满意是我最大的追求。

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 加密,这样会效果好点。


还有一些 Autojs 相关问题,请联系客服QQ:84034666。 我们尊重每一个建议。


版权所属:JavaScript加密

原文地址:https://www.jsjiami.com/article/autojs-encode.html

转载时必须以链接形式注明原始出处及本声明。


本文标签:
最新文章
Can "Upgrade" only to "WebSocket".是为什么? 5524
JS setTimeout 方法,JavaScript Hook 劫持setTimeout 7770
文件(文本)不乱码,保存后发给对方,对方打开乱码,怎么处理文件乱码? 11812
MacBook安装Nginx最有效方法 3329
模仿支付宝输入支付密码的UI,带JavaScript 密码输入校验功能 25241
Chrome浏览器模拟微信客户端访问网址,方法图文讲解模拟微信 47303
JavaScript在线加密,最牛加密按次加密计费方式讲解。 53129
丁香公开课请求 sign(签名) 分析过程讲解 15454
JavaScript优雅的跳转,作弊跳转方式,JS防检测跳转。 26147
JS代码书写注意事项,JavaScript代码压缩后为什么报错? 15083

      商务合作:1#vfan.cn(把#换成@),或者联系QQ:84034666

      业务咨询:i#itboy.net(把#换成@),或者联系QQ:8446666

再次输入密码