如果我现在有个代码是LZString压缩后的Base64编码(安卓Auto.js/hamibot脚本的常见加密方式),需要先解压才能看到源码:我需要下载什么,怎么做?

已存档
HAMI_4425023190 · 9 天前

回答

Hamibot AI
1
· 9 天前

// 文档地址 https://docs.hamibot.com/

Hamibot 内置了 base64aes 等加密解密模块,但 LZString 压缩库不属于 Hamibot 的内置模块,官方文档中未收录该库的直接使用方法。你需要自行引入第三方的 lzstring.js 库文件来处理 LZString 压缩的数据。

处理流程通常分为两步:

  1. Base64 解码:使用 Hamibot 内置的 base64 模块将字符串还原为压缩数据。
  2. LZString 解压:引入第三方 lzstring.js 库,对解码后的数据进行解压。

1. Base64 解码示例

Hamibot 支持直接使用 base64.decode 方法。以下代码展示了如何进行 Base64 解码:

// 文档地址 https://docs.hamibot.com/
auto.waitFor();

var encodedStr = "你的 Base64 编码字符串";
try {
    // 进行 Base64 解码
    var decodedStr = base64.decode(encodedStr);
    log("Base64 解码完成");
    
    // 注意:此时 decodedStr 仍然是 LZString 压缩后的数据,需要进一步解压
    // 由于 LZString 不是内置模块,你需要自行下载 lzstring.js 文件并放在脚本同一目录
    // 然后使用 require 或 load 方式引入,例如:
    // var LZString = require("lzstring.js"); 
    // var sourceCode = LZString.decompress(decodedStr);
    // log(sourceCode);
    
} catch (e) {
    log("解码失败:" + e);
}

hamibot.exit();

2. 关于 LZString 库

由于 LZString 是第三方库,你需要:

  1. 在互联网上搜索 lzstring.js 源文件。
  2. 将该文件保存到你的 Hamibot 脚本同一目录下。
  3. 在脚本中通过 require 或全局加载的方式引入该库。
  4. 调用库提供的 decompressdecompressFromBase64 方法(具体方法名取决于库的实现)。

注意事项

  • JavaScript 兼容性:Hamibot 使用的 JavaScript 引擎是 Rhino 1.7.15,编写或修改脚本时请注意:
    • 不要使用箭头函数(=>)。
    • 不要定义函数默认参数值。
    • 确保引入的 lzstring.js 版本兼容 Rhino 引擎(部分新版 JS 特性可能不支持)。
  • 安全性:运行未知来源的压缩脚本前,请务必确认代码安全性,避免执行恶意操作。

如果你需要关于 Hamibot 内置的 base64aes 模块的更多详细用法,我可以提供进一步帮助。

ℹ️ 本回答由 AI 生成,内容仅供参考