iOS逆向开发--远程

逆向开发对于一直从事iOS开发和JAVA服务端开发的我来讲完全是一片未知领地,之前也有看过很多类似的文章,大概的过程就是:

1、从越狱手机中通过dump decrypted进行砸壳;
2、使用class-dump从脱壳的app中导出头文件;
3、通过Cycript对目标app进行界面、逻辑分析,或者使用Reveal进行界面查看;
4、对于无法猜想的逻辑或者难于分析的逻辑使用IDA、Hopper进行分析,查看ARM汇编代码;
5、使用theos来hook目标函数,修改其实现逻辑,或者插件开发;
6、打包app进行重签/发布deb插件包;

对于上面的步骤,走下来还是要花些功夫的,但是对于大部分开发者来讲,逆向的话还是应该把精力集中在逆向分析和逻辑实现上,所以,我使用了如下的步骤:

1、从某助手上面下载破解版的IPA文件,解压获取脱壳后的APP;
2、使用MonkeyDev进行头文件的获取及调试;
3、使用FELX进行界面和函数分析(个人感觉比较高效);
4、对于无法避免的函数实现使用IDA进行分析;
5、使用CaptainHook进行hook;
6、使用MonkeyDev进行打包和重签;

今天的这篇文章就基于MonkeyDev进行分析和实现,因为它可以让我投入更多的经理在分析上,而不是砸壳、导头文件、打包、签名等,同时使用FLEX也是同样的道理,一切都是为了效率。

MonkeyDev大家可以直接到github上面查找安装教程和部分使用方式,这里直接从项目入手,总结分析的过程,或者说叫回顾,因为之前分析的过程并没有进行图片等保存。

首先新建项目,选择MonkeyApp
iOS逆向开发--远程_第1张图片
WX20180523-113136.png

打开项目之后,可以看到如图所示的目录结构,我们选择TargetApp,右键选择Show in finder,打开TargetApp的目录,把从某助手下载的目标IPA解压后,把Payload文件夹下的app文件拖到TargetApp目录中


iOS逆向开发--远程_第2张图片
WX20180523-113505.png

现在,选择我们的项目,在TARGETS里面选中我们的APP,同时在右侧的Build Settings中搜索monkey,在搜索结果中把第二项和第四项修改为YES(第二项修改为YES的话就会导出头文件到当前文件夹,第四项是还原符号表)


iOS逆向开发--远程_第3张图片
WX20180529-092748.png

好,这个时候其他的我们就不做了,直接运行一下项目,发现APP会被安装到自己的手机上,同时,查看Target.plist,已经获取到了目标APP的各种信息,留下备用


iOS逆向开发--远程_第4张图片
WX20180529-092529.png

未完待续

你可能感兴趣的:(iOS逆向开发--远程)