上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖
楼主: cxxjackie - 

ajax劫持库ajaxHooker

  [复制链接]

该用户从未签到

16

主题

56

回帖

90

积分

初级工程师

积分
90

新人报道

发表于 2023-3-3 16:47:21 | 显示全部楼层
cxxjackie 发表于 2023-2-28 22:18
不加filter能否hook到?这个过滤是白名单机制,hook不到可能规则有问题,url是否写多了?有些请求url是相 ...

不加  不加filter  可以hook到数据,filter的URL 我试了完整的和不完整的都不行,你试的可以成功吗
回复
订阅

使用道具 举报

该用户从未签到

16

主题

56

回帖

90

积分

初级工程师

积分
90

新人报道

发表于 2023-3-3 20:16:30 | 显示全部楼层
我有一个按钮,点击按钮执行 hook 操作, hook完成后想释放 hook,使用 ajaxHooker.unhook(); 做释放操作。
问题是,当我再次点击按钮时候,怎样才能让 hook继续工作,hook完成后再次释放 hook。
只要我一直点击按钮,就一直循环,hook 和 释放hook。这样能不能实现
回复

使用道具 举报

该用户从未签到

16

主题

56

回帖

90

积分

初级工程师

积分
90

新人报道

发表于 2023-3-3 20:24:22 | 显示全部楼层
有没有可能给 hook 动态传参,每次hook 时,hook 内部的函数接收不同参数
回复

使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    862

    回帖

    1361

    积分

    荣誉开发者

    积分
    1361

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2023-3-3 20:57:06 | 显示全部楼层
    Major 发表于 2023-3-3 16:47
    不加  不加filter  可以hook到数据,filter的URL 我试了完整的和不完整的都不行,你试的可以成功吗 ...

    你没给网址啊,只有一个请求链接,这个网站好像还要注册,我也不知道哪个页面,测试不了。
    我自己用filter是没问题的,你这个会不会是重定向?看看request.url和res.finalUrl是否一致,过滤应以前者为准。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    862

    回帖

    1361

    积分

    荣誉开发者

    积分
    1361

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2023-3-3 21:15:15 | 显示全部楼层
    本帖最后由 cxxjackie 于 2023-3-5 22:37 编辑
    Major 发表于 2023-3-3 20:24
    有没有可能给 hook 动态传参,每次hook 时,hook 内部的函数接收不同参数

    unhook不可逆,如果需要控制hook是否执行,可以在回调函数内加变量判断,传参这类需求也可以在外部实现:
    1. const myRequest = {
    2.     isHook: true,
    3.     isInit: false,
    4.     args: [],
    5.     hook(...args) {
    6.         this.isHook = true;
    7.         this.args = args;
    8.         if (this.isInit) return;
    9.         ajaxHooker.hook(request => {
    10.             if (!this.isHook) return;
    11.             console.log(this.args);
    12.         });
    13.         this.isInit = true;
    14.     },
    15.     unhook() {
    16.         this.isHook = false;
    17.     }
    18. };
    复制代码



    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-1-28 11:21
  • 签到天数: 59 天

    [LV.5]常住居民I

    18

    主题

    101

    回帖

    120

    积分

    中级工程师

    积分
    120
    发表于 2023-3-13 20:06:43 | 显示全部楼层
    这个牛币,请问是可以做到,我点击按钮后,将原来xrh的get请求要查询的内容,换成我修改后的内容吗?
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    862

    回帖

    1361

    积分

    荣誉开发者

    积分
    1361

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2023-3-13 22:14:15 | 显示全部楼层
    BlenderB 发表于 2023-3-13 20:06
    这个牛币,请问是可以做到,我点击按钮后,将原来xrh的get请求要查询的内容,换成我修改后的内容吗?  ...

    可以,参考修改响应数据的示例。
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-1-28 11:21
  • 签到天数: 59 天

    [LV.5]常住居民I

    18

    主题

    101

    回帖

    120

    积分

    中级工程师

    积分
    120
    发表于 2023-3-14 17:10:57 | 显示全部楼层
    cxxjackie 发表于 2023-3-13 22:14
    可以,参考修改响应数据的示例。

    好的好的,谢谢哥哥解答, 我感觉我又能行了
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2023-3-28 14:26
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    9

    主题

    30

    回帖

    42

    积分

    初级工程师

    积分
    42
    发表于 2023-3-17 11:28:54 | 显示全部楼层
    大佬,为啥我这么用filter直接把我所有的请求都给截断了


    // ==UserScript==
    // @name         Xhotel
    // @namespace    pub.xhotel.xms
    // @version      0.0.1
    // @description  try to take over the world
    // @author       Cabin
    // @require      https://scriptcat.org/lib/637/1.2.2/ajaxHooker.js
    // @match        http://devxms.xhotel.pub/*
    // @icon         http://xms.xhotel.pub/favicon.ico
    // @run-at       document-start
    // @grant        unsafeWindow
    // @connect      xms.xhotel.pub
    // @connect      devxms.xhotel.pub
    // ==/UserScript==

    (function () {
      "use strict";

      ajaxHooker.filter([
          {type: 'xhr', url: '/plaManager/sysMenu/sysUserMenu', method: 'GET'},
      ]);
      ajaxHooker.hook(async (request) => {
        request.response = async (res) => {
          console.log(res.responseText);
        };
      });
    })();


    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    862

    回帖

    1361

    积分

    荣誉开发者

    积分
    1361

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2023-3-17 21:24:52 | 显示全部楼层
    cabin 发表于 2023-3-17 11:28
    大佬,为啥我这么用filter直接把我所有的请求都给截断了

    问题已确认,不是请求被截断,而是readystatechange事件没处理好,导致部分请求收不到响应,已于1.2.3修复。
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表