吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 22302|回复: 228
上一主题 下一主题
收起左侧

[Web逆向] H5游戏(二)给游戏做内挂

    [复制链接]
跳转到指定楼层
楼主
闷骚小贱男 发表于 2022-5-4 23:30 回帖奖励
本帖最后由 闷骚小贱男 于 2022-5-7 14:22 编辑

H5游戏(一)WebSockets初涉

https://www.52pojie.cn/thread-1629782-1-1.html

上一期研究了易语言伪造wss,后来觉得每个发送请求都要分析有点麻烦,索性就放弃了。。
换一个思路,直接在游戏上面做内挂
(本来这个贴想要分成2个写来着,但是一想也没必要,直接合并完结好了。)
这一期讨论一下把H5搬到自己的网站,并加载自己的JS,达到不用浏览器插件就可以在任意设备运行。

样品地址:aHR0cHM6Ly9zZGtoNS5nYW1lZG9nLmNuL2dhbWUvMTIzMC8xLw


0X1

大家都知道,H5游戏一般都是各大平台嵌套一个或多个iframe来达到运行游戏的目的。
所以我们一般直接找到游戏iframe的网址,就能无需登录游戏平台直接打开这个游戏(PS:部分游戏有参数验证、时效性验证等,导致无法实现这样的效果)

今天,我们就以XX狗平台的某雄争霸H5来探讨一下可行性。


0X2 先搬走游戏

打开游戏,并在F12中找到iframe游戏地址。


我们找到地址之后,在新建一个标签页打开地址,发现可以正常打开游戏并进入游戏。

index.html网页保存

直接把indexTWLYMobile.html保存在本地并用FTP等工具上传到自己的网站文件qx目录,在浏览器中运行,肯定是会报错的。(我这里改为了index.html)


接下来我们挨个修改html或JS文件达到搬运后能正常运行的效果。

文件修改

先把报错的manifest.json、jszip.min.js和sdk.js搞定,其实很简单就是对比官方游戏加载的文件改写index.html的script等。

manifest.json

我们通过对比官方的文件发现manifest.json应该是一个游戏需要加载的所有js的集合,改写JSON的内容达到直接调用官方的js文件



刷新网页之后 还是有很多报错(这是肯定的,不可能只改一个地方就OK了)

小改index.html

改写index.html中jszip.min.js的引用位置



上传到ftp空间,刷新后还是报错(简单分析了一下,是因为没有channel_id,无法加载渠道的JS文件导致的报错)
才想起来官方的html后面是有很多参数的,我们附带上参数,刷新之后发现这个报错没了,但是还有EgretSubPackageLoading文件缺失没解决

改写EgretSubPackageLoading.js的调用位置

刷新后发现,图片文件缺失报错,黑屏无法打开。


我们分析加载图片的启动器,可以发现egret.web.min.js中的loadImage函数

(而egret.web.min.js是在manifest.json中指定的文件,所以我们修改egret.web.min.js中egret.web.min.js的位置为咱们自己修改后的文件的地址)
我们直接断点刷新,查看函数

可以看到e的值是去掉域名之后的文件位置,我们直接修改

        if(e.indexOf('http')==-1){e="https://XXXXX.com/qx-tw/"+e}

刷新后发现还有.json文件报错,我们看启动器发现了egret.web.min.js中的open,照例断点刷新


和loadImage一样,我们也

        if(e.indexOf('http')==-1){e="https://XXXXX.com/qx-tw/"+e}

然后保存,上传,刷新网页,你就会发现,在你的网站能打开,并完美运行这个游戏


0X3 分析游戏

平民白嫖自动建造

我们点击自动建造功能,他会提示需要贵族1才能开启


我们搜索一下自动建造,发现在main.min.js中找到相关代码,我们断点再开一次自动建造,发现u=game

我们直接用控制台执行一次

        game.Utils.send(game.KeyCode.CALL_MAIN_CITY_BUY_AUTO)

发现,我们白嫖了12个小时的自动建造。

sendWitArgs函数

刚刚贵族1的自动建造,同时让我们有一个新的发现:game.Utils.send,这个函数是发送你对游戏的操作的。
我们定位之后还发现了另一个函数game.Utils.sendWitArgs,这个函数才是游戏发送数据到服务器的。

鼠标出界后不暂停游戏动画

鼠标只要点击游戏外的其他地方,游戏就会暂停,

        egret.ticker.pause = function(){}

实时免费加速

(PS:这个游戏建筑升级5分钟之内就能免费点一次免费加速。)
游戏是怎么判断的建筑队列的状态呢?


我们搜索空闲中,发现了能获取正在升级的建筑队列的函数game.MainCityController.Instance.getBuildingQueueList()

我们重新升级一下仓库,可以发现函数中有了数据

等到队列状态成为免费升级的时候,执行一次函数,可发现status为0的时候是可以免费的,是2时不能免费的
这样的话,我们就可以写代码循环执行免费升级的(可以配合上自动升级):

setInterval(function () {
        var list=game.MainCityController.Instance.getBuildingQueueList();
        if(list[0].status==0){
                game.Utils.sendWitArgs(game.KeyCode.CALL_MAIN_CITY_SPEED, {pos: list[0].id})//如果可以免费,那就免费升级
        }
}, 1000);

制作内挂

我们单独写一个ng.js并在index.html中加载。
写个select再把刚才的几个功能加进去。(防止遮挡游戏内容。这个select最好是可以写成是可以拖动位置的)
这样一个简单的内挂就搞定了,选中select的时候就会执行相应的操作。


