吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 12408|回复: 53
收起左侧

[Android 原创] 简单破解 Auto.js 脚本代码

[复制链接]
behindeye 发表于 2021-2-28 12:34

此贴针对没有加密、以及较旧版本的auto.js的脚本代码

思路

1.下载 auto.js 在 github 开源的代码,地址这里就不贴了,自行去搜索;
2.跟踪源码,分析解密入口,既然JavaScript引擎最终是要解析未加密的文档的,是不是有一个地方是解密的,直接hook解密的地方,取解完密的内容;
3.将解密之后的内容保存到本地即可;

核心代码如下:

            Class encry = lpparam.classLoader.loadClass("com.stardust.autojs.engine.encryption.ScriptEncryption");
            XposedHelpers.findAndHookMethod(encry, "decrypt", byte[].class, int.class, int.class, new XC_MethodHook() {
                @Override
                protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                    super.beforeHookedMethod(param);
                }

                @Override
                protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                    super.afterHookedMethod(param);
                    byte[] b = (byte[]) param.getResult();
                    getFile(b, "/sdcard/", lpparam.packageName + "_hook_hex16.js");
                    String result = new String((byte[]) param.getResult());
                    //                    XposedBridge.log("result:" + result);
                }
            });
            final Class ct = lpparam.classLoader.loadClass("org.mozilla.javascript.Context");
            XposedHelpers.findAndHookMethod(ct, "compileReader", Reader.class, String.class, int.class, Object.class, new XC_MethodHook() {
                @Override
                protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                    super.beforeHookedMethod(param);
                }

                @Override
                protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                    super.afterHookedMethod(param);
                    Object ret = param.getResult();

                    Method method = ct.getMethod("decompileScript", lpparam.classLoader.loadClass("org.mozilla.javascript.Script"), int.class);
                    String decompStr = (String) method.invoke(param.thisObject, ret, 0);
                    byte[] b = decompStr.getBytes();
                    getFile(b, "/sdcard/", lpparam.packageName + "_hook.js");
                    XposedBridge.log("decompStr:" + decompStr);
                }
            });

注:新版本或者加密之后,不行

免费评分

参与人数 3吾爱币 +3 热心值 +3 收起 理由
菠萝Pine + 1 + 1 热心回复!
初心wo + 1 + 1 我很赞同!
mmcat33 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

mmcat33 发表于 2021-2-28 12:41
可以的啊
jonney 发表于 2021-2-28 12:43
wang2292126 发表于 2021-2-28 12:47
wjl19900603 发表于 2021-2-28 12:48
厉害了,定一个
此名已被注册? 发表于 2021-2-28 12:54
厉害厉害
mengzehe 发表于 2021-2-28 12:55
厉害,虽然看不懂
wiifrank 发表于 2021-2-28 12:57
最近刚好在研究这个脚本。
1101203976 发表于 2021-2-28 12:57
学到了,感谢分享
webhook 发表于 2021-2-28 13:08
还没有用过,一直有听说这个东西
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 15:22

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表