js逆向常用代码
加载
const loadingStyle = `
#loadingDiv {
position: fixed;
z-index: 9999;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(255, 255, 255, 0.8);
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
}
.loader {
border: 16px solid #f3f3f3;
border-radius: 50%;
border-top: 16px solid #3498db;
width: 120px;
height: 120px;
animation: spin 2s linear infinite;
}
.loading-text {
margin-top: 20px;
font-size: 20px;
color: #333;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
`;
const loadingHTML = `
<div id="loadingDiv">
<div class="loader"></div>
<div class="loading-text">正在生成</div>
</div>
`;
function showLoadingScreen() {
const style = document.createElement("style");
style.type = "text/css";
style.id = "loadingStyle";
style.innerHTML = loadingStyle;
document.head.appendChild(style);
const loadingDiv = document.createElement("div");
loadingDiv.innerHTML = loadingHTML;
document.body.appendChild(loadingDiv);
}
function hideLoadingScreen() {
const loadingDiv = document.getElementById("loadingDiv");
if (loadingDiv) {
loadingDiv.style.display = "none";
}
const style = document.getElementById("loadingStyle");
if (style) {
style.remove();
}
}
拦截图片生成
var originalCreateObjectURL = URL.createObjectURL;
URL.createObjectURL = function (blob) {
var originalResult = originalCreateObjectURL(blob);
return originalResult;
};
const OriginalImage = window.Image;
function CustomImage() {
const img = new OriginalImage();
Object.defineProperty(img, "src", {
set: function (url) {
img.setAttribute("src", url);
},
});
return img;
}
window.Image = CustomImage;
const originalCreateElement = document.createElement;
document.createElement = function (tagName) {
const element = originalCreateElement.call(document, tagName);
if (tagName.toLowerCase() === "img") {
Object.defineProperty(element, "src", {
set: function (url) {
element.setAttribute("src", url);
},
get: function () {
return element.getAttribute("src");
},
});
}
return element;
};
拦截apply函数
const originalApply = Function.prototype.apply;
Object.defineProperty(Function.prototype, "apply", {
value: function (target, thisArg, argArray) {
return originalApply.call(this, target, thisArg, argArray);;
},
});
拦截Function的构建函数
Function.prototype.constructor_ = Function.prototype.constructor;
Function.prototype.constructor=function Function(){
console.log(arguments)
return this.constructor_(...arguments)
}