结语

本帖仅是作为一个参考,其他的H5游戏处理方法可能会不太一样,举一反三。
直接浏览器控制台执行代码,当然也可以,但是贴中的这个方法是可以3端操作且不依赖控制台。

H5的最后一章,收工,睡觉

免费评分

参与人数 66吾爱币 +66 热心值 +64 收起 理由
呆呆♂DD + 1 + 1 大佬,收下我的膝盖
sylee2023 + 1 + 1 谢谢@Thanks!
_逛窑子 + 1 + 1 谢谢@Thanks!
kevinOrz + 1 我很赞同!
坐久落花多 + 1 + 1 这个不错
vcax + 1 我很赞同!
mgfz + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
恶魔天尊 + 1 + 1 大佬,请收下我的膝盖
cjc0045 + 1 + 1 大佬永远是大佬
jw987123jw + 1 + 1 谢谢@Thanks!
WaveH + 1 + 1 热心回复!
changjiang654 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
No_Life_KinG + 1 + 1 我很赞同!
jiking + 1 + 1 我很赞同!
app740520 + 1 + 1 谢谢@Thanks!
森罗千引 + 1 + 1 给大佬磕头
chinajxw + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
jhoneyr + 1 + 1 用心讨论,共获提升!
回忆是种止疼药 + 1 + 1 用心讨论,共获提升!
bilibini + 1 用心讨论,共获提升!
ytfh1131 + 1 + 1 谢谢@Thanks!
824 + 1 + 1 谢谢@Thanks!
jljyyjd + 1 + 1 我很赞同!
妖妖天瑜 + 1 + 1 热心回复!
xiaojougeson + 1 + 1 谢谢@Thanks!
LV落叶寒雪 + 1 我很赞同!
嘎嘣脆01 + 1 + 1 用心讨论,共获提升!
哒劳德 + 1 + 1 我很赞同!
dnldnl + 1 + 1 谢谢@Thanks!
raistlin + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Ricardo楚 + 1 + 1 用心讨论,共获提升!
HAOBO + 1 用心讨论,共获提升!
冰凉丶 + 1 + 1 谢谢@Thanks!
lzchao + 1 + 1 我很赞同!
我心有尘 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
gunxsword + 1 + 1 谢谢@Thanks!
q1034080962 + 1 + 1 我很赞同!
allan911 + 1 + 1 用心讨论,共获提升!
笙若 + 1 + 1 谢谢@Thanks!
tankexing + 1 + 1 用心讨论,共获提升!
xiaohanjss + 1 + 1 大佬6666
netcatxy + 1 + 1 用心讨论,共获提升!
4630269wu + 1 + 1 我很赞同!
彩色沙漠 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
pxSkippy + 1 + 1 我很赞同!
yxpp + 1 + 1 谢谢@Thanks!
正己 + 4 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
shalj + 1 + 1 热心回复!
dialga + 1 + 1 谢谢@Thanks!
c7128 + 1 + 1 太厉害了
s6s + 1 + 1 用心讨论,共获提升!
hanlaoshi + 1 + 1 谢谢@Thanks!
sherppard + 1 + 1 热心回复!
13599383608 + 1 + 1 谢谢@Thanks!
gao834010024 + 1 + 1 热心回复!
XXFFKK + 1 + 1 热心回复!
chaojiak47 + 2 + 1 论白嫖,楼主第一
jiangkunyun + 1 + 1 我很赞同!
lecat + 1 + 1 我很赞同!
癫疯灬博 + 1 + 1 我很赞同!
mengfang1 + 1 + 1 我很赞同!
stellarMC + 1 + 1 用心讨论,共获提升!
woyucheng + 1 + 1 谢谢@Thanks!
水表 + 1 + 1 用心讨论,共获提升!
dmxy9527 + 1 + 1 我很赞同!
smile6486 + 1 + 1 天秀

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
 楼主| 闷骚小贱男 发表于 2022-5-9 08:42 |楼主
15555559119 发表于 2022-5-9 08:34
大佬,问个问题,某微某信上的小程序游戏是不是可以做修改啊,还望大佬出一期佳作。

没试过,好像要解包,然后也不一定能按照这个方法修改。
有的游戏可以抓包拦截json文件返回修改过的json,达到修改道具或者着陆点的大小,而达到不死的效果
所以,看游戏,有的可以有的不可以
推荐
hackerbob 发表于 2022-5-4 23:37
哎嘿,你这思路不错,我从没有想到把游戏保存到本地
3#
tuqi 发表于 2022-5-5 00:24
4#
GeorgeL 发表于 2022-5-5 00:25
大佬的思路如此清奇!学到了!H5游戏可以这么搞。
5#
Nickyyyy 发表于 2022-5-5 00:39
很强大 页游居然可以这么玩
6#
wobensha 发表于 2022-5-5 00:47
学习了,谢谢
7#
iwhy 发表于 2022-5-5 01:14
感谢大佬, 打开了我得思路了
8#
fkmol 发表于 2022-5-5 02:31
4399上有些h5可以直接改数据 保存在本地的那种 这种直接保存我之前有想过但技术不到家 在这边学一学
9#
西瓜皮 发表于 2022-5-5 06:10
感觉很厉害,学习学习
10#
龍謹 发表于 2022-5-5 06:41
不明觉厉,闲下来慢慢消化,谢谢楼主。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-20 14:01

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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