JS 逆向
js 逆向,中国移动网上营业厅的流量余量监控脚本,烂尾了?
请求参数加密和响应参数解密,
本来想的是cookie时效久点,配合青龙定时推送到微信,达到对免流流量监控的目的。
但由于只支持扫码登录,且cookie时效1小时,导致无法进行。
中国移动网上营业厅,参数解密加密还原:
源代码仓库:gitee地址
中国移动微信小程序,参数解密加密还原:
const CryptoJS = require("crypto-js");
/**
* 加密方法
* @param plaintext
* @returns {*}
*/
function encrypt(plaintext) {
const keyHex = "31323334313233343132414243444546";
// 初始向量 (IV)
const ivHex = "41424344454631323334313233343132";
try {
// 转换密钥和 IV 为 WordArray 格式
const key = CryptoJS.enc.Hex.parse(keyHex);
const iv = CryptoJS.enc.Hex.parse(ivHex);
// 使用AES加密
const encrypted = CryptoJS.AES.encrypt(plaintext, key, {
iv: iv, //16位
mode: CryptoJS.mode.CBC, //aes加密模式cbc
padding: CryptoJS.pad.Pkcs7 //填充
});
// 将加密结果转为base64字符串
const base64Result = encrypted.ciphertext.toString(CryptoJS.enc.Base64);
return CryptoJS.enc.Utf8.parse(base64Result).toString(CryptoJS.enc.Base64);
} catch (error) {
console.error("AES 加密失败:", error);
throw new Error("加密过程出错: " + error.message);
}
}
/**
* 解密方法
* @param ciphertextBase64
* @returns {string}
*/
function decrypt(ciphertextBase64) {
const keyHex = "31323334313233343132414243444546";
// 初始向量 (IV)
const ivHex = "41424344454631323334313233343132";
try {
// 转换密钥和 IV 为 WordArray 格式
const key = CryptoJS.enc.Hex.parse(keyHex);
const iv = CryptoJS.enc.Hex.parse(ivHex)
const ciphertext = CryptoJS.enc.Base64.parse(ciphertextBase64).toString(CryptoJS.enc.Utf8)
const decrypted = CryptoJS.AES.decrypt(ciphertext, key, {
iv: iv, //16位
mode: CryptoJS.mode.CBC, //aes加密模式cbc
padding: CryptoJS.pad.Pkcs7 //填充
});
return decrypted.toString(CryptoJS.enc.Utf8);
} catch (error) {
console.error("AES 解密失败:", error);
throw new Error("解密过程出错: " + error.message);
}
}
中国移动app,脱壳完成,卡在frida调试,待收录。。。
此项目作者原创,仅供学习使用,如有侵权,请联系我邮箱2375560790@qq.com删除。