Web - 前端加自动化解密

  1. 工具
  2. 过程
  3. 问题
    1. 中文传输乱码
    2. js解密后乱码
  4. 参考

工具

JsRpc
mitmproxy

过程

运行JsRpc

复制JsEnv_Dev.js的内容在浏览器控制台执行

连接通信

var demo = new Hlclient("ws://127.0.0.1:12080/ws?group=test");

查找加密函数(通常搜索关键字:crypt、aes、cbc、sm……)

打上断点,点击一下其他功能点,确认p()为解密函数

控制台输入window.decrypt_func=p,将解密函数注册为全局函数

测试全局函数decrypt_func是否可用

去掉断点,将decrypt_func注册到JsRpc远程调用

demo.regAction("decrypt", function (resolve,param) {
    var decrypt_data = decrypt_func(param);
    resolve(decrypt_data);
})

访问http://127.0.0.1:12080/go?group=test&action=decrypt¶m=encrypt_data可以正常获取到结果

继续找加密函数

可疑的通通打上断点,点击其他功能点触发请求,发现是g()处理加密

同样注册为全局函数encrypt_func并测试是否可用

去掉断点,将encrypt_func注册到JsRpc远程调用

demo.regAction("encrypt", function (resolve,param) {
    var encrypt_data = encrypt_func(param);
    resolve(encrypt_data);
})

问题

中文传输乱码


js解密后乱码

import codecs

def fix_code(str):
    bytes_data = codecs.escape_decode(escaped_str)[0]
    s1 = bytes_data.decode('utf-8')
    b2 = s1.encode('latin1')
    s2 = b2.decode('utf-8')
    b1 = s2.encode('latin1')
    final_text = b1.decode('utf-8')
    return final_text

参考

JsRpc/README.md at main · jxhczhl/JsRpc


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 cnlnnn@qq.com

文章标题:Web - 前端加自动化解密

字数:315

本文作者:cnlnn

发布时间:2025-07-01, 15:20:00

最后更新:2025-08-09, 07:24:47

原始链接:https://cnlnn.pages.dev/posts/js_encrypt_data/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。