iOS逆向之旅 — 总纲

逆向杂谈

因为我大学期间开发游戏外挂,对于逆向的强大有过不小的认识。能让别人的代码照着自己的思路去走,感觉是蛮好玩的一件事。所以带着好奇心去研究了iOS逆向。对于iOS逆向,很多人只听过《IOS应用逆向工程》,单纯通过书籍还有杂乱的博文,想要入门还是挺难的。其实iOS逆向没想象中那么难,只要我们找到方法。你想想【游戏外挂】只是单纯凭借C++基础/数据结构去逆向一个大型网游,而现在我们有过正向iOS开发经验,逆向苹果App,难度可想而知降了多少。
我们正常的开发是从代码->UI/功能,逆向就是从UI/功能反推回代码。这段时间断断续续学了不少iOS逆向的知识,准备好好整理一遍,分享出来,如有错误欢迎指正!

学习iOS逆向的用处

我简单梳理了一下,iOS逆向能做的事~~

  • 了解iOS的底层实现
  • 破解别人的软件,实现各种变态的功能(获取隐私数据、微信抢红包、钉钉打卡等等...)
  • 保护自己的代码,隐藏隐私数据,隐藏函数
  • 上马甲包
  • 分析别人的代码架构 - 这个需要你有一定的架构知识

听起来好像很屌样子

学习路线

  • 基础篇
    • 汇编 (这块比较枯燥但很重要,如果你只是想简单了解逆向的话,可以先跳过后面觉得需要再看)

      • iOS逆向之旅(基础篇) — 汇编(一)— 汇编基础
      • iOS逆向之旅(基础篇) — 汇编(二) — 汇编下的 If语句
      • iOS逆向之旅(基础篇) — 汇编(三) — 汇编下的 Switch语句
      • iOS逆向之旅(基础篇) — 汇编(四) — 汇编下的函数
      • iOS逆向之旅(基础篇) — 汇编(五) — 汇编下的Block
    • 基础知识掌握(Macho文件基础、ASLR、App的签名机制)

      • iOS逆向之旅(基础篇) — Macho文件
      • iOS逆向之旅(基础篇) — App的签名机制【Xcode是如何将App安装到手机的】​​​​​​​
  • 进阶篇
    • 对第三方App重签名的方法
      • iOS逆向之旅(进阶篇) — 重签名APP(一)
      • iOS逆向之旅(进阶篇) — 重签名APP(二)
    • 如何向第三方App注入自己的代码
      • iOS逆向之旅(进阶篇) — 代码注入
    • 如何HOOK别人的代码(Method Swizzling、FishHook、Logos)
      • iOS逆向之旅(进阶篇) — HOOK(Method Swizzling)
      • iOS逆向之旅(进阶篇) — HOOK(FishHook)
      • iOS逆向之旅(进阶篇) — HOOK(Logos)
    • 常用工具的使用(Class-Dump、Restore-Symbol、LLDB)
      • iOS逆向之旅(进阶篇) — 工具(Class-Dump)
      • iOS逆向之旅(进阶篇) — 工具(LLDB)
  • 越狱篇
    • 越狱环境下的配置SSH,并支持USB调试
      • iOS逆向之旅(越狱篇) — SSH
    • Cycript的使用
      • iOS逆向之旅(越狱篇) — Cycript【优秀的调试工具】
    • 砸壳
      • iOS逆向之旅(越狱篇) — 砸壳
    • Theos插件的开发
      • iOS逆向之旅(越狱篇) — Theos
  • 防护篇
    • Theos插件的原理及防护手段
      • iOS逆向之旅(防护篇) — 防护Tweak插件
    • LLDB的原理及防护手段
      连载中...
    • 如何调用系统级别函数进行反调试
    • 如何防护Monkey
    • 隐私数据加密,防止被静态分析
    • 代码混淆及浅谈上架马甲包的经验
  • 项目篇
    • 微信抢红包
    • 钉钉远程打卡

后续的文章会慢慢的分享出来,目的只是为了扎实基础,技术分享

你可能感兴趣的:(iOS逆向之旅 — 总纲)