美文网首页
"知难而进:热爱iOS逆向"

"知难而进:热爱iOS逆向"

作者: 听木子说心语 | 来源:发表于2019-12-04 16:36 被阅读0次

上一篇文章:"穿越迷雾:iOS逆向之手机越狱的探索之旅"

在上一篇文章中,我详细介绍了iOS逆向工程的准备工作以及如何进行iOS越狱。正如一位朋友所留言的那样,iOS 11.0 - 12.4版本可以使用pwn20wndstuff/Undecimus这个越狱工具,它更加方便实用。如果你的设备运行在iOS 11.0 - 12.4系统上,不妨了解一下这个工具,或许会为你带来更好的使用体验。感谢朋友的推荐!

本文不仅介绍了iOS逆向工程的基本概念和准备工作,还提到了iOS越狱工具的使用建议。对于那些对iOS越狱不太了解的朋友们,我们可以一起探讨并解决这个问题。

希望通过本篇文章的介绍,可以对iOS逆向工程有更清晰的认识,并为大家在iOS设备上的操作提供更多便利与选择。

掌握了逆向技术,就像拥有了一双透视的眼睛,可以轻松洞察应用的内部构造,仿佛城堡尽收眼底。

因此,在开始学习之前,我们需要对逆向有所了解,这样才能更好地掌握这门技术。

逆向技术的学习之路可能会充满挑战,但只要我们保持对知识的渴望和不断的探索,就能够突破困难,站在技术的巅峰,透过逆向技术的视角,洞悉应用世界的精妙之处。

1.iOS逆向学习具备条件

  • iOS正向开发者

iOS正向开发者需要具备对iOS语言的深入了解,包括界面组件的使用以及应用依赖的第三方库。同时,他们应该能够轻松定位和分析代码,以便更高效地进行开发工作。

除此之外,iOS正向开发者还应该具备一定的汇编知识,这有助于他们理解应用程序的底层运行机制。关于汇编知识的积累,可以参考您之前写的汇编系列文章。

另外,了解底层知识以及文件系统结构也是必不可少的。这些知识能够帮助开发者更好地理解应用程序的工作原理,并在需要时进行底层调试和优化。

最后,熟悉逆向工具的使用也是iOS正向开发者的重要技能之一。

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

  • 想学习的爱好者
    对学习iOS逆向感兴趣的爱好者,在这里同样受到鼓励。

2.iOS逆向工具

  • 逆向过程说实话是枯燥的,但如果你对此感兴趣,一定要亲自动手尝试研究下去。

  • 如果你想做好逆向、应用或者插件分析,没有好用的工具,分析起来是非常困难的。

  • 在这里提前给大家介绍一下逆向工具。

  • 如果你有更好的工具愿意分享,可以留言给我,我会将它们添加到工具文章中。

  • 在这里我列出了常用的工具,后续文章中,我会详细介绍这些工具的使用方法。

工具如下:

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

3.逆向流程

选择一款应用进行逆向的大致流程如下:

  • 保证你的手机已经越狱及已经下载好你要逆向的应用(前提)

  • 对应用进行解密,即进行砸壳操作,以便后续分析。

  • 使用class-dump导出头文件,为进行hook做准备,以便后续的代码分析和修改。

  • 分析应用界面的布局及控件的使用,了解可能使用到的类文件和关键代码。

  • 针对分析结果,对相关类进行hook,并记录参数及方法的调用执行顺序。

  • 找到关键的方法或函数,查看其调用堆栈,分析其逻辑。

  • 进行静态分析和动态调试,深入分析关键函数的调试逻辑。

  • 根据分析结果,修改函数调用逻辑,并验证修改后的逻辑是否与预期一致。

  • 运行自己的插件或脚本,以验证逆向操作的效果。

如果你已经完成了前几个步骤,那么基本的逆向操作已经掌握。但是在后续的分析过程中可能会遇到一些困难,不要灰心,多尝试多实践,才能更好地掌握逆向的方法和技巧。

4.iOS逆向工程的作用

  • 对于正向开发者来说,深入了解系统原理是非常重要的,可以加深对系统运行机制的理解和掌握。在开发过程中,如果遇到不清楚的系统机制,正好可以通过学习和研究来加深理解。

  • 正向开发者也可以借鉴别人的开发功能,实现自己想要的功能。

    • 举个例子,在某次公司开发中,需要对网络游戏应用进行加速,并在加速成功后提示用户是否打开已下载的游戏应用。针对这种需求,一种常见的实现方式是使用私有方法,但无法上架到AppStore。因此,需要寻找第二种方法,这时就可以通过逆向分析同类App的功能,了解实现方式,并应用于自己的开发中。
  • 分析恶意软件,并对应用进行安全防护,是保护应用安全的重要措施。通过对自己开发的应用进行分析,发现漏洞并及时做出安全保护措施,可以有效提升应用的安全性,防止恶意破坏。在涉及核心内容的应用中,尤其需要加强安全防护措施,以保护应用的完整性和安全性。

5.应用存在的风险

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

  • 越狱机
  • 非越狱机
Cydia Substrate

越狱机

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

非越狱机

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

6.数据加密处理

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

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

7.总结

以上内容是对iOS逆向的简要介绍。

对iOS逆向基本知识的学习是必不可少的。

下一篇文章将会对系统内容进行详细介绍。

相关文章

网友评论

      本文标题:"知难而进:热爱iOS逆向"

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