autojs热更新dex

牙叔教程 简单易学

声明

本教程仅用于学习, 禁止用于其他用途

使用场景

热更新

autojs版本

8.7.7-0

热更新

热更新是App常用的更新方式。简单来说,就是在用户通下载安装APP之后,打开App时遇到的即时更新。

代码简介

文件版本号和下载地址信息放在语雀,
语雀可以随时更改信息
语雀文章url是不变的

脚本执行的时候,
先从语雀获取更新信息,
然后对比版本号
然后决定是否更新文件

文件放在码云

代码讲解

1. 获取dex更新信息
let 获取dex更新信息 = require("./获取dex更新信息");
let dex更新信息 = 获取dex更新信息();
log(dex更新信息);
2. 比较文件版本号
let localFileVersion = "0.0.1";
let needUpdate = isNeedToUpdateFile(localFileVersion);
3. 卸载所有dex和jar, 下载新dex, 加载dex
runtime.unloadAll(true);
let filePath = 下载新版dex();
runtime.loadDex(filePath);
4. 执行dex
new Packages["测试"]()();

获取语雀文章内容

1. 加载类
runtime.loadJar("./jsoup.jar");
importClass(java.io.IOException);
importClass(java.text.ParseException);
importClass(org.jsoup.Jsoup);
importClass(org.jsoup.nodes.Document);
importClass(org.jsoup.select.Elements);
importClass(org.jsoup.safety.Whitelist);
2. 获取bookId
function getBookId() {
  let dexVersionurl = "https://www.yuque.com/yashujs/di90k3/gamwoe";
  let r = http.get(dexVersionurl);
  r = r.body.string();
  let content = r.match(/window\.appData =.*/);
  if (content) {
    let appData = content[0].replace("window.", "");
    eval(appData);
    let bookId = appData.book.id;
    if (bookId) {
      return bookId;
    }
    throw new Error("没有获取到bookId");
  }
  throw new Error("没有匹配到appData");
}
3. 获取页面内容
function getPageContent(bookId) {
  log("bookId = " + bookId);
  let url =
    "https://www.yuque.com/api/docs/gamwoe?book_id=" +
    bookId +
    "&include_contributors=true&include_hits=true&include_like=true&include_pager=true&include_suggests=true";
  let r = http.get(url);
  r = r.body.json();
  let content = r.data.content;
  return content;
}
4. 获取网页所有文字
function StripHT(strHtml) {
  //获得带有保留的br和p标签的漂亮打印的html
  let prettyPrintedBodyFragment = Jsoup.clean(
    strHtml,
    "",
    Whitelist.none().addTags("br", "p"),
    new Document.OutputSettings().prettyPrint(true)
  );
  // 通过禁用prettyPrint获得带有保留的换行符的纯文本
  return Jsoup.clean(prettyPrintedBodyFragment, "", Whitelist.none(), new Document.OutputSettings().prettyPrint(false));
}

参考文章

声明

部分内容来自网络

bilibili

牙叔教程

微信公众号 牙叔教程

在这里插入图片描述

QQ群

747748653
在这里插入图片描述

在这里插入图片描述

Auto.js是一款基于JavaScript编写的Android自动化工具,主要用于模拟用户操作和执行自动化脚本。逆向DEX(JS源码)指的是对Auto.js APK文件中的DEX文件进行逆向工程,并分析其中的JavaScript源代码。 Auto.js本身并不是开源的,但是它使用JavaScript语言编写的脚本可以进行逆向分析。首先,我们可以使用逆向工程的技术将Auto.js APK文件反编译为Java源代码。然后,我们可以分析反编译后的代码,找到其中与JavaScript相关的部分。 在逆向分析中,我们可以关注以下几个方面: 1. 寻找脚本加载和执行的入口点:我们可以分析反编译后的Java源代码,找到Auto.js应用程序的主要入口点,并寻找与JavaScript脚本加载和执行相关的代码段。 2. 了解JavaScript与Java之间的交互方式:Auto.js通过Java提供了一系列JavaScript接口,用于模拟用户操作和执行系统操作。我们可以分析Java源代码,找到这些接口的实现并了解它们的使用方式。 3. 分析JavaScript代码:通过将逆向分析的重点放在JavaScript代码上,我们可以深入了解Auto.js的工作原理。我们可以分析脚本的流程、函数调用、参数传递等,以及与Android系统相关的API的使用。 总的来说,逆向DEX(JS源码)意味着对Auto.js的逆向分析,从反编译的Java源代码中找到与JavaScript相关的部分,并分析JavaScript脚本的执行过程和与Android系统的交互。这样可以帮助我们更好地理解Auto.js的工作原理,以及在需要时对其进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牙叔教程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值