前言
额,端午期间偶然下载了一款游戏 'FC时代',它是一款相似游戏模拟器同样的应用,里边提供了游戏应用商店,能够下载,游戏仍是蛮多的。大部分都是童年时代小霸王游戏,都是童年的回忆啊。html
这些游戏画面,音质模拟的很是像之前小霸王插卡游戏,甚至之前动不动碰一下卡死机,这种现象也模拟出来了,玩着有时候会卡死。。。及时存档吧。。。git
就这样玩了玩,可是发现不充钱只能玩一个游戏。在玩第二个时候就出现弹框让去充钱,不充钱就不让玩。钱不是不少,查了查,贴吧有人说充钱了还玩不了。github
忽然有了个想法破解它!sass
所以有了这两篇教程,这篇打算先介绍逆向开发工具的使用。支持非越狱机器安装。下篇教程打算介绍下这款游戏的破解。app
工具
IPASearch
- 功能:
一款用来下载pp助手等脱过壳的ipa文件。
脱壳:正常appStore下载的ipa文件是有外壳的,外壳就是一种加密方式将app的可执行文件进行混淆加密等。pp助手等是脱过壳的ipa,方便逆向开发
下载地址
- 使用:
使用很简单按照gitHub上的提示下载ipa便可
- 注意:下载完成后必定要将文件名字改为app.ipa,否则后续过程会报错。
IPAPatch
-
功能:
能够用来代码注入,hook原app,支持真机联调等。工具
-
配置:开发工具
- 将下载的工程文件中Assets目录下放入pp助手上下载的app.ipa文件(命名改写成app.ipa)
- 考虑是否用Reveal功能,若是用就在IPAPatch-master/Assets/Frameworks路径下放入RevealServer.framework(可选,framework的获取看下边Reveal部分)
- 打开工程,修改options.plist文件中的RESTORE_SYMBOLS值为NO
- 将target -> IPAPatchFramework中的compileSources中的IPAPatchEntry.m文件移至最后一位置
- 修改bundleId,选择一个能够在真机神运行的证书,开始run。
- 经过后添加JRSwizzle三方类,在IPAPatchFramework中的compileSources中添加这个三方类,以后开始编写hook代码。
-
使用:
将上面下载的ipa文件放到IPAPatch-master/Assets路径下便可。
下载地址加密
Reveal
- 功能: 能够方便查看要逆向的app的图层,支持wifi,数据线两种方式,也就是咱们可手机和电脑不连接数据线也能够查看该app的图层。
- 配置: 首先安装应用到mac,而后显示包内容Contents/SharedSupport/tvOS-Libraries/RevealServer.framework将这个framework复制一份粘贴到IPAPatch工程中的IPAPatch-master/Assets/Frameworks路径下便可
- 使用:只要当前要逆向的app中已经加入了RevealServer.framework,而且已经打开了这个app那么打开mac端的Reveal这款软件便可查看图层。 下载地址:
完成以上步骤便可运行app,选择一个能够在真机运行的证书,运行试试看吧。查看图层等,随意查看三方app。翻译
hopper disassembler
- 功能:
一款强大的将机器码翻译成汇编并附带oc伪代码。经过分析这些汇编伪代码来慢慢的逆向app。
- 加载ipa:
打开软件。将以前的app.ipa文件复制一份,将副本后缀改为.zip在解压出来文件夹。将app文件夹打开查找Payload文件夹,下边就是无后缀的app将这个文件复制粘贴到桌面备用,而后将副本拖动到hopper disassembler界面中,一路点击肯定便可。
- 使用:
左侧有搜索栏能够搜索方法,类名等。点击方法后能够在右侧看到具体的机器码以及汇编等伪代码。点击上边的if(b) f(x);按钮便可分析伪代码。点击的时候有可能顶部出现黄条警报,这是由于该软件还没处理完机器码,等等就行了。
下载地址htm
总结
利用这种办法不只能够查看别人app的图层,伪代码,分析。还能够进行应用双开,多开,改个bundleID的事。