H5游戏(二)给某html5游戏做内挂

h5游戏的上一篇内容

H5游戏(一)登录某某首富H5游戏之WebSockets初涉 易语言wss

第二篇:给某html5游戏做内挂

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

1.前语

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

2. 先搬走游戏

打开游戏,并在F12中找到iframe游戏地址。
在这里插入图片描述
我们找到地址之后,在新建一个标签页打开地址,发现可以正常打开游戏并进入游戏。

2.1 index.html网页保存

直接把indexTWLYMobile.html保存在本地并用FTP等工具上传到自己的网站文件qx目录,在浏览器中运行,肯定是会报错的。(我这里改为了index.html)
在这里插入图片描述
接下来我们挨个修改html或JS文件达到搬运后能正常运行的效果。

2.2 文件修改

先把报错的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}

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

3.分析游戏

平民白嫖自动建造

我们点击自动建造功能,他会提示需要贵族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);

4.制作内挂

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

5.结语

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

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

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: HTML游戏是一种基于HTML和CSS开发的网页游戏H5游戏则是指以HTML5技术为基础开发的游戏HTML游戏的开发过程主要包括编写HTML标记、CSS样式和JavaScript脚本代码。通过利用HTML标记,可以定义游戏界面的布局结构,并使用CSS样式为其添加视觉效果。而JavaScript脚本则用于实现游戏的逻辑和交互功能。 H5游戏则使用了更加先进的HTML5技术。HTML5提供了更多的功能和特性,比如画布(canvas)、音频(audio)、视频(video)等,这些功能可以实现更加丰富和复杂的游戏效果。同时,HTML5还支持跨平台运行,可以在不同的终端设备上进行游戏的体验,如PC端、移动端等。 无论是HTML游戏还是H5游戏,它们都具有开发周期短、易上手、跨平台等优点。同时,由于使用了Web技术,游戏的发布和更新也比较方便,玩家可以在网页上直接进行游戏,无需下载和安装任何软件。 随着HTML5技术的不断发展和完善,HTML游戏H5游戏游戏界的影响力不断增强。如今,许多大型游戏公司纷纷将目光投向了HTML5游戏开发,并开发了许多富有创意和趣味性的小游戏,为玩家们带来更多游戏的选择和享受。 ### 回答2: HTML游戏/H5游戏是一种在网页上运行的小型游戏。它们通常使用JavaScript、HTML和CSS等前端技术进行开发,在支持HTML5的浏览器上进行实时游戏体验。这些小游戏可以轻松地在各种设备上运行,并且不需要安装任何额外的插件或软件。 HTML游戏/H5游戏的优势在于它们的跨平台性和无需下载的特点。用户可以直接在手机、平板电脑或电脑上来玩这些游戏,而无需经历繁琐的安装步骤。此外,由于这些游戏使用的是网页技术,开发者可以通过简单的修改来适应不同的设备屏幕大小和分辨率,从而提供更好的用户体验。 HTML游戏/H5游戏的类型丰富多样,涵盖了各种游戏类型,比如益智游戏、角色扮演游戏、射击游戏和竞速游戏等等。这些游戏往往具有简单易上手的规则和操作,因此适合各个年龄段的玩家。同时,由于HTML游戏/H5游戏开发相对简单,因此越来越多的开发者加入到这个领域,推出了大量创意独特、质量上乘的小游戏。 总而言之,HTML游戏/H5游戏在今天的游戏市场上占据了重要的地位。它们具有跨平台、无需下载的优势,提供了丰富多样的游戏体验,成为了游戏行业的一股新生力量。随着技术的不断发展,相信HTML游戏/H5游戏会愈发成熟和受欢迎。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值