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

关于如何利用eval hook添加sourceURL调试eval代码

[复制链接]
  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5966

    回帖

    6763

    积分

    管理员

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

    积分
    6763

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

    发表于 2023-1-12 21:45:52 | 显示全部楼层 | 阅读模式

    比如现在有一个代码

                eval(`
                function add(a,b){
                    return a + b
                }
                console.log(add(1,2))
                `)

    关于如何调试可能就束手无测了
    这个时候可以对eval进行hook
    添加一个sourceURL
    就会在source里生成一个js文件片段
    然后打上断点刷新即可
    我们加一个hook

                const oldEval=window.eval
                window.eval=function(str){
                    return oldEval.call(this,str+'//# sourceURL=test.js')
                }
                eval(`
                function add(a,b){
                    return a + b
                }
                console.log(add(1,2))
                `)

    可以发现多了一个test.js的代码片段
    进行下断点后刷新即可正常断下
    图片.png

    结语

    撒花~

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
  • TA的每日心情
    慵懒
    7 小时前
  • 签到天数: 813 天

    [LV.10]以坛为家III

    31

    主题

    552

    回帖

    1556

    积分

    荣誉开发者

    积分
    1556

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

    发表于 2023-1-12 21:54:06 | 显示全部楼层

    本帖最后由 steven026 于 2023-1-12 21:55 编辑

    image.png

    回复

    使用道具 举报

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

    [LV.7]常住居民III

    712

    主题

    5966

    回帖

    6763

    积分

    管理员

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

    积分
    6763

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

    发表于 2023-1-12 22:13:51 | 显示全部楼层
    steven026 发表于 2023-1-12 21:54
    [md]!(data/attachment/forum/202301/12/215311nl22kt24v500v5g9.png)
    ![](https://d.ifengimg.com/q100/im ...

    也是...一种思路!
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

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

    使用道具 举报

  • TA的每日心情
    开心
    前天 13:37
  • 签到天数: 213 天

    [LV.7]常住居民III

    305

    主题

    4196

    回帖

    4061

    积分

    管理员

    积分
    4061

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2023-1-12 23:45:31 | 显示全部楼层
    李恒道 发表于 2023-1-12 22:13
    也是...一种思路!

    使用场景不同,快反驳 不能一天丢两次脸
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

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

    [LV.7]常住居民III

    712

    主题

    5966

    回帖

    6763

    积分

    管理员

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

    积分
    6763

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

    发表于 2023-1-12 23:58:44 | 显示全部楼层
    steven026 发表于 2023-1-12 21:54
    [md]!(data/attachment/forum/202301/12/215311nl22kt24v500v5g9.png)
    ![](https://d.ifengimg.com/q100/im ...

    这种eval方式主要用于源码使用大量的eval进行构建
    如果使用debugger难以做精准化的注入
    而且调试在多文件的情况下也不方便
    如果使用引用文件的方式
    我们可以直接利用浏览器的搜索功能
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

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

    使用道具 举报

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

    [LV.7]常住居民III

    712

    主题

    5966

    回帖

    6763

    积分

    管理员

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

    积分
    6763

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

    发表于 2023-1-12 23:58:58 | 显示全部楼层
    王一之 发表于 2023-1-12 23:45
    使用场景不同,快反驳 不能一天丢两次脸

    我编造了一个场景堵回去了!
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

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

    使用道具 举报

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

    [LV.10]以坛为家III

    31

    主题

    552

    回帖

    1556

    积分

    荣誉开发者

    积分
    1556

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

    发表于 2023-1-13 09:02:48 | 显示全部楼层

    本帖最后由 steven026 于 2023-1-13 09:04 编辑

    李恒道 发表于 2023-1-12 23:58

    这种eval方式主要用于源码使用大量的eval进行构建
    如果使用debugger难以做精准化的注入
    而且调试在多文件 ...

    image.png
    那就直接在开头加debugger 然后手动打断点😘

    回复

    使用道具 举报

    发表回复

    本版积分规则

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