关于解析H5网页游戏及控制 |
您所在的位置:网站首页 › h5游戏变速 › 关于解析H5网页游戏及控制 |
前语 H5游戏一般都是各大平台嵌套一个或多个iframe来达到运行游戏的目的。 所以我们一般直接找到游戏iframe的网址,就能无需登录游戏平台直接打开这个游戏(PS:部分游戏有参数验证、时效性验证等,导致无法实现这样的效果) 今天,我们就以某平台的某雄争霸H5来探讨一下可行性。 打开游戏到本地游戏打开游戏的最基础网页 打开游戏,并在F12中找到iframe游戏地址。 我们找到地址之后,在新建一个标签页打开地址,发现可以正常打开游戏并进入游戏。 直接把indexTWLYMobile.html保存在本地并用FTP等工具上传到自己的网站文件qx目录,在浏览器中运行,肯定是会报错的。(我这里改为了index.html) 当然这个时候需要web服务的解析,nginx,tomcat等不限 1.1 先把报错的manifest.json、jszip.min.js和sdk.js搞定,其实很简单就是对比官方游戏加载的文件改写index.html的script等 1.2 manifest.json 我们通过对比官方的文件发现manifest.json应该是一个游戏需要加载的所有js的集合,改写JSON的内容达到直接调用官方的js文件 文件修改内容![]() ![]() 1.3 改写index.html中jszip.min.js的引用位置 页面引用文件修改![]() ![]() 1.3 上传到ftp空间,刷新后还是报错(简单分析了一下,是因为没有channel_id,无法加载渠道的JS文件导致的报错)才想起来官方的html后面是有很多参数的,我们附带上参数,刷新之后发现这个报错没了,但是还有EgretSubPackageLoading文件缺失没解决 1.4 分析加载图片的启动器,可以发现egret.web.min.js中的loadImage函数 1.5 而egret.web.min.js是在manifest.json中指定的文件,所以我们修改egret.web.min.js中egret.web.min.js的位置为咱们自己修改后的文件的地址 1.6 可以看到e的值是去掉域名之后的文件位置, if(e.indexOf('http')==-1){e="https://XXXXX.com/qx-tw/"+e} 1.7 刷新后发现还有.json文件报错,我们看启动器发现了egret.web.min.js中的open,照例断点刷新 1.8 然后保存,上传,刷新网页,你就会发现,在你的网站能打开并运行这个游戏 game.Utils.send(game.KeyCode.CALL_MAIN_CITY_BUY_AUTO) 刚刚贵族1的自动建造,同时让我们有一个新的发现:game.Utils.send,这个函数是发送你对游戏的操作的。 我们定位之后还发现了另一个函数game.Utils.sendWitArgs,这个函数才是游戏发送数据到服务器的。 鼠标出界后不暂停游戏动画鼠标只要点击游戏外的其他地方,游戏就会暂停 egret.ticker.pause = function(){} 实时免费加速(PS:这个游戏建筑升级5分钟之内就能免费点一次免费加速。) 游戏是怎么判断的建筑队列的状态呢? game.MainCityController.Instance.getBuildingQueueList() 我们单独写一个ng.js并在index.html中加载。 写个select再把刚才的几个功能加进去。(防止遮挡游戏内容。这个select最好是可以写成是可以拖动位置的) 这样一个简单的内挂就搞定了,选中select的时候就会执行相应的操作。 本帖仅是作为一个参考,其他的H5游戏处理方法可能会不太一样,举一反三。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |