自定义Unity3D游戏的游戏数值修改
本帖最后由 Xhy 于 2015-2-25 14:00 编辑前言:从官网下载的apk加密了(新手不会解密),于是我从安卓市场下载,发现可以反编译,然后进行内购破解。
内购破解不了,从而转向Unity3D,发现可以修改HP和金币加成。
游戏名:xyykp
类型:酷跑类
可玩性:在我看来非常低,只为修改游戏而下载
反编译后:
1.去除读写短信的权限
2.用.net reflector打开assets\bin\Data\ManagedAssembly-CSharp.dll,
搜索get_HP,看到有2个,它们分别在2个类,如图:
两个一起修改了,改成3(最大生命为4,所以改成3,这样才看得见)修改方法见:http://www.52pojie.cn/thread-323325-1-1.html
3.再搜索一个:get_Gold
有GoldCoinAddition,看英文应该是金币加成,而且也在HeroLvModel,非常可疑,就修改它了。如图:
看到Single的数值类型,貌似是单精度浮点数 注意:Single要选择ldc.r4然后选择Single进行修改
试着修改一下,99999,再看看它周围有什么。
4.顺藤摸瓜
上面的搜索中出现了2个类:HeroLvModel,HeroModel那么顺藤摸瓜,看看周围有什么:
发现HeroLvModel里有GoldCoinAddition和HP,还有一个StarAdd,貌似也是星星(金币)加成,先不修改,只是记录一下,如果编译后没有实现再来修改它。
当然,里面还有其他可以修改的,如Lv,很明显是等级,不过我的目的不在这里,就没管它。
HeroModel里就有很多了,截不下图,于是只截了要修改的地方(我只修改了hp)
其实这里的Level (等级)PaperAirPlaneTime (飞机时间,就是boss时间)ScoreAddition (得分加成,类似于金币加成)都是可以修改的。
我修改了以下数值:
HeroLvModel.get_HP() : Int32
HeroModel.get_HP() : Int32
HeroLvModel.get_GoldCoinAddition() : Single
5.反编译后安装运行
启动游戏,玩一局,发现hp为3,金币加成为9999900%
我的目的就达成了,搞定收工。
————————————我是华丽的分割线——————————————————
这里记录一下我之前修改过的数值(不然我自己都会混乱。。):
PlayerSession.get_GoldAddition() : Single(感觉是金币加成,后来猜测是等级加成,没修改)
HeroLvModel.get_GoldCoinAddition() : Single(感觉是金币加成,成功)
get_IsUnlock() : Int32(感觉是人物解锁,失败)
HeroLvModel.get_HP() : Int32(绝对是血量,成功)
HeroModel.get_HP() : Int32(绝对是血量,成功)
HeroModel。ScoreAdditionLv () : Int32(猜是得分加成等级,失败)
HeroLvModel.get_StarAdd() : Int32(感觉是星星加成,不知为何失败了)
PlayerSession.ChangeGoldAddition(Int32)(感觉是金币加成,这里我把0.01改为99999。失败)
————————————我是华丽的分割线——————————————————
拓展
这个只能修改星星,而用星星抽奖得到宝石的几率是很小的。。。so,再次尝试修改宝石。
金币无限了,那就是宝石了,搜索Gem就出来一个,无法修改,进而搜索宝石(中文),发现有,但是仍然无法修改,难道还是只能内购?!这不是绕回去了吗?!
那么要怎样内购破解?这是为什么呢?求解答。
本帖最后由 Xhy 于 2015-2-25 13:11 编辑
2L:
商品价格修改ing
搜索Gem不到,竟然中文搜索宝石成功了
还是无法修改。。。。
我觉得你这个应该内购简单点吧 lu543800 发表于 2015-2-26 17:09
我觉得你这个应该内购简单点吧
可是我不会啊。。。 没有看到软件,不知道怎么评论呀。。。。。。。。 sndncel 发表于 2015-3-2 08:17
没有看到软件,不知道怎么评论呀。。。。。。。。
游戏名:xyykp
页:
[1]