美文网首页
iOS逆向之介绍

iOS逆向之介绍

作者: 听木子说心语 | 来源:发表于2023-08-29 15:58 被阅读0次

上一篇文章地址:iOS逆向之手机越狱

写了上篇文章后,有位朋友给我留言,iOS 11.0 - 12.4越狱工具
iOS 11.0 - 12.4 用这个更工具更方便.如果你的设备是iOS 11.0 - 12.4系统,可以了解一下这个工具.感谢这位朋友的推荐.

  • 我在上篇文章介绍了iOS逆向的准备及如何进行iOS越狱;
  • 如果大家对iOS越狱不清楚的话,大家一起解决越狱问题;
  • 如果你有任何好的建议,也可以给我留言,我会及时回复大家;
  • 本篇文章是介绍iOS逆向的介绍

如果掌握了逆向技术,就如上图一样,应用在你的面前就是透明的,可以俯瞰城堡,所以学习前,我们要对逆向有所了解,才能更好的掌握逆向技术.

1.iOS逆向学习具备条件

  • iOS正向开发者
    对iOS语言的了解,界面组件,应用依赖库(第三方库),对代码轻松定位及分析;
    汇编知识积累,这是我之前写的汇编文章(汇编系列文章);
    底层知识了解;
    文件系统结构的了解;
    逆向工具的使用,这是我之前写的工具文章(逆向工具集1,逆向工具集2)

  • 逆向爱好者
    已经积累了其他平台的逆向经验,对iOS逆向也产生兴趣

  • 想学习的爱好者
    在这里,同样鼓励学习.

2.iOS逆向工具

  • 逆向过程说实话是枯燥的,有兴趣一定要尝试研究下去,一定要亲自动手.
  • 如果你想做好逆向,对应用或者插件分析,没有好用的工具,分析起来是非常困难的.
  • 在这里提前给大家介绍一下逆向工具.
    这是之前写的工具文章,(逆向工具集1,逆向工具集2),文章中用到工具已经足够,如果你还有更顺手的工具,那就更好了.
  • 如果你有更好的工具,愿意分享,可以留言给我,我会把它们加进工具文章.
  • 在这里我列出常用的工具,后面文章中,我会详细介绍工具如何使用

工具如下:

  • 砸壳工具 (Clutch , dumpdecrypted)
  • class-dump
  • Cycript
  • Reveal
  • Hopper Disassembler,
  • IDA
  • LLDB
  • Theos等工具

3.逆向流程

选一款应用,我们做一下逆向的话,大致流程是:

  • 保证你的手机已经越狱及已经下载好你要逆向的应用(前提)
  • 我们对应用进行解密,也就是说到砸壳操作
    上架AppStore的应用,都会进行加密,也就是加了一层保护壳,我们需要进行脱壳操作
  • 使用class-dump导出头文件,为进行hook做准备
  • 分析界面的布局及控件的使用,分析界面可能使用到的类文件
  • 有了大致范围,hook相关类,记录参数及方法(函数)的调用执行顺序
  • 找到关键的方法(函数),查看调用堆栈
  • 静态分析和动态调试分析关键函数的调试逻辑
  • 修改函数调用逻辑,验证函数逻辑是不是和自己考虑的一致
  • 运行自己的插件或者脚本

如果你做到了前几个步骤,基本操作已经掌握;后面几个步骤,分析起来可能不是很顺利,别灰心.多去尝试,才能获取分析的方法.

4.iOS逆向工程的作用

  • 如果是正向开发,加深对系统原理的理解及掌握
    比如系统运行机制,正向开发者存在不清楚的系统机制,正好可以加深对系统的理解.

  • 如果是借鉴别人的开发功能,可以学习一下,实现自己想要的功能.

    • 这里我想举一个例子,有一次,在公司开发中,公司应用对网络游戏应用进行加速,加速成功后,帮助用户打开游戏应用,这个时候需要提示用户是否打开已经下载的游戏应用.
    • 一般跳转有两种方式进行游戏应用判断,一种是私有方法,这个使用简单,只需要调用几行代码就可以实现,但是不能上架到AppStore.
  • 因为不能上架,需要寻找第二种方法,才能实现该功能,正苦于没有办法解决,参考了同类App的功能(同类App上架及实现该功能).最后,通过逆向分析别人开发的功能,了解实现的方式

    • 另一种是通过应用的URL Schema,进行软件是否安装判断,结合几行代码就可以完成功能.
    • 正因为有了iOS逆向,确定代码实现的类,根据类找到函数方法,通过分析判断方法逻辑实现,确定同样功能的实现逻辑.
  • 分析恶意的软件,对应用安全做防护

  • 通过对自己所开发的应用分析,是否有漏洞,起到安全保护的作用.

    • 一般涉及核心内容,对应用恶意破坏,要适当做些防护措施.

5.应用存在的风险

应用存在的风险分2中情况:

  • 越狱机
  • 非越狱机
Cydia Substrate

越狱机

  • 通过Cydia Substrate 提供的注入(Cydia Substrate 是Cydia APP中安装的插件)
  • hook模块注入指定的程序,达到篡改程序的功能

非越狱机

  • 通过静态的注入
  • 使用fishhook修改增加功能fishhook源码地址
  • 通过方法交换,修改函数实现逻辑

6.数据加密处理

应用中一般都会存储很多敏感的数据,这些数据一旦以明文的形式写在代码中,应用很容易被破解,数据也就被截获.
关于应用的数据一般都会做加密处理:

  • 静态字符串进行加密
  • 网络传输,接口参数进行加密
  • 本地存储数据进行加密

7.总结

  • 以上内容是对iOS逆向的介绍.
  • 学习iOS逆向基本知识还是需要了解的.
  • 下一篇文章将要对系统内容进行介绍.
  • 如果有你的支持,文章不断更新.
  • 请持续关注,也请留言给我.
  • 你也可以加入逆向群,大家一起学习.

相关文章

网友评论

      本文标题:iOS逆向之介绍

      本文链接:https://www.haomeiwen.com/subject/gjznmdtx.html