当前位置: 首页 > news >正文

js逆向常用代码

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() {
   // 创建样式元素并插入到head中
   const style = document.createElement("style");
   style.type = "text/css";
   style.id = "loadingStyle";
   style.innerHTML = loadingStyle;
   document.head.appendChild(style);

   // 创建加载层元素并插入到body中
   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;
// 重写createObjectURL方法
URL.createObjectURL = function (blob) {
  // 调用原始的createObjectURL方法,并返回其结果
  var originalResult = originalCreateObjectURL(blob);
  // 返回重写后的结果
  return originalResult;
};
 // 保存原始的 Image 构造函数
const OriginalImage = window.Image;

// 创建一个自定义的 Image 构造函数
function CustomImage() {
  const img = new OriginalImage();

  // 定义一个 setter 拦截 src 属性
  Object.defineProperty(img, "src", {
    set: function (url) {
      // 继续设置 src 属性
      img.setAttribute("src", url);
    },
  });

  return img;
}
window.Image = CustomImage;
const originalCreateElement = document.createElement;
 // 重写 createElement 方法
 document.createElement = function (tagName) {
   const element = originalCreateElement.call(document, tagName);
   if (tagName.toLowerCase() === "img") {
     // 定义一个 setter 拦截 src 属性
     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) {
   
    // 调用原始的 apply 方法
    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)
}

相关文章:

  • 使用 Polars 进行人工智能医疗数据分析(ICU数据基本测试篇)
  • 毛泽东思想“活的灵魂”
  • 黑马Java面试教程_P5_微服务
  • ISO 15118,最新版,汽车充电桩相关标准,1~22子标准
  • Postman 11.34 最新版安装与API测试入门教程(Windows平台)
  • 释放 Cursor 的全部潜能:快速生成智能 Cursor Rules
  • Linux中子线程会继承父线程对相关变量的可见性
  • redis --- 相关基础知识整理
  • RNN,LSTM,GRU三种循环网络的对比
  • 解决单元测试 mock final类报错
  • 盛京开源社区加入 GitCode,书写东北开源生态新篇章
  • 深入理解Java并发编程(一):揭秘并发性能优化的底层机制
  • 想转行做春晚那种扭秧歌的机器人,大概要会点什么?
  • 【SpringBoot】论坛项目中如何进行实现发布文章,以及更新对应数据库的数据更新
  • CCNA Started
  • 【MySQL学习】关系数据库标准语言SQL
  • 批量接受或拒绝 Word 修订
  • 加油站小程序实战教程04类目级联选择
  • mysql服务层介绍,NOSQL+SQL接口(nosql介绍),语法分析器,预处理器,优化器(优化的必要性,基于成本的优化器),缓存(弊端)
  • C#高级:结合Linq的SelectMany方法实现笛卡尔积效果
  • 德国放弃长期以来的反核立场,寻求修复德法合作关系
  • 国台办:不管台湾地区领导人讲什么,都改变不了台湾是中国一部分的地位和事实
  • 海南省检察院专委李思阳被带走,去年曾遭人举报违规插手案件
  • 特朗普与普京通话前夕,英美法德意领导人通话讨论俄乌问题
  • AI快速迭代带来知识焦虑,褚君浩院士提出“四维能力模型”
  • 从良渚到三星堆:一江水串起了5000年的文明对话