旅行青蛙的游玩心得

来自纯新手的手把手实践经验分享

初次接触逆向,简单记录一下心路历程及一些自认为有趣的东西,大佬们可绕过或者多多指教
==这里用的是1.04版本,1.01版本基本雷同==

下面就开始了此次的心路历程:
首先是看到了
https://paper.seebug.org/519/,参照其中

1.下载游戏安装包,修改后缀为zip可用解压工具打开,发现存在assets\bin\Data\Managed目录(判断游戏应该为Unity游戏的一个特征)。据说此类游戏主要逻辑代码在Assembly-Csharp.dll中,所以主要分析的就是这个。


image.png
image.png

2.得知此类游戏为unity3d开发后(好像和传统的安卓逆向有些不同),在代码未混淆加密的情况下可以用.net的逆向工具dnspy分析其中的dll文件。 很幸运这里没有加密。工具自行百度吧,从官网还是挺好下的。打开Assembly-Csharp.dll后大概长这样。 如果为英文看着比较费劲,可以在视图中切换成中文。


image.png

3.第一眼还是有点不知所措,现在参考前面的教程可发现,他的思路是从抽奖券开始的,首先发现在抽奖券不足时会提示一串文字,看不懂没关系,能看到其中有个“足”字就ok。


image.png

这时如果没有更改界面,可以在旁边看到搜索框,选中当前的dll文件,再选择搜索字符串,搜索“足”即可发现找到了两个匹配项。


image.png

4.这里可猜测第一个是和抽奖券有关(字都一样好嘛),


image.png

第二个猜测和三叶草的数量有关(别问我咋猜的)

image.png

可看到这里有和抽奖券类似的判断
image.png

:):)


image.png

5.所以这里参照各种大佬的教程先从抽奖券开始吧:
由于这里可以看到是对TicketStock()进行的判断,

image.png

点击即可跳转到相关方法,猜测这里表示奖券的库存,
image.png

可看到是返回的

return SuperGameMaster.saveData.ticket;  

再点击

image.png

搜索,然后一个一个找
image.png

这里大概为对奖券数量的初始化
image.png

这里可以修改奖券的初始值,参照开篇提到的教程,可改成一个比较大的值,但奖券终究有花完的一天,而且即使改成1000,花的也非常快,后面会讲到。 这里猜测还会限制奖券获得的数量,(所以那些玩正常版本的小伙伴们啊,有奖券赶紧花,最多就只能攒999个,手动滑稽)。
image.png

但这里要说就要说骚玩法,那就是开篇教程的第二种修改方式,将数量写死在代码里,因为已知抽奖的时候奖券是从SuperGameMaster.TicketStock()获取的,令其返回值为固定的数值。这里找到该方法,右键选择编辑IL指令。


image.png

选中第一条,删除


image.png

操作码换成ldc.14,说人话就是这个操作码可以改成各种整数(也许太大会溢出吧)这几个操作码有啥区别见图,这里改个大于5的数,够抽就行了,反正不会变,低调些就改个20吧,改完确定。

image.png

image.png

6.同理改可改上方三叶草逻辑,一样的操作一样的方法,不赘述

image.png

截至目前,第一阶段完成,基本可以玩耍了,打包签名后就尝试了一下(后续会提到如何打包签名)。

人总是贪婪的!曾经我也以为到这里就可以开心的玩耍了,开心地玩了几天,花不完的钱,抽不完的奖券,开心。
但是!!!随之而来的一些体验依旧让人感觉不爽:

所以开始了第二阶段的优化游玩体验:

首先,少了可玩性(虽然本来就没多少可玩的),如果把三叶草的值写死,采集三叶草就完全没有意义了,这里承接前文,再往上翻了翻,看到了这段代码:

image.png

接着猜测这里是采集三叶草的判断,修改为直接增加888,就可以在采集时直接增加888三叶草:

image.png

image.png

其次是抽奖券

  1. 无聊的重复性劳动:
    有了抽奖券只是可以去抽各种颜色的球,至于抽到什么颜色的球概率不同,比如黄球的概率极其低,这里如果像上文所说的把奖券改成一个大的数字,比如1000,可能抽完了也不一定能遇到黄球,青蛙还怎么能愉快的旅行!这就是为什么要改为一个固定值,可以无限抽。
    那么虽然现在可以无限抽了,但是抽奖这种事,目的是为了获得奖品,有时候为了多抽几个黄球的车票需要抽很久,这种枯燥无聊的重复性劳动,肯定不是我们想要的。
    有了这种需求,自己首先考虑了用自动化的方式去完成这种无聊的工作,此处借鉴了前段时间写的微信跳一跳外挂。用的安卓手机(苹果不了解),可以利用adb模拟点击来进行抽奖和随机的物品选择。写起来不难,大家可以自我尝试下,python实现还是挺容易的。这里承认自己代码写的比较糙,不够赏心悦目就不贴出来丢人了,实在有需要可以尝试留言或私信我啥的(虽然我不一定回,由于分辨率你的手机也不一定适用)。自己仅做了简单的实现和初步的不科学的统计,可能以后有空会考虑到球颜色精确识别和物品的精确选择吧,大致效果:

    image.png

  2. 有用球的概率奇低:
    有了上述改进依旧不能解决很难抽到小概率球的问题,比如黄球和红球,有时候脚本跑了个把小时,蓝球都好几十个黄球却只有两三个。于是接着翻翻,看看有没有什么新发现。
    这里游戏中对各种球的称呼为青玉黄玉啥的,这里尝试搜索一下“玉”,果然有发现。

    image.png

    往上翻发现了疑似各种球概率的定义(黄球1%……):
    image.png

    话不多说同样的方式尝试进行修改,
    image.png

    0x3c是60,0x1b是27,然后是9,3,1,找到对应的即可修改为想要的值,这里改成了1,24,25,25,25:
    image.png

    image.png

至此需求已经解决

其他:

这里貌似是来看望伙伴给礼物的概率,一般伙伴和稀有伙伴:
其实四叶草也还是有点用的,可以尝试改一改

image.png

image.png

这里貌似定义了青蛙的休息时间之类的,也可以尝试尝试,但也许会出现不可预知的问题

image.png

血量,旅行时间拍摄时间啥的。。。。啧啧啧,改完你的蛙就是旅行达人了,不过逻辑复杂说不定会出现未知的状况就没继续探究了
image.png

然后是打包与签名:
解包和打包用的apktool.jar:

apktool.jar d apkfile.apk
apktool.jar b path

签名用的signapk.jar,密钥找了个现成的:

signapk.jar pubkey selfkey signapk.apk signed.apk

所以全程是解包--修改--打包--签名--安装,缺一不可,工具还有更详细用法还是自行百度吧,或者留言私信我啥的,虽然并不一定能及时看到,看到也并不一定回:)
以上

题外:
如果遇到,路径\assets\bin\Data\Managed\没有Assembly-Csharp.dll这些的游戏,还能用这些方法吗?为什么同为unity游戏这个却没有?该如何入手?什么思路?感谢解答

image.png

参考:
http://gslab.qq.com/article-396-1.html
https://paper.seebug.org/519/
(本文大部分为原创,转载请注明出处谢谢)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容

  • 近期旅行青蛙这款游戏非常的火热,周围的朋友、家人都养了一只小青蛙。看到网上有人说这款游戏可以直接逆向编译,没有加密...
    MrYun阅读 2,853评论 0 2
  • 最近旅行青蛙风靡朋友圈 而我为了想给我的蛙蛙弄点好吃的(出去装逼),就萌生了反编译这个念头。 教程仅仅提供于学习 ...
    超威蓝猫l阅读 4,516评论 9 14
  • 粤剧,又名广东大戏。凡举粤剧,不得不提唐滌生;凡提唐滌生,又不得不提南海十三郎,而本文先自唐滌生讲起。 唐滌生,本...
    恺然阅读 1,955评论 53 21
  • 阑珊慵睡足,潺潺雨帘开。滴滴新红叶,点点雨花白。 何来秋良人,吹弦天地外。寂寂余此声,细细诉幽怀。
    十年以期阅读 384评论 0 0
  • 这家伙,一懒起来就止不住了!今天复试了,自我感觉很差。但是看面试老师的意思好像是:凑合过吧!还能离咋滴?到底是自己...
    Cheer_up阅读 187评论 0 1