一 iOS 逆向工程概述

  • 1 什么是iOS逆向工程
  • 2 iOS逆向的目的
  • 3 iOS逆向过程以及方法
一 什么是iOS逆向工程

iOS逆向工程指的是在软件层面上进行逆向分析的过程,用大白话来讲就是推导应用的代码实现和逻辑。就是给你一个IPA包,你能推导出他的代码实现,和逻辑实现,因为我们拿不到别人的源代码,但是我们又想知道它是怎么编码实现的,所以才有了逆向这么个玩意,iOS逆向过程简单的图示:


逆向过程

就等于拿到手机上的应用程序,分析它的可执行文件,通过工具转成汇编,以至于转换成更高级的语言object c /swift等的一个过程

二 iOS逆向的目的
1 学习优秀App的设计

当你看到一个App有一些非常好用的功能,你想学习或者你也需要实现相同的功能,这样你就可以逆向它的实现,去分析它的实现过程

2 更好的去加强自己开发App的安全

当你熟悉了iOS逆向工程,今后在开发自己App的时候,哪些地方更容易别被人攻破,从而有效的去避免

3 学习iOS系统未开源库的一些实现。

比如我们常用的UIKit的实现等等

4 视野更远了,iOS开发就会不在局限于画界面,数据,网络这些操作了

iOS逆向你能够了解到整个iOS系统的大致底层,内核,程序加载过程呀,App编译过程呀,等等

5 可以改变现有app的一些功能

去爱奇艺App的广告,微信抢红包等等。(当然这个学习可以,不可以作为商业利益,违法的)

三 iOS逆向过程以及方法

不废话,先看图:


逆向过程及方法
逆向app思路

1 界面分析(Cycript ,Reveal)
2 代码分析
对Mach-o文件的静态分析
MachOView ,class-dump, Hopper Disassembler,ida等
3 动态调试
对运行中的app进行代码调试
debugserver, LLDB
4 代码编写
注入代码到app中
必要时还可能需要重新签名,打包ipa

从上到下整个一个流程,每个步骤都有相应的开发工具,循序渐进,把每一步都学好了,整个逆向你也就熟悉的差不多了。

系列文章
一 iOS 逆向工程概述
二 iOS逆向-逆向环境搭建
三 远程登录(OpenSSH)/USB登录到手机
四 iOS逆向- Mach-O
五 iOS逆向- 动态库共享缓存(dyld shared cache)
六 iOS逆向 - 脱壳
七 iOS逆向 - Cycript
八 iOS逆向-Reveal
九 iOS逆向 class-dump
十 iOS逆向- hopper disassembler
十一 iOS逆向- theos,tweak讲解
十二 iOS逆向-动态调试
十三 ASLR
十四 iOS签名机制
~~~~不断更新中。。。。。

推荐阅读更多精彩内容

  • 逆向工程的目的 1)分析竞品的最新研究或者产品原型(包括所用的技术,所使用的框架)2)学术/学习目的。3)破解应用...
    90后的思维阅读 6,684评论 3 14
  • [TOC] ==iOS逆向环境介绍== *** 越狱环境:iphone5s iOS 8.3*** 1.Drawin...
    锦鲤跃龙阅读 1,101评论 2 2
  • 逆向工程的目的 1)分析竞品的最新研究或者产品原型(包括所用的技术,所使用的框架) 2)学术/学习目的。 3)破解...
    零度_不结冰阅读 440评论 0 2
  • ​第一篇推荐的绘本是《小蓝和小黄》,关于颜色和朋友的故事,英语歌曲中我们还看到了《rainbow,rainbow》...
    Fiona88阅读 188评论 0 0
  • Nessus 是目前全世界最多人使用的系统漏洞扫描与分析软件。总共有超过75,000个机构使用Nessus 作为扫...
    LizPL阅读 2,646评论 0 0
  • 周三早上的语文课我们没有上,我们一起跟着大师同绘一幅画。这可是十分难得的机会啊!万名乡村孩子同绘一幅画—...
    陕县2111高淑娟阅读 732评论 0 4
  • 不知不觉,已经是在补课班的第三天了,上午是物理课,当我走在乡间小道上时,我还在想:诶,又要上物理课了!然而...
    凄之惨燕阅读 75评论 0 0