『逆向实践』破解某塔防游戏
前言
相信很多人在打单机游戏或网页游戏(非大型网络游戏)的时候总是有那么一点控制欲,想要修改游戏内容满足自己的那个小欲望。但是,技术是门槛,在之前,我和大家还得等别人破解完后来使用,还要为是否有病毒而担惊受怕。
今天,站长首次手动破解了一个网页小游戏,希望和大家分享可以共同提高逆向方面技术。
今天我们破解的是这个玩意:一个纯 js 塔防游戏。
游戏设计得很好,但是初始参数有点苛刻:
形参 | 实参 |
---|---|
生命 | 100 |
金币 | 500 |
属实有些太少了,于是:
相信大家还是对破解过程感兴趣,所以:
破解
扒站(逆向)
我们首先使用 360 或其他国内浏览器(亲测国外浏览器有乱码现象)打开原站。右键游戏内容-检查(相当于点了 F12 ),发现游戏主体是一个名为 td-pkg-zh-min.js
的文件。
使用 Ctrl + S
快捷键保存全站文件。
整理一下目录,把 html 文件改名为 index.html
,新建一个 data
(数据)文件夹,分类里面的 js、css 文件(分别创建相应文件夹,把相应后缀名文件放进去。另外扒站时搞下了几个 txt、php 文件,但是没什么用,删了),再打开 index.html
,修改整理里面所有关于路径的内容。这方面的内容建议使用一些专业的扒站工具,可以自动处理资源文件。
不用上面这么复杂,最终整下来也就三个文件:index.html
、style.css
、td-pkg-zh-min.js
而已,直接放同个文件夹即可。
删除 index.html
文件中影响打开速度的不必要的 script (包括但不仅限于百度统计代码)并修改一些文字,再把底部友情链接内容删除。
打开 其实这是压缩效果,直接利用格式化工具展开即可。td-pkg-zh-min.js
文件,哇,这个开发者我是真的服了,所有代码往一行里塞。
修改参数
打开整理好后的 data/js/td-pkg-zh-min.js
。
修改玩家初始参数
我编辑器用的是 notepad 2 ,使用 Crtl+F
快捷键调出查找功能,搜索关键词 config
,
往下找到第十个目标,在这个类似字典的东西中找到我们的目标 money
和 life
项,后面的数值就可以随便改了:
修改武器参数
修改这些东西完后怎么能少修改武器参数呢?武器牛逼才能 满足我们对无敌的渴望:
查找关键字 damage
(伤害),找到一个储存武器初始数据的字典 i
:
这里是参数名的中英对照表:
源码除了下面参数中英对照表有提到的可以改,其他地方尽量不要乱改,容易因为出错导致前功尽弃。
English | Chinese |
---|---|
wall | 路障 |
cannon | 炮台 |
LMG | 轻机枪 |
HMG | 重机枪 |
laser_gun | 激光炮 |
damage | 伤害 |
range | 射程 |
max_range | 最大射程 |
speed | 射速 |
bullet_speed | 子弹速度 |
life | 生命值(对武器无效) |
shield | 防御力(对武器无效) |
cost | 价格 |
difficulty | 难度 |
max_monsters_per_wave | 每波怪物最大数量 |
money | 金币 |
score | 积分 |
life | 生命值 |
游戏截图
发布
源码: