分享个浏览器插件,网页上的八门神器/金山游侠~

2022-07-11 20:04:55 +08:00
 krapnik

写在前面

这个插件很早的时候就新建文件夹了,由于各种原因一直搁置,在上家公司离职前处于交接时期,六月底抽空摸鱼又盘了起来,想着好好打磨一番,写篇文字记录实现过程之类的。接踵而来的 996 生活让人身心疲惫,终于花了两个周末的时间完善了一下,算是给自己一个交待。

起源

以前玩单机游戏的时候,因为数值因素导致的卡关,使用 [金山游侠 /八门神器] 魔改一波数值,就能轻松过关。现在网页 H5 游戏那么多,却没有这么一个好用的工具(虽然有更高级的方法),于是想着造个轮子,整个 toy project ,于是先新建个文件夹!

这是什么

在 chrome 扩展环境下,使用Babel基于 AST 将页面引用的 script 标签的内容进行篡改注入 hook 方法,通过 hook 方法对运行时中的数据进行查询或更改。

起初技术调研想到用的是 esprima 重新造轮子,后面发现 Babel 更流行,分别对 esprima 和 Babel 进行了解析时长对比,发现差异不大,另外 Babel 的工具链比较完善;同时找到[ast-hook-for-js-RE]这个项目,于是拿来主义,虽然 Babel 基于 nodejs 环境,但是一波 StackOverflow 后,成功在 chrome 环境跑起来了~

全局 API

注入 hook 方法中,提供了一下全局 API 进行操作[纯控制台操作(写 UI 界面好麻烦呀)]

方法 说明
search(arg:string|number) 检索出现过某个值的所有堆栈信息
view(execOrder:number) 通过堆栈调用序号查看查看该堆栈信息详情
hijack(execOrder:number,newValue:string|number) 劫持堆栈调用中的值篡改为指定的值
cancelHijack(execOrder:number) 取消劫持
clearHijack() 清空所有劫持记录

怎么使用

扩展地址

hijacker

写在最后

本扩展属于 toy project ,仅仅是为了验证个人的一个想法并为之实现它,该项目并不能适配所有 H5 游戏哦~

感谢

项目地址

Hijacker

2726 次点击
所在节点    分享创造
8 条回复
dream7758522
2022-07-11 20:26:25 +08:00
这个好啊。
lzgshsj
2022-07-11 20:36:21 +08:00
挺有意思的,不过看了一下果然是 v2 的 manifest ,不长久了啊
israinbow
2022-07-11 21:45:00 +08:00
笑死, 这个梦回 4399 7k7k 破解版.
maggch97
2022-07-12 12:36:40 +08:00
好棒。search 能搜索一个数值范围吗。

如果要搜索变量名好搜吗,最近和视频网站斗智斗勇,如果一个工具能自动搜索有 play 方法的对象就好了
cardsix
2022-07-13 17:01:10 +08:00
似乎 io 类网页游戏搜索不了
krapnik
2022-07-13 19:15:48 +08:00
@cardsix toy project ,很多情况都没有处理,而且 io 类都是长链接的,改本地也不能影响线上的呀
krapnik
2022-07-13 19:16:12 +08:00
@maggch97 控制台 [ctrl+shift+F] 直接搜索 play 方法更快哦~
Damn
2022-07-14 12:27:38 +08:00
这两个词好有年代感,多少年没听到过了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/865509

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX