**
js一键Hook加密算法
**
代码如下 使用教程:https://www.bilibili.com/video/av380475343
// ==UserScript==
// @name 一键Hook加密算法
// @namespace By:亮亮
// @version 1.2
// @description 一键Hook Crypto RSA 几个基本的方法 AES DES 3DES Hmac SHA
// @author liangliang
// @match https://*/*
// @match http://*/*
// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant none
// ==/UserScript==
(function() {
'use strict';
console.log("亮亮网页Hook脚本初始化成功");
//过dubugger
var constructorEx = constructor;
Function.prototype.constructor = function(s) {
if (s == "debugger") {
return null;
}
return constructorEx(s);
}
window.SHook = true
window.IsDebugger = false
function hex2b64(h) {
var b64map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var i;
var c;
var ret = "";
for (i = 0; i + 3 <= h.length; i += 3) {
c = parseInt(h.substring(i, i + 3), 16);
ret += b64map.charAt(c >> 6) + b64map.charAt(c & 63);
}
if (i + 1 == h.length) {
c = parseInt(h.substring(i, i + 1), 16);
ret += b64map.charAt(c << 2);
} else if (i + 2 == h.length) {
c = parseInt(h.substring(i, i + 2), 16);
ret += b64map.charAt(c >> 2) + b64map.charAt((c & 3) << 4);
}
while ((ret.length & 3) > 0)
ret += "=";
return ret;
}
if (window.CryptoJS != undefined) {
var Crypto = window.CryptoJS
//AES加解密
if (Crypto.AES != undefined) {
var AESencrypt = Crypto.AES.encrypt
var AESdecrypt = Crypto.AES.decrypt
window.CryptoJS.AES.encrypt = function() {
var Data = arguments[0]
if (Data == "" || window.SHook == false) {
return AESencrypt(arguments[0], arguments[1], arguments[2])
}
console.log('检测到AES加密:');
var AESKey = arguments[1]
var AESIv = arguments[2]["iv"]
console.log("EnData:" + CryptoJS.enc.Utf8.stringify(Data))
console.log("AES Key:" + CryptoJS.enc.Utf8.stringify(AESKey))
console.log("AES Iv:" + CryptoJS.enc.Utf8.stringify(AESIv))
if (IsDebugger == true) {
debugger ;
}
return AESencrypt(arguments[0], arguments[1], arguments[2])
}
window.CryptoJS.AES.decrypt = function() {
var Data = arguments[0]
if (Data == "" || window.SHook == false) {
return AESdecrypt(arguments[0], arguments[1], arguments[2])
}
console.log('检测到AES解密:');
var AESKey = arguments[1]
var AESIv = arguments[2]["iv"]
console.log("DeData:" + Data)
console.log("AES Key:" + CryptoJS.enc.Utf8.stringify(AESKey))
console.log("AES Iv:" + CryptoJS.enc.Utf8.stringify(AESIv))
if (IsDebugger == true) {
debugger ;
}
return AESdecrypt(arguments[0], arguments[1], arguments[2])
}
}
//DES加解密
if (Crypto.DES != undefined) {
var DESencrypt = Crypto.DES.encrypt
var DESdecrypt = Crypto.DES.decrypt
window.CryptoJS.DES.encrypt = function() {
var Data = arguments[0]
if (Data == "" || window.SHook == false) {
return DESencrypt(arguments[0], arguments[1], arguments[2])
}
console.log('检测到DES加密:');
var AESKey = arguments[1]
var AESIv = arguments[2]["iv"]
console.log("EnData:" + CryptoJS.enc.Utf8.stringify(Data))
console.log("AES Key:" + CryptoJS.enc.Utf8.stringify(AESKey))
console.log("AES Iv:" + CryptoJS.enc.Utf8.stringify(AESIv))
if (IsDebugger == true) {
debugger ;
}
return AESencrypt(arguments[0], arguments[1], arguments[2

本文介绍了如何通过JavaScript实现一键Hook功能,涵盖AES、DES、TripleDES、HMAC、RSA等加密算法,以及MD5、SHA等哈希算法,提供详细步骤和代码示例,便于开发者理解和应用。
最低0.47元/天 解锁文章
1481

被折叠的 条评论
为什么被折叠?



