日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

如何使用瀏覽器擴(kuò)展篡改網(wǎng)頁(yè)中的JS 文件

瀏覽:36日期:2022-06-10 11:17:46
目錄
  • 前言
  • 一、JS 文件攔截和篡改
    • 1.1 JS 文件攔截
    • 1.2 JS 文件篡改
  • 二、將篡改后的 JS 注入頁(yè)面
    • 2.1 將文件從 background.js 發(fā)送到 content.js
    • 2.2 content.js 接收代碼并注入頁(yè)面
  • 三、也許這并不是最好的辦法

    前言

    最近 Hack 了一個(gè)前端頁(yè)面(自家網(wǎng)站,但是暫時(shí)不能從源碼改),來增強(qiáng)它的某些功能。

    這些增強(qiáng)功能需要使用網(wǎng)頁(yè)中的一些接口,但是經(jīng)過調(diào)試發(fā)現(xiàn)需要對(duì)接口傳輸?shù)谋韱芜M(jìn)行簽名校驗(yàn)。嘗試了一下常見的 Hash 算法以及少許迭代組合,輸入輸出都對(duì)不上,而逆向整個(gè)算法代價(jià)過高,所以打算使用瀏覽器擴(kuò)展篡改 JS ,將簽名接口直接暴露出來。

    一、JS 文件攔截和篡改

    經(jīng)過調(diào)試定位到了簽名算法所在的地方,然后取前后若干代碼作為特征碼,到時(shí)候只需要把要插入的內(nèi)容以合適的方式添加到特征碼里面,然后替換原文件中的特征碼,就可以達(dá)到篡改 JS 的效果了。

    1.1 JS 文件攔截

    這個(gè)攔截需要 webRequestBlocking和 webRequest權(quán)限,因此在 manifest.json 中聲明這兩個(gè)權(quán)限:

    "permissions": [
      ...
      "webRequest",
      "webRequestBlocking"
    ]

    然后在background.js中過濾帶有簽名算法的JS請(qǐng)求:

    chrome.webRequest.onBeforeRequest.addListener(
      function(details){
        const { url } = details;
        if(/xxxx\.js/.test(url)){
          // 這個(gè)函數(shù)要同步返回,因此我們不能在這里篡改文件
          // 不過先返回一個(gè)“信標(biāo)”,注入到 dom 里作為注入 JS 的憑據(jù)
          // secretPageId 確保頁(yè)面對(duì)得上,不過這一點(diǎn)貌似是多余的
          const secretPageId = Date.now() + "--" + Math.random();
          const redirectUrl = `
    data:javascript,
    var node = document.createElement("div");
    node.id = "secretPageId";
    node.innerHTML ="${secretPageId}";
    document.body.appendChild(node);
          `.replace(/\n/g, "");
          getAndChangeScript(url, secretPageId);
          return {
    redirectUrl
          }
        }
        return {
          redirectUrl: url,
        }
      }
    );

    1.2 JS 文件篡改

    你可能注意到了上面的代碼片段中,調(diào)用的 getAndChangeScript 函數(shù)還沒有定義,看函數(shù)名應(yīng)該猜得到它是用來篡改 JS 的:

    async function getAndChangeScript(src, secretPageId){
      const scriptStr = await (await fetch(url)).text();
      const changedScript = scriptStr.replace(
        // 這里是特征碼
        "e.filterNoNumber=Y;",
        // 修改后的特征碼,替換到原文中去
        "window.signMaker = J;e.filterNoNumber=Y;"
      );
      scriptInjectBus.send(secretPageId, changedScript);
    }

    二、將篡改后的 JS 注入頁(yè)面

    2.1 將文件從 background.js 發(fā)送到 content.js

    畢竟background.js并不能操作 DOM ,因此只能使用 content.js,這里就需要一個(gè)“傳送門”來發(fā)送這些內(nèi)容。
    background.js這一側(cè),定義一個(gè)scriptInjectBus來干這事:

    const scriptInjectBus = (function () {
      const listenQueue = [];
      const send = function (info) {
        listenQueue.forEach(function (handler) {
          handler(info);
        });
      };
    
      const listen = function (handler) {
        listenQueue.push(handler);
      };
    
      return {
        send,
        listen
      };
    })();

    并且要監(jiān)聽來自 content 的消息:

    chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
      scriptInjectBus.listen(function (info) {
        chrome.tabs.sendMessage(tab.id, info, function (res) {});
      });
    });

    標(biāo)簽: JavaScript
    日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
    狠狠干成人综合网| 国产成人免费精品| 成人av动漫在线观看| 1024精品一区二区三区| 国户精品久久久久久久久久久不卡| 日韩在线短视频| 成人午夜国产| 久久精品不卡| 尤物在线精品| 亚洲一区二区小说| 日韩精品一区二区三区中文| 久久国际精品| 欧美午夜网站| 精品视频在线你懂得| 加勒比视频一区| 九九精品调教| 精品在线91| 伊人www22综合色| 国产麻豆一区| 精品国产黄a∨片高清在线| 日韩精品dvd| 黑丝一区二区三区| 日韩精品午夜视频| 欧美国产极品| 欧美黄色网页| 亚洲久久视频| 国产一区精品福利| 亚洲一级网站| 日韩av一区二区三区四区| 欧美激情在线精品一区二区三区| 97欧美在线视频| 在线综合欧美| 国产午夜久久av| 色爱av综合网| 日韩精品欧美大片| 91视频精品| 欧美资源在线| 麻豆一区二区99久久久久| 久久美女精品| 日本欧美久久久久免费播放网| 精品一区二区三区中文字幕视频| 国产一区久久| 国产丝袜一区| 欧美色图国产精品| 欧美伊人久久| 91精品高清| 国产精品igao视频网网址不卡日韩| 久久一区二区三区电影| 日韩不卡在线观看日韩不卡视频| av免费不卡国产观看| 中文字幕av一区二区三区人| 日本一区二区高清不卡| 免费观看在线综合| 精品成av人一区二区三区| 午夜在线一区| 97精品一区二区| 日本在线一区二区三区| 蜜桃精品在线| 久久国产乱子精品免费女| 99久久久久国产精品| 国产精品亚洲四区在线观看 | 亚洲天堂资源| 亚洲精品进入| 久久久久久黄| 国产美女撒尿一区二区| 中文亚洲欧美| 国产aⅴ精品一区二区三区久久 | 欧美专区在线| 日韩国产一区| 国产精品17p| 亚洲精选久久| 一区免费在线| 国产一区二区三区不卡视频网站| 最新亚洲国产| 99国产精品久久久久久久成人热| 精品伊人久久| 国产三级一区| 免费欧美在线视频| 亚洲性视频h| 中文在线中文资源| 国产精品男女| 中文国产一区| 日韩在线中文| 精品久久电影| 欧美成a人片免费观看久久五月天| 亚洲视频二区| 免费视频久久| 亚洲免费播放| 999国产精品999久久久久久| 精品国产中文字幕第一页| 欧美亚洲tv| 日韩有吗在线观看| 老司机精品久久| 国产精品99一区二区| 日本不卡免费高清视频在线| 久久av免费| 国产精品一区二区免费福利视频| 亚洲精品伊人| 蜜臀久久久久久久| 亚洲在线观看| 午夜在线精品偷拍| 亚洲一级在线| 不卡中文字幕| 欧美精品一二| 欧美成人精品| 欧美成人亚洲| 在线一区电影| 伊人成人在线视频| 九一成人免费视频| 香蕉久久精品| 九九在线精品| 欧美91精品| 不卡一区2区| 狠狠久久婷婷| 美女久久一区| 亚洲人成网77777色在线播放| 亚洲专区一区| 美国三级日本三级久久99 | 日韩激情视频网站| 青草国产精品| 久久国产精品免费精品3p| 欧美日韩18| 国产精品一区二区99| 美日韩一区二区三区| 国产精品三级| 欧美91在线|欧美| 福利片在线一区二区| 国产传媒av在线| 日韩在线观看不卡| 偷拍欧美精品| 中文字幕成人| 国产欧美欧美| 国产精品伦理久久久久久| 欧美精品日日操| 一本一道久久a久久精品蜜桃| 性欧美精品高清| 亚洲精品三级| 久久免费精品| 91精品国产乱码久久久久久久| 99久久夜色精品国产亚洲1000部| 亚洲成人一区| 三级在线观看一区二区| 欧美日一区二区在线观看| 久久精品资源| 亚洲精品在线影院| 另类激情亚洲| 亚洲三级毛片| 精品国产中文字幕第一页| 日韩电影在线视频| 99日韩精品| 欧美一区二区三区免费看| 成人午夜网址| 99国产一区| 国产伦精品一区二区三区在线播放| 麻豆久久久久久| 日韩一区二区三区在线免费观看| 国产美女精品| 国产精品tv| 亚洲高清成人| 婷婷综合成人| 国产 日韩 欧美 综合 一区| 亚洲电影在线| 日本三级亚洲精品| 中文字幕成在线观看| 免费精品视频| 久久一区精品| 99香蕉国产精品偷在线观看 | 亚洲精品在线国产| 精品一区二区三区四区五区| 久久久噜噜噜| 日韩和欧美一区二区三区| 精品国产91| 麻豆精品网站| 久久精品国产精品亚洲毛片| 欧美a级片一区| 国产精品亚洲四区在线观看| 日韩成人高清| 911亚洲精品| 亚洲黑丝一区二区| 国产精品国码视频| 欧美国产91| 欧美三区不卡| 狠狠色综合网| 久久爱www.| 国产一区白浆| 国内不卡的一区二区三区中文字幕| 国产日韩专区| 国际精品欧美精品| 亚洲精品三级| 99久久久国产精品美女| 欧美亚洲专区| 欧美精品一二| 欧美国产中文高清| 久久亚洲风情| 精品免费av在线| 久久av偷拍| 亚洲免费一区三区| av亚洲在线观看| 精品国产亚洲一区二区在线观看| 久久国产高清|