# TravelFrog_Tool
对旅行青蛙游戏进行的软件反向编译工程项目,包括实现外挂、导出明信片等等作弊手段.....
# 写在前面的话
1.完整教程在[我的博客](http://www.cnblogs.com/yunlambert/p/8429125.html)里,可以前去观看。
2.关于下载的旅行青蛙版本,是我自己随便在网上搜索的一个apk,这个apk和破解关系不大。也建议有兴趣的朋友自己动手试一试。
3.自己修改的旅行青蛙apk,真机测试成功运行,没有问题。但是我也在博客里说了,自己修改的时候犯了一个小错误,导致抽奖券数量大于0的时候就不能抽了,所以自己修改的apk有这个bug,博客中提到了在修改的时候将**小于5改为小于0**就行了,请大家注意一下这一点!!近期忙完会修复这个bug。
4.若想真的享受这个游戏,还是把这篇教程当做技术学习看看吧,毕竟游戏还是挺好玩的。
# 旅行青蛙分析(Android篇)
近期旅行青蛙这款游戏非常的火热,周围的朋友、家人都养了一只小青蛙。看到网上有人说这款游戏可以直接逆向编译,没有加密;所以在搜索相关资料后花了一些时间进行逆向分析与修改。这篇文章里,我将介绍如何获取稀有明信片的方法以及如何逆向修改代码后得到破解版本的“旅行青蛙”游戏的方法。
## 获取稀有明信片
### 引入
我们在玩旅行青蛙的时候会发现,大部分小青蛙寄回来的明信片都很类似,即使有小伙伴(蝴蝶、青蛙、螃蟹、小老鼠),大家的动作都是很类似的。通过分析代码可以知道,这些明信片是自动合成的。意思就是,会有几个不同的背景模板、几个动物的动作模板,排列组合进行合成,生成**普通**明信片。而所谓的稀有明信片,就是非排列组合合成的,而是单独绘制的、精美的明信片。这里有稀有明信片的百度网盘[下载地址](https://pan.baidu.com/s/1gg9kfIF) 密码:F338。
### 步骤
下面介绍如何获取明信片,首先我们需要Android版旅行青蛙的安装包apk文件,网上有很多下载地址,或者直接从官方下载到手机里并用adb导出到电脑里来即可。不管你用什么方式,安装包获取后,将后缀名更改为rar或者zip压缩包的形式,再进行解压(解压后应该有assets、lib、res等等文件夹),这些解压后的文件实际上都是旅行青蛙游戏的代码构成部分。
然后我们需要用到Unity Studio,下载地址见[这里](https://github.com/YunLambert/TravelFrog_Tool/tree/master/Unity%20Studio),下载完成后直接在文件夹中运行Unity Studio.exe,左上角Load Folder,将../assets/bin/Data文件夹导入,会发现原来空的列表出现一大堆文件。按如图所示切换到右边的列表(Asset List):
![40.png](http://upload-images.jianshu.io/upload_images/7154520-6290d6df1bb57932.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
接下来按照Size进行排序,基本上就是游戏的图片构成以及模板:
![41.png](http://upload-images.jianshu.io/upload_images/7154520-e108301b31b9fee3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
经过长时间的搜寻会发现Size=525088就是我们要找的明信片形式:
![42.png](http://upload-images.jianshu.io/upload_images/7154520-03fd6988425f32d7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![43.png](http://upload-images.jianshu.io/upload_images/7154520-8f6a8e74c32b47ce.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
由上述两张图可以看出,第一张为稀有明信片、第二张就为普通模板(加上前面的一些小动物可以构成普通明信片)。我们先将所有Size=525088的图片全部导出:
![44.png](http://upload-images.jianshu.io/upload_images/7154520-9d3fef89e180ad5d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![36.png](http://upload-images.jianshu.io/upload_images/7154520-6c4157b1cb48dbfd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
经过一番本地的筛选,就可以获得所有的稀有明信片了,这里放上3张:
![tokusyu_09.png](http://upload-images.jianshu.io/upload_images/7154520-6bba46e8038b6b55.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![tokusyu_15.png](http://upload-images.jianshu.io/upload_images/7154520-ca59bcd6d47a231a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![tokusyu_13.png](http://upload-images.jianshu.io/upload_images/7154520-b456ac655bfde9de.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
## 逆向分析代码
### 引入
这里之所以选用Andriod的旅行青蛙进行逆向分析,一方面是因为旅行青蛙的Andriod比较好分析、是最简单的情况,一般的Unity3D游戏都会用一些保护将dll脚本加密的,如果是这样的话可能就需要调用hook函数来逐步分析、比较麻烦;另一方面是因为ios版本的旅行青蛙,会用到ll2cpp,不如Andriod好分析(利用dnSpy可以直接分析Andriod版本的C#脚本,代码易懂好分析)
### dnSpy分析C#脚本
在获取明信片的步骤里,我们已经将旅行青蛙的安装包apk文件进行了rar解压,这里就不需要另外操作了。
然后我们需要用到dnSpy软件进行反编译,dnSpy下载地址在[这里](https://github.com/YunLambert/TravelFrog_Tool/tree/master/dnSpy)。点击dnSpy.exe即可启动,我们需要查看的是游戏的C#脚本,路径为../assets/bin/Data/Managed/Assembly-CSharp.dll。反编译后直接就能显示代码:
当然我们玩过游戏,应该认识游戏中的日文字,搜索让我们输入小青蛙姓名的句子(搜索的快捷键为Crtl+Shift+K),就可以在CallTutorial找到屏幕上显示的句子和相应的代码:
![01.png](http://upload-images.jianshu.io/upload_images/7154520-6ecd37f4f755f344.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![02.png](http://upload-images.jianshu.io/upload_images/7154520-330ca9a1c1af1fe2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
### 修改“青蛙命名”句子的例子
我们先以修改为小青蛙取名字的句子做一个例子:在日文句子处右击选择编辑IL指令,熟悉的汇编语言就出现了!!
我们可以看到位于164行处LDSTR(即Load String把字符串加压入Evaluation Stack中)就是我们需要修改的日文句子,进行修改:
![03.png](http://upload-images.jianshu.io/upload_images/7154520-4836f4946d1d6029.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
修改为:
![04.png](http://upload-images.jianshu.io/upload_images/7154520-bf673b24bb74f3ae.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
点击确定,回到C#脚本代码界面就能看到原本的日文句子已经成功被修改成为自己修改的句子了,真机测试效果图将放在结尾处。
### 修改三叶草数量
**方法1:**
![05.png](http://upload-images.jianshu.io/upload_images/7154520-325c22bd84ed49dc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
分析代码,图中黄色圈出的部分是在购买时相关的。第一处为判断,当Clover(中文就是三叶草)的存储量比商品item的价格要大的时候就可以执行下面的操作;第二处是生成提示文本:"...是否要购买?",然后经过SetOnClick事件为True之后,就执行第三处的BuyItem()函数。所以我们可以轻易的判断出,三叶草的数量的减少肯定和BuyItem()函数这个函数有关,跳转到BuyItem()函数处:
![06.png](http://upload-images.jianshu.io/upload_images/7154520-72dccb2be63658b4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
图中黄色圈住的部分调用了getCloverPoint(-itemDataFormat.price),之后的函数为GetItem(..,1),意思是商品item数加1,表示已购买;根据函数逻辑,黄色圈住的部分就是减少三叶草数量的函数,传入的为-itemDataFormat.price,为一个负值;那么�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
对安卓版旅行青蛙游戏进行的软件反向编译工程项目,包括实现,导出明信片等等.zip代码完整下载可用。 对安卓版旅行青蛙游戏进行的软件反向编译工程项目,包括实现,导出明信片等等.zip代码完整下载可用。对安卓版旅行青蛙游戏进行的软件反向编译工程项目,包括实现,导出明信片等等.zip代码完整下载可用。对安卓版旅行青蛙游戏进行的软件反向编译工程项目,包括实现,导出明信片等等.zip代码完整下载可用。对安卓版旅行青蛙游戏进行的软件反向编译工程项目,包括实现,导出明信片等等.zip代码完整下载可用。对安卓版旅行青蛙游戏进行的软件反向编译工程项目,包括实现,导出明信片等等.zip代码完整下载可用。对安卓版旅行青蛙游戏进行的软件反向编译工程项目,包括实现,导出明信片等等.zip代码完整下载可用。对安卓版旅行青蛙游戏进行的软件反向编译工程项目,包括实现,导出明信片等等.zip代码完整下载可用。对安卓版旅行青蛙游戏进行的软件反向编译工程项目,包括实现,导出明信片等等.zip代码完整下载可用。对安卓版旅行青蛙游戏进行的软件反向编译工程项目,包括实现,导出明信片等等.zip代码完整下载可用。对安卓版旅行青
资源推荐
资源详情
资源评论
收起资源包目录
对安卓版旅行青蛙游戏进行的软件反向编译工程项目,包括实现,导出明信片等等.zip (2000个子文件)
ApkIDE_AndriodTravelFrog.apk 47.59MB
dex-tools.bat 3KB
d2j-dex-recompute-checksum.bat 826B
d2j-class-version-switch.bat 824B
d2j-decrypt-string.bat 822B
d2j-jar-weaver.bat 818B
d2j-jar-access.bat 818B
d2j-dex-weaver.bat 818B
d2j-jasmin2jar.bat 816B
d2j-jar2jasmin.bat 816B
d2j-dex2jar.bat 816B
d2j-std-apk.bat 815B
d2j-asm-verify.bat 815B
d2j-dex2smali.bat 813B
d2j-apk-sign.bat 813B
d2j-baksmali.bat 813B
d2j-jar2dex.bat 813B
d2j-smali.bat 810B
d2j_invoke.bat 312B
FragmentManagerImpl.class 44KB
PatternsCompat.class 44KB
ViewPager.class 33KB
Fragment.class 26KB
DrawerLayout.class 22KB
zza.class 21KB
NestedScrollView.class 20KB
UnityPlayer.class 19KB
zzd.class 19KB
zzba.class 18KB
AccessibilityNodeInfoCompat.class 18KB
FragmentTransition.class 17KB
SwipeRefreshLayout.class 16KB
SlidingPaneLayout.class 16KB
FragmentActivity.class 16KB
zzak.class 15KB
zzq.class 15KB
zzd.class 14KB
ViewCompat.class 14KB
ViewDragHelper.class 14KB
ExploreByTouchHelper.class 14KB
BackStackRecord.class 13KB
zzx.class 13KB
MediaSessionCompat$MediaSessionImplBase.class 11KB
ViewCompat$BaseViewCompatImpl.class 11KB
MediaBrowserCompat$MediaBrowserImplBase.class 11KB
NotificationCompatJellybean.class 11KB
NotificationCompat.class 10KB
MediaBrowserServiceCompat.class 10KB
zzbm.class 10KB
AbstractAdViewAdapter.class 10KB
NotificationCompat$WearableExtender.class 9KB
NotificationCompat$Builder.class 9KB
zzaq.class 9KB
MediaSessionCompat.class 9KB
zzi.class 9KB
FragmentTransitionCompat21.class 9KB
m.class 9KB
PrintHelperKitkat.class 8KB
MediaBrowserCompat$MediaBrowserImplApi21.class 8KB
zzd.class 8KB
FloatingView.class 8KB
MediaMetadataCompat.class 8KB
zzag.class 8KB
AccessibilityNodeInfoCompat$AccessibilityNodeInfoStubImpl.class 8KB
MediaControllerCompat$MediaControllerImplApi21.class 8KB
zzbs.class 8KB
PagerTitleStrip.class 8KB
IMediaSession$Stub$Proxy.class 8KB
NotificationManagerCompat$SideChannelManager.class 8KB
LoaderManagerImpl$LoaderInfo.class 8KB
LoaderManagerImpl.class 8KB
PlaybackStateCompat.class 8KB
AdvertisingIdClient.class 7KB
MediaControllerCompat.class 7KB
zzbt.class 7KB
LinkifyCompat.class 7KB
IMediaSession$Stub.class 7KB
MaterialProgressDrawable.class 7KB
FragmentHostCallback.class 7KB
ColorUtils.class 7KB
FileProvider.class 7KB
ArraySet.class 7KB
ViewPropertyAnimatorCompat.class 6KB
HttpClient.class 6KB
MediaDescriptionCompat.class 6KB
FragmentTabHost.class 6KB
zzab.class 6KB
MediaControllerCompat$MediaControllerImplBase.class 6KB
GestureDetectorCompat$GestureDetectorCompatImplBase.class 6KB
ModernAsyncTask.class 6KB
NotificationCompatApi24$Builder.class 6KB
MediaSessionCompat$MediaSessionImplApi21.class 6KB
DialogFragment.class 6KB
zzbc.class 6KB
DrawableWrapperGingerbread.class 6KB
DynamicHeightSearchAdRequest$Builder.class 6KB
AdOverlayInfoParcel.class 6KB
ActivityOptionsCompat.class 6KB
LocalBroadcastManager.class 6KB
NotificationManagerCompat.class 6KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
程序员张小妍
- 粉丝: 1w+
- 资源: 2645
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功