HOOK是越狱的最终目标,目的是给应用添加功能如插件或者是更改应用的某个功能来满足我们的需求,如微信中添加抢红包插件。本文将以最近比较火的“快看”漫画为例子去除付费漫画中的收费弹窗,实现免费看漫画的功能,然而当我去除弹窗时,才发现是我想多了。。。。,不多说了,下面我将一步一步详细解析如实现去出收费弹窗的步骤。(一下都是基于非越狱设备上实现的)

首先,需要一个已经破壳并且重新签名的的“快看”漫画的IPA,如果还不清楚如何制作,请看上篇这里 IOS逆向笔记之重新签名(非越狱)。注意,从appstore直接下载下来的应用是不能用的,因为无法破壳也无法重新签名。其次是HOOK中要用到的工具:

界面调试工具Reveal,用来查看应用的界面。这个是付费版,破解版自己网上找去吧,这里就不方面放上去了。

Hopper 是将二进制文件转为汇编语言和OC语言的工具。功能很强大,但看起来比较难,需要多次使用才能看懂里面的代码逻辑。这个软件也是收费的。其中二进制文件是在对应的app文件内,右键显示包内容,从里面可以看到一个于与app同名的一个二进制文件,就是它了,如快看的app文件是Kuaikan.app,它的二进制文件就是Kuaikan。

下载Cycript的脚本文件:Cycript下载。并解压文件,解压后如下图:

Cycript 的功能是在运行时动态的更改对象的属性或者调用方法,能够帮助我们快速的定位到们需要的某个类或者某个属性。

最后一个工具是AloneMonkey这是最重要的一个工具,很好用,把各种越狱需要到的工具都集成到了xcode里面。集成了theos+Tweaks+Reveal.framework +Cycript +class-dump+CaptainHook。它的作用是用来动态HOOK 应用中的函数,我们所有的HOOK逻辑都在这个创建的工程里面写,以及配置Reveal和Cycript。下面说一下AloneMonkey的安装方法:

第一步,安装theos:

安装最新的theos
   sudo git clone --recursive https://github.com/theos/theos.git /opt/theos

第二步: 安装ldid

brew install ldid

第三步:安装AloneMokey

git clone https://github.com/AloneMonkey/MonkeyDev.git
  cd MonkeyDev/bin
  sudo ./md-install

卸载:sudo ./md-uninstall

更新:sudo ./md-update

安装成功后,打开xcode,可以看到如下界面:

点击MonkeyApp创建工程。具体集成步骤请参考这里Monykey集成。创建成功后,目录如下:

创建后注意几点:依赖需要手动添加一下在build phases-->target dependencies,reveal的framework需要更换你所安装的reveal中的framework,class-dump需要手动开启。工程只能在真机上运行,模拟器不支持,因为硬件不一样,模拟器上无法执行。

接下来进入主题,选择真机,点击run开始运行工程,同时打开reveal,查看的app图标是否显示。若成功,如下图:

注意,核心步骤来了。首先保证iphone和Mac处于同一个局域网并且程序当前在运行态,条件缺一不可,然后终端下进入刚才解压的Cycript的目录下根据sokec(ip:端口)t连接手机,从而实现Cycript的动态注入代码。连接成功后如下图:

至于cycript的语法这里就不多说了。详情请官网学习。

然后手机进入到收费动漫的页面,如下图:

这里可以看到,上面有一个弹窗遮住了后面的漫画内容,如果能去掉弹窗,岂不是能看到后面的漫画,那不是美滋滋。。。。。好,那我就动手了。最开始我的思路是这样的,首先定位到这个页面的视图控制器controller,然后再通过Hopper看看是通过那个方法打开的弹窗,只要重写那个方法就行了。。。后来发现并不能找到弹窗的方法,于是放弃了这种思路。通过一段时间的琢磨,在reveal上发现,其实上面的弹框是组合空间,并且是同级的控件。因此,只需要找到它们共同的父view,在便利自 view,去除弹框就行了。第一步还是定位到当前的controller,第二步获取弹窗父 view,第三步将弹窗的view的alpha值设为0就行了。

reveal分析:

Cycript实现:

这样就能去除弹窗了,效果如下:

知道了如何能去除弹窗,就只剩下最后一步了,在monkey程序中实现刚才在cycript中的逻辑,可以在xxxDylib.m中修改,也可以在xxxDylib.xm中修改,区别是.m中用的是CaptainHook实现,而xm中用的Tweaks实现。这里我选择使用CaptainHook实现,代码如下:

到这里,就结束了。我以为一切都和我预期的一样,然而,残酷的是。。。。。。。。。

只能看一画。。。。。。

IOS逆向笔记之HOOK实现(非越狱)相关推荐

  1. iOS逆向(4)-代码注入,非越狱窃取微信密码

    利用LLDB对微信进行分析,然后利用分析的结果,再逐步讲解如何Hook微信的登录过程,截获微信密码. 在上一篇文章(APP重签名)中,已经介绍了如何对APP重签名,并且利用XCode将微信跑起来,既然 ...

  2. iOS逆向之反HOOK的基本防护

    iOS逆向之Method Swizzle iOS逆向之fishHook原理探究 iOS逆向之fishHook怎么通过符号找字符串 学习完上面的文章后,深感fishhook之强大,既然fishhook能 ...

  3. iOS 逆向-非越狱手机Hook App

    引子 由于对iOS逆向分析很感兴趣,所以也花了很长一段时间学习了iOS逆向相关知识,并积累了一些相关经验, 这几天又到看雪论坛逛了一下,看看最近有没有什么大牛分享心得成果的!还真让我看到一篇有意思的文 ...

  4. iOS 逆向 - 收藏集 - 掘金

    分分钟让你在 微信运动 霸占榜首 - iOS - 掘金 为了纪念我失去的已越狱iPad, 不得不写点什么. 所以...以下内容 不需要越狱. 微信运动 6万步是什么概念,我不知道,因为我没走过,不过有 ...

  5. 不上架App Store怎么安装到非越狱苹果手机使用

    很多开发者打包了ipa却不能安装,因为ios不像安卓打包出来就能安装,如苹果手机没越狱,需要提供特定的ios证书打包的ipa才能安装到手机使用. 有两种ios证书可以实现 1.ios开发者证书(个人和 ...

  6. 专注于非越狱环境下iOS应用逆向研究,从dylib注入,应用重签名到App Hook

    专注于非越狱环境下iOS应用逆向研究,从dylib注入,应用重签名到App Hook. 注意!本文所有操作均在以下环境下成功进行,不同平台或环境可能存在某些问题,欢迎大家在issue中提出问题以及相互 ...

  7. iOS冰与火之歌番外篇 - 在非越狱手机上进行App Hook(转载)

    作者简介:郑旻(花名蒸米),阿里巴巴移动安全部门资深安全工程师,香港中文大学移动安全(Android & iOS)方向博士,曾在腾讯.百度以及硅谷的FireEye实习.在博士期间发表了多篇移动 ...

  8. iOS冰与火之歌番外篇 - 在非越狱手机上进行App Hook

    作者简介:郑旻(花名蒸米),阿里巴巴移动安全部门资深安全工程师,香港中文大学移动安全(Android & iOS)方向博士,曾在腾讯.百度以及硅谷的FireEye实习.在博士期间发表了多篇移动 ...

  9. iOS逆向工程——非越狱调试

    其实iOS的逆向分析业界已经十分成熟了,网上也有许多有趣的尝试(一步一步实现iOS微信自动抢红包(非越狱).本文着重于如何在非越狱机器上进行调试,出于学习及总结的目的,记录于此. 本文以破解游戏梦幻西 ...

最新文章

  1. 二十、Threaded I/O模型
  2. ABAP源码--当前及可用库存查询
  3. LiveVideoStack线上分享第三季(十三):腾讯云LiteAVSDK演进之路
  4. 如何使YouTube视频连续循环播放
  5. 如何跨服务器访问html 页面,html页面如何跨域访问另一页面内容,并将部分内容呈现出来?...
  6. Java:面向对象编程
  7. [python]上传文件验证
  8. 原型模式(深克隆、浅克隆)
  9. 百度原创度在线检测_码迷:您有114份百度SEO核心搜索专利等待领取
  10. c++正则表达式regex_match和regex_seach使用
  11. magicbook java开发_荣耀MagicBook2019 Intel版值得买吗 MagicBook2019 Intel版笔记本详细评测...
  12. linux 内核PCI驱动总结记录
  13. 尼基塔·丹尼诺夫《梦想者》
  14. cad剖切线的快捷键_Auto CAD2016剖面线快捷键是什么呢??
  15. C 语言吧 · 问题资料大全
  16. 使用注册表编辑win10鼠标右键菜单,详细解释(右键文件夹、文件以及右键空白区域下三种情况)
  17. 小忽视大问题:4.8通过 Apple 登录
  18. 【比亚迪半导体】关联销售占比超过50%,关联销售毛利率是非关联销售的一倍
  19. 服务器上蓝色常亮灯是干什么的功能作用
  20. 关于TNS(时序裕量)的调整

热门文章

  1. Linux unrar命令如何按目录解压rar文件
  2. URIError: URI malformed
  3. 完爆90%的性能毛病,收好数据库优化八大通用绝招
  4. vue 实现上拉加载
  5. 【PMP考试最新解读】第七版《PMBOK》应该如何备考?(含最新资料)
  6. mp4文件播放不了怎么办?
  7. QQ好友列表树形列表简单实现方式
  8. 垃圾收集器面试总结(一)
  9. Window API ShowWindow
  10. docker使用alpine镜像