本文作者:aaaasss

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

下面就开始了此次的心路历程:

首先是看到了

https://paper.seebug.org/519/,参照其中

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

2.得知此类游戏为unity3d开发后(好像和传统的安卓逆向有些不同),在代码未混淆加密的情况下可以用.net的逆向工具dnspy分析其中的dll文件。 很幸运这里没有加密。工具自行百度吧,从官网还是挺好下的。这里稍稍拯救下伸手党:点此下载。

打开Assembly-Csharp.dll后大概长这样。 如果为英文看着比较费劲,可以在视图中切换成中文。

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

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

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

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

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

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

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

可看到是返回的

return SuperGameMaster.saveData.ticket;  再点击

搜索,然后一个一个找

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

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

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

选中第一条,删除

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

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

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

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

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

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

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

其次是抽奖券

1.无聊的重复性劳动:

有了抽奖券只是可以去抽各种颜色的球,至于抽到什么颜色的球概率不同,比如黄球的概率极其低,这里如果像上文所说的把奖券改成一个大的数字,比如1000,可能抽完了也不一定能遇到黄球,青蛙还怎么能愉快的旅行!这就是为什么要改为一个固定值,可以无限抽。

那么虽然现在可以无限抽了,但是抽奖这种事,目的是为了获得奖品,有时候为了多抽几个黄球的车票需要抽很久,这种枯燥无聊的重复性劳动,肯定不是我们想要的。

有了这种需求,自己首先考虑了用自动化的方式去完成这种无聊的工作,此处借鉴了前段时间写的微信跳一跳外挂。用的安卓手机(苹果不了解),可以利用adb模拟点击来进行抽奖和随机的物品选择。写起来不难,大家可以自我尝试下,python实现还是挺容易的。这里承认自己代码写的比较糙,不够赏心悦目就不贴出来丢人了,实在有需要可以尝试留言或私信我啥的(虽然我不一定回,由于分辨率你的手机也不一定适用)。自己仅做了简单的实现和初步的不科学的统计,可能以后有空会考虑到球颜色精确识别和物品的精确选择吧,大致效果:

2.有用球的概率奇低:

有了上述改进依旧不能解决很难抽到小概率球的问题,比如黄球和红球,有时候脚本跑了个把小时,蓝球都好几十个黄球却只有两三个。于是接着翻翻,看看有没有什么新发现。

这里游戏中对各种球的称呼为青玉黄玉啥的,这里尝试搜索一下“玉”,果然有发现。

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

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

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

至此需求已经解决

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

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

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

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

apktool.jar d apkfile.apkapktool.jar b path签名用的signapk.jar,密钥找了个现成的,或者用别的工具也可以只要签名了就行:

signapk.jar pubkey selfkey signapk.apk signed.apk

下载链接:

https://github.com/iBotPeaches/A … 1/apktool_2.3.1.jar

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

题外:

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

参考:

http://gslab.qq.com/article-396-1.html

https://paper.seebug.org/519/

专栏

转载于:https://www.cnblogs.com/ichunqiu/p/8480317.html

旅行青蛙逆向破解的自我实践之旅相关推荐

  1. 【末世旅行之逆向破解】破解三国杀脚本,免注册码无限时间全功能使用

    找到的一个挺不错的三国杀脚本,支持全游戏模式,可以刷胜率,百胜,经验等,但是需要注册码才能使用 尝试着破解一下 原程序:http://download.csdn.net/download/q14256 ...

  2. Exp1 PC平台逆向破解(5)M

    Exp1 PC平台逆向破解(5)M 实践内容 实践对象是一个可执行文件pwn1 本程序的正常执行顺序应该是main函数调用foo函数,foo函数输出用户输入的字符串. 本程序还包含了另一个代码片段ge ...

  3. 20155220 吴思其 《网络攻防》 Exp1 PC平台逆向破解(5)M

    20155220 <网络攻防> Exp1 PC平台逆向破解(5)M 实践内容 通过对实践对象--20155220pwn1的linux可执行文件的修改或输入,完成以下三块: 手工修改可执行文 ...

  4. 《旅行青蛙》反编译/破解过程

    Copyright@M4x, 小学生 from 10.0.0.55 原文地址: 这篇博客是应学姐之邀给学弟学妹写的扫盲教程,较为基础 前言 破解旅行青蛙的初衷很简单,女朋友想养青蛙,三叶草长得太慢,作 ...

  5. 旅行青蛙——手游破解究竟需要多少成本

    简介 本文介绍最近比较火的一款小游戏(其实已经热过了)旅行青蛙,透过它来看看一款U3D游戏被破解究竟需要掌握哪些知识. 游戏介绍 旅行青蛙是最近一段时间比较火的一款Unity制作的休闲小游戏,游戏没有 ...

  6. 旅行青蛙破解 无限复活草+抽奖+diy

    汉化破解版资源(无尽三叶草与点券):楼主自己做了一份,需要的可以直接去github上面下载: https://github.com/dongfengxue/apk.git 破解方法: 工具: 1,AP ...

  7. 旅行青蛙破解汉化教程——蹭个热度

    汉化破解版资源(无尽三叶草与点券): https://github.com/wisdombyzf/lxqw/blob/master/lxqw_zf.apk 截图: 破解方法: 工具: 1,APKIDE ...

  8. 旅行青蛙(旅かえる)逆向笔记

    温馨提示:阅读本文你的电脑需要安装好apktool.signapk..NET Reflector.dnSpy.他们都可以在github或吾爱云盘上获取. 一.APK结构 旅行青蛙是个Unity的游戏. ...

  9. 旅行青蛙分析(Android篇)

    近期旅行青蛙这款游戏非常的火热,周围的朋友.家人都养了一只小青蛙.看到网上有人说这款游戏可以直接逆向编译,没有加密:所以在搜索相关资料后花了一些时间进行逆向分析与修改.这篇文章里,我将介绍如何获取稀有 ...

最新文章

  1. 深入理解JVM之二:垃圾收集器概述
  2. caffe的prototxt文件
  3. 360安全卫士核心改名ZhuDongFangYu.exe
  4. 51nod 1307 绳子与重物 二分+dfs / 并查集
  5. c语言程序输出时有没有分号,问什么C程序里总是提示缺少分号;,而明明有分号?...
  6. 和push的区别_RocketMQ的消息订阅push和pull的区别
  7. hadoop本机运行 解决winutils.exe的问题
  8. java经典问题算法大全_10道java经典算法!每一题都能提升你的java能力!
  9. 如何更好对数据做分析
  10. 编辑距离Edit distance
  11. 【卫朋】硬件创业:营销与开发同行
  12. 链接mysql 504_phpMyAdmin错误代码:504 MySQL查询
  13. MySql 新增数据
  14. xp证书错误补丁_爱思助手 IPA 签名功能常见问题汇总,安卓软件修复南瓜影视无法播放问题,新增皮皮虾xp版,内置皮皮虾伴侣!...
  15. dne服务器没检测到有响应,设备或资源dns没检测到有响应 网络无法连接
  16. linux的scp命令突然速度变慢,scp连接缓慢的解决方法
  17. 【Linux】SOCKET编程
  18. javaScript搜索框
  19. 云服务器CPU Intel Xeon Platinum 8163(Skylake)处理器性能评测
  20. C++ typedef用法小结(挺好)

热门文章

  1. fre740变频器参数_三菱FR-E740变频器简介.doc
  2. ssm框架可以不用ajax,SSM框架关于后台返回JSON数据中显示很多不需要的字段为NULL...
  3. 【微服务设计】第二篇 :演化式架构师
  4. Logit-Probit中的交乘项及边际效应图示
  5. RabbitMQ详解及集群搭建
  6. 高压电缆感应式取电电源分析及设计
  7. idea中有关Java对象创捷和打印的快捷键
  8. Ubuntu登陆不进去(已解决)
  9. 演进分组系统的几个概念 EPS/EPC/SAE/LTE/EUTRAN
  10. 虹科案例 | EtherCAT运动控制器与IO在半导体封装设备固晶机上的应用