ad208三国

 找回密码
 加入
搜索
热搜: 活动 交友 discuz
查看: 444|回复: 0

微软surf游戏修改,html5游戏逆向

[复制链接]
发表于 2023-6-28 13:10:09 | 显示全部楼层 |阅读模式

pc2g,电脑好游戏 以下文字转载自https://georgeguoxv.gitee.io/2021/03/26/%E5%BE%AE%E8%BD%AFsurf%E6%B8%B8%E6%88%8F%E4%BF%AE%E6%94%B9%EF%BC%8Chtml5%E6%B8%B8%E6%88%8F%E9%80%86%E5%90%91/

微软Edge内置有一个小游戏,在浏览器输入edge://surf就能访问但是玩起来很费力,怪兽跑的太快了,障碍物有时候也很难躲,我把游戏的game.js源码做了修改,可以实现无敌
But!!! 还是不够完美,一个人玩实在是太孤独了,我把刷新路人的间隔调到了很低,而且把路人刷新的位置从屏幕之外改到了屏幕中间,哈哈
修改成在线游戏如果你打开浏览器的devtool查看一下源码,你会发现我修改的地方做的中文注释,你也可以试着修改
我准备进一步把这个游戏优化成在线游戏,所以我引入了peerjs,socket.io这两个库,我想如果有一个websocket的服务器,那么每个玩家都可以发送ws message到服务器,服务器再转发给每一个在线的玩家,这样就可以实现多人。如果你看到报错的peerjs,那是其实我给每个访问网站的用户分配一个peer id,但是由于服务器端口有限,3001端口的peerjs服务器我无法部署。
修改时遇到的问题我仔细研究了代码,从debug断点开始,慢慢的熟悉了代码。 经过我google搜索作者的名字加上EdgeSurf,我发现了原作者的一篇采访,作者说是代码是使用原生的js写的,然后使用webpack打包成game.js,于是我是用webpack-unpack把game.js反编译成  开包game.js后的文件 ,可以看到这是一个json文件,于是我又写了一个脚本重新组合.js来把这个json文件转写成一个个js文件, 你看到的0.js和28.js每一个都是一个COMMONJS模块,其中最重要的起始模块是21.js,这我们可以从game.js开头的源码中看出来
为了验证我的猜想,我把这个0到28的模块使用browserfy重新组合,然后用组合后的js代替了game.js,游戏果然能够运行
很遗憾的是原作者使用webpack压缩后使源码变得很难阅读,有些变量名都被压缩成了一个字母,这给逆向开发带来很大难度
有兴趣的小伙伴可以fork这个项目,我们一起魔改这个html5游戏。这是github仓库https://github.com/George-Guo-tech/How-to-change-the-Edge-Surf-game
你们可以克隆到本地或者云服务器上自己试试  
在这里试玩

Archiver|手机版|小黑屋|ad208三国

GMT+8, 2024-4-29 06:37

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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