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

辅助脚本:查看全局属性

[复制链接]
  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

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

    发表于 2021-8-31 20:21:18 | 显示全部楼层
    李恒道 发表于 2021-8-31 17:32
    他这个写法感觉好奇特有没有

    是指我的描述奇特还是代码奇特?代码的话可能是因为我加了反劫持,所以读起来有点别扭。
    回复
    订阅

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5961

    回帖

    6760

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6760

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2021-9-1 15:45:16 | 显示全部楼层
    cxxjackie 发表于 2021-8-31 20:21
    是指我的描述奇特还是代码奇特?代码的话可能是因为我加了反劫持,所以读起来有点别扭。 ...

    写法,反劫持还能这么玩
    话说哥哥碰到过这种劫持的页面么
    真这么搞也太骚了吧
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

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

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

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

    发表于 2021-9-1 19:35:34 | 显示全部楼层
    李恒道 发表于 2021-9-1 15:45
    写法,反劫持还能这么玩
    话说哥哥碰到过这种劫持的页面么
    真这么搞也太骚了吧

    一般是对象上的某个方法被改了,比如把toString方法改掉,这会影响我判断类型,有些不是有意的,只是不小心重名了而已。把整个对象都改掉的也有,我就碰到过不止一个把Map给改了的网站,他自己不用Map,然后自定义了一个地图类,就把Map给弄没了。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    18 小时前
  • 签到天数: 811 天

    [LV.10]以坛为家III

    31

    主题

    552

    回帖

    1555

    积分

    荣誉开发者

    积分
    1555

    荣誉开发者新人进步奖油中2周年生态建设者新人报道挑战者 lv2油中3周年喜迎中秋

    发表于 2022-7-12 16:56:24 | 显示全部楼层

    本帖最后由 steven026 于 2022-7-12 16:57 编辑

    模糊查找.png

        const FUZZY_SEARCH_FUNCTION_NAME = '$fuzzySearchKey';
        unsafeWindow[FUZZY_SEARCH_FUNCTION_NAME]=key=>{
            let Keys=new _Array()
            for(let i in globalProps){
                let arr=globalProps[i].filter(item=>item.toLowerCase().includes(key.toLowerCase()))
                if(arr.length>0){
                    Keys.push(...arr)
                }
            }
            let goal=new _Array()
            Keys.forEach((item)=>{goal.push(allKeys.get(item))})
            _console.dir(goal || [])
        }
        _console.log(`${FUZZY_SEARCH_FUNCTION_NAME}函数已注入!`);

    GGNB,这个脚本在逆向的时候很好用。
    另外我加了个模糊查找的功能,感觉这样更方便一点

    回复

    使用道具 举报

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

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

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

    发表于 2022-7-12 20:43:06 | 显示全部楼层
    steven026 发表于 2022-7-12 16:56
    [md]![模糊查找.png](data/attachment/forum/202207/12/165547k7pwp7sap4w4z677.png)
    ```
        const FUZZY_ ...

    感觉写的有点问题,globalProps是全局属性,所有属性应该在allKeys里,可以用这种方式遍历属性名:
    1. for (const item of allKeys.keys()) {
    2.     if (item.toLowerCase().includes(key.toLowerCase()) {
    3.         Keys.push(item);
    4.     })
    5. }
    复制代码

    然后模糊查找可以给$searchKey加第二个参数,这样就不用额外注入一个函数。
    这个脚本太久没更新了,当时写的时候代码也乱糟糟的,以后可能会重构一下。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    18 小时前
  • 签到天数: 811 天

    [LV.10]以坛为家III

    31

    主题

    552

    回帖

    1555

    积分

    荣誉开发者

    积分
    1555

    荣誉开发者新人进步奖油中2周年生态建设者新人报道挑战者 lv2油中3周年喜迎中秋

    发表于 2022-7-12 20:52:22 | 显示全部楼层
    cxxjackie 发表于 2022-7-12 20:43
    感觉写的有点问题,globalProps是全局属性,所有属性应该在allKeys里,可以用这种方式遍历属性名:

    然后 ...

    大致读了一遍代码果然还是不如原作者逻辑更清晰
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    18 小时前
  • 签到天数: 811 天

    [LV.10]以坛为家III

    31

    主题

    552

    回帖

    1555

    积分

    荣誉开发者

    积分
    1555

    荣誉开发者新人进步奖油中2周年生态建设者新人报道挑战者 lv2油中3周年喜迎中秋

    发表于 2022-7-18 20:24:54 | 显示全部楼层

    GG发现一个bug
    测试网址https://gltyx.github.io/omsi-loops/,加载完直接运行脚本就会报错
    QQ截图20220718192646.png
    回复

    使用道具 举报

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

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

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

    发表于 2022-7-18 22:12:05 | 显示全部楼层
    steven026 发表于 2022-7-18 20:24
    GG发现一个bug
    测试网址https://gltyx.github.io/omsi-loops/,加载完直接运行脚本就会报错 ...

    我看了一下,他用了很多Proxy,还把一些对象的正常属性给删掉了,导致那些原本能作用于对象上的方法各种出错,好像还会不小心进死循环。。。暂时修复了这个问题,解决方法就是避开这些特殊对象,可能不是很完美,有时间我再细究一下。

    点评

    GGNB  发表于 2022-7-18 22:19
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    18 小时前
  • 签到天数: 811 天

    [LV.10]以坛为家III

    31

    主题

    552

    回帖

    1555

    积分

    荣誉开发者

    积分
    1555

    荣誉开发者新人进步奖油中2周年生态建设者新人报道挑战者 lv2油中3周年喜迎中秋

    发表于 2022-7-20 22:26:16 | 显示全部楼层
    通过枚举window的方法只能获取到挂载在window下的全局变量,
    但是无法获取全局下通过const、let的全局变量,百度查下了全局下通过const、let的变量有作用域,虽然也是全局变量但是是挂载在global下的。
    目前我只找到通过DevTools输入变量名自动联想到,
    想问问哥哥这种const、let声明的全局变量能通过js遍历到吗?
    回复

    使用道具 举报

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

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

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

    发表于 2022-7-20 23:06:13 | 显示全部楼层
    steven026 发表于 2022-7-20 22:26
    通过枚举window的方法只能获取到挂载在window下的全局变量,
    但是无法获取全局下通过const、let的全局变量 ...

    是的,这个问题我也考虑过,但目前没想到什么好办法,const/let的变量应该不是挂载在global上(浏览器中global即window),而是在块级上,全局const/let就相当于一个巨大的块级作用域,js似乎没有提供针对块级作用域的遍历方法。
    回复

    使用道具 举报

    发表回复

    本版积分规则

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