iOS非主流逆向初探

Posted by 共田君的博客 on April 1, 2017

“逆向”一直是一个貌似很黑科技的词,一直不敢去碰,等到真正接触到的时候却发现是如此的有趣,正如ios逆向应用中说到的一样,站在高处查看着城堡里面的构造,你只需要知道自己想要的是什么,然后直接去取就是了。

首先没有价值的app是不会有人去逆向的,只有它存在一些价值才有人想去看清里面的一些门道,黑白科技是相互促进的,如果没有黑科技,正向开发将是枯燥的乏味的。

以上是两周越狱研究的一点心得,并不传授技术,只是传授心法,仅供参考!

为得到APP添加一些截屏分享功能

罗辑思维最近很火,得到上面的订阅也很火,于是有了各种各样的讨论组,大家进来无非就是舍不得订阅那么多产品,然后又想有个途径来获取这些资源,而官方的红包能分享的名额是有限的,于是产生了一种方便自己分享的冲动,以下仅供个人爱好,在得到的基础上开发了几个简单的功能。

首先看看效果图 得到新功能

问题核心

  • 首先如何根据ipa文件得到一个新的ipa文件,并且在里面添加功能代码 可以查看并运行 DEMO IPAPATCH
  • 如何长截屏
  • 如何获取里面的html文件 ###解决问题 xcode真机打包运行一般iOS开发都会,里面的基本流程是编译,打包,运行安装到手机。在此基础上还需要了解一点,编译前,可以执行一个shell脚本。这是个重点,shell脚本可以做很多事情,其中一个就是写个脚本把刚刚生成的app里面的文件整体替换掉,并且如果要添加自己的代码可以重新链接里面的framwork,或者.a的形式把自己的代码附加进去之后整体打包运行。

要注意的是需要破壳去除加密,ipa文件解包之后是一个app文件和几个跟打包相关的文件。怎么破壳或如何得到破壳后的ipa文件,下回分析。

经过上一步假设安装包已经能运行了,接下来的分析就开始了,你肯定会想做很多事情,想看看里面的网络情况,虽然是https的方式,想知道ui架构,想得到json,想查看沙盒内容,想把自己的订阅分享给其他人,另外还想把自己的截图带上自己的推广信息比如文章最后的图片。

想归想,如何得到获得长截图,大家都能找到截图的方法,可是有谁知道不同的view类型的截图方式是不一样的,view,scrollview/tableview,wkwebview,都是不一样的,提示到此大家可以自己去分别找了不同的方法了,提示一点是wkwebview比较麻烦,可以找找私有方法。得到文章详情页面是一个wkwebview。

以上的方法可以在不了解代码细节的方向上可以实现,但是得到html确是一个技术活,寻找突破口,不同的人找到的突破口可能是不一样的,但是能最终拿到数据,为了运行效率把html数据以文件的形式保存起来,分享的时候读取这个文件的url

最后就是分享的实现了,activitycontroller是个好东西,通过airdrop可以直接分享到mac电脑或其他手机,如果安装了印象笔记,也可以直接分享到印象笔记。如一句话给成本下定义

开发环境

  • mac os 10.12

开发工具

  • xcode8.2.1
  • sublime text
  • HopperDisassemble v4(反汇编工具)
  • reveal 分析UI结构
  • PP助手 获得砸壳后的app
  • iSign 签名

效率工具

参考文档

薛兆丰北大经济学 第023讲-谁用得好就归谁