野火🔥

生命如野火,骄傲而顽强

iOS hook实践(2)---入门插件实现

本文主要介绍了一个针对第三方app的自动操作插件的开发,多是入门级的基础知识,有利于获取兴趣,并且这个插件也确实解决了我的实际问题。
本文也是文章在iOS下为他人App开发自动化操作插件,实现挂机操作(1)后续的第二篇,着重介绍如可使用简单的逆向工程知识在实现一个越狱插件方便我们自己的日常。

一、准备知识

  • 1、iOS越狱后,每个app在启动时候通过unix系统的dlopen指令,将在/library/mobilesubstrate/dynamiclibraries中的dylib动态库,根据同名的白名单plist文件,动态load进入内存,该动态库load完成后获取和app中代码相同的权限,hack的入口即在这里。
  • 2、如何编写一个动态库,请参考我的另一篇博客, 自己动手在xcode6下编写dylib动态库文件,本文不做重复描述。
  • 3、针对app做ui层的一些研究和操作,最好的一个工具就是Flipboard开源的工具FLEX,我之前写过博客,如何将FLEX封装成一个可用的dylib,实现在越狱机器上任意查看研究别人的app,使用iOS UI分析工具reveal和FLEX查看任意app。开发好的这个FLEXDYLIB.dylib可以用于研究别人app的ui布局,NSUserDefault、sqlite等文件的存储,各个类h文件的成员变量和成员方法,h文件的名称,以及http协议的网络拦截。功能非常强大,是居家旅行,杀人越货必备。该工具大量使用Objective-c的runtime特性来获取成员变量、成员方法,通过响应链传递机制,nsurlprotocol来进行ui分析和网络拦截,在以后的文章我会对FLEX的源码结构以及一些关键的实现进行研究和分析。
  • 4、charles,mac系统下面最好的http代理工具,能够拦截http协议、https协议,通过协议可以分析出常见app在按钮点击和页面跳转过程中进行了哪些网络操作,逆向分析出其主要的实现逻辑,有针对性的进行hack。关于charles如何使用,业界前辈大牛唐巧有系列文章,可以自行google。

二、需求来源

最近在搞p2p投资,最大收益是每次投资100元,获得红包后分享,然后抢到的红包再做刮奖,用最终得到的收益做下一轮投资,整个过程非常复杂,耗时很长,hack其app做自动化插件非常必要。

三、开搞,个人抽象出来了四个部分

此处先mark住,显示提纲,稍后充实

1、局域网http请求拦截和研究

得出结论,分享部分可以通过访问固定接口直接使用。投资部分太复杂,而且有加密sign,没法直接模拟。刮奖部分需要先获得token(基本固定),然后就能模拟。

2、ui研究

确认在投资部分一定要写UI自动化组件了,此处开始逐级研究其各个界面。

3、app本地网络拦截,截获需要的token

4、接上,截获个人投资的网络回包,计算收益率

Categories:  技术 

« 好奇心日报iPad版的分屏适配实现 iOS数据的磁盘缓存实现 »