iOS安全些许经验和学习笔记
http://bbs.pediy.com/showthread.php?t=209014
标题: 【原创】iOS安全些许经验和学习笔记
作者: MonkeyKey
时间: 2016-03-30,16:32:32
链接: http://bbs.pediy.com/showthread.php?t=209014
其实我接触iOS逆向工程并不久。从去年年初的时候,才开始接触到iOS语言,然后做一些iOS安全保护相关的工作,自己也慢慢接触iOS逆向工程这方面的东西,所以加起来也就1年的时间吧,下面就来谈谈我自己的一个学习过程。
逆向工程
逆向工程是一种产品设计技术再现的过程,对某一目标产品进行静态或动态分析研究,从而演绎得出该产品的处理流程,功能结构以及技术构成等设计要素,然后把分析出来的技术用于自己的产品。
逆向分析的作用:
①:缩短开发周期
②:降低开发成本
③:寻找技术突破
语言入门
如果你要逆向分析iOS应用相关的东西,当然你得熟悉Object-C这门语言,不要求对开发了解的多么深入,但是首先得能理解它的语法,看懂Object-C的代码,并能够自己用这门语言写一些简单的应用及功能模块。
这方面的话,看书或者看视频都可以,我当时就是在极客学院看的Object-C基础开发的视频,学了一个星期左右吧。很重要的一点就是你在看的时候不能只是看,必须边看边实践,一定要把代码写出来。
最能写一个tableview,从网络请求数据然后显示到界面,也就差不多了。
熟悉工具
逆向工程往往需要借助一些工具,首先需要准备一台越狱的机器,能够熟练使用以下工具:
①openSSH:登录越狱机器,进行文件传输等等。
②Cycript:运行一些动态js脚本。
③lldb:动态调试应用,查看运行时变量的值。
④class-dump: 导出应用头文件,查看应用类和成员信息。
⑤Keychain dumper:导出越狱设备的keychain。
⑥Snoop-it,introspy:动态追踪分析工具。
⑦Hopper,IDA:静态反汇编分析工具。
⑧theos:开发tweak,进行动态hook。
上面说的都可以在我的博客里面找到这些工具的使用方法,总之,一定要实践,一定要实践,一定要实践!(重要的事说三遍)
推荐《iOS应用逆向工程》这本书,作者拥有多年逆向开发实践经验,可以跟着里面讲的知识慢慢学习。
继续深入
文件结构
再深入一些的话,需要熟悉macho文件结构,包括它的构成,每一部分的作用,以及动态加载过程,然后可以进一步看看class-dump的源码。
深入原理
使用工具,决不能只停留在工具的表面,一定要知道工具内部是怎么实现的,它的原理的是什么,自己是不是可以对它进行改进等等,比如theos的原理,Method Swizzling,fishhook等等。
知己知彼
再说到逆向分析其实就是一个“攻”的过程,那么肯定不是一帆风顺的,有攻就有防,现在很多应用对于防止被逆向分析也做了很多不同的措施比如:反注入,反调试,反反汇编这些。作为一个逆向分析者,同时也需要对防的过程和可能使用的方法有一定的了解,才能更好的去寻找突破口。
熟悉汇编
静态分析中难免需要去阅读汇编代码,知道各种寄存器的作用,以及对堆栈的操作过程。
后续建议
① 多关注一些github开源项目,包括上面说的那些
② 多关注国内国外博客论坛
③ 多实践,看再多的东西,都要实践出来
下面是我博客的部分笔记:
iOS安全–安装OpenSSH:http://www.blogfshare.com/ioss-openssh.html
iOS安全–用class-dump-z导出IOS应用类信息:http://www.blogfshare.com/ioss-class-dump-z.html
iOS安全–使用Cycript进行运行时分析:http://www.blogfshare.com/ioss-cycript.html
iOS安全–导出Keychain中的数据:http://www.blogfshare.com/ioss-keychaindumper.html
iOS安全–使用Snoop-it分析iOS应用:http://www.blogfshare.com/ioss-snoop-it.html
iOS安全–使用introspy追踪IOS应用:http://www.blogfshare.com/ioss-introspy.html
iOS安全–使用lldb对应用进行运行时分析:http://www.blogfshare.com/ioss-lldb.html
iOS安全–了解Mach-o文件结构:http://www.blogfshare.com/ioss-mach-o.html
iOS安全–从Mach-o文件结构分析类名和方法名:http://www.blogfshare.com/ioss-mach-o-dump.html
iOS安全–使用Hopper修改程序逻辑跳过验证:http://www.blogfshare.com/ioss-hopper.html
iOS安全–使用Theos开发Tweak过验证:http://www.blogfshare.com/ioss-theos-tweak.html
iOS安全–使用Logify跟踪函数调用: http://www.blogfshare.com/ioss-theos-logify.html
iOS安全–移除IOS应用的ASLR特性: http://www.blogfshare.com/ioss-remove-aslr.html
iOS安全–使用iOSOpenDev进行越狱开发: http://www.blogfshare.com/iosopendev.html
iOS安全–阿里比赛iOS 1. 2 题解: http://www.blogfshare.com/ali-ios-game.html
iOS安全—阻止tweak注入hook api: http://www.blogfshare.com/block-code-inject.html
iOS安全–可执行文件dylib注入,无需越狱: http://www.blogfshare.com/inject-with-njb.html
iOS安全—dumpdecrypted APP砸壳: http://www.blogfshare.com/dumpdecrypted-app.html
iOS安全–XX助手网络协议分析: http://www.blogfshare.com/pphelper-analyze.html
iOS安全–在非越狱平台进行越狱开发(附分析流程):http://www.blogfshare.com/wechat-openredenvelopes.html
iOS安全–看了这个,你还敢用分身版微信吗?:http://www.blogfshare.com/the-second-wechat.html
微信文章:http://mp.weixin.qq.com/mp/getmassse...echat_redirect
借鉴一下,别人学习iOS逆向的经验和收集一些有用的逆向工具。
iOS安全些许经验和学习笔记的更多相关文章
- 用python参加Kaggle的些许经验总结(收藏)
Step1: Exploratory Data Analysis EDA,也就是对数据进行探索性的分析,一般就用到pandas和matplotlib就够了.EDA一般包括: 每个feature的意义, ...
- IOS Core Animation Advanced Techniques的学习笔记(一)
转载. Book Description Publication Date: August 12, 2013 Core Animation is the technology underlying A ...
- IOS Core Animation Advanced Techniques的学习笔记(五)
第六章:Specialized Layers 类别 用途 CAEmitterLayer 用于实现基于Core Animation粒子发射系统.发射器层对象控制粒子的生成和起源 CAGradient ...
- IOS Core Animation Advanced Techniques的学习笔记(四)
第五章:Transforms Affine Transforms CGAffineTransform是二维的 Creating a CGAffineTransform 主要有三种变 ...
- IOS Core Animation Advanced Techniques的学习笔记(二)
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx { CGFloat width = 10.0f; //draw a thi ...
- IOS Core Animation Advanced Techniques的学习笔记(三)
第四章:Visual Effects Rounded Corners 例子4.1 cornerRadius 源码在这里下载:http://www.informit.com/title/978013 ...
- iOS 10 Programming Fundamentals with Swift 学习笔记 0
1,a single statement can be broken into multiple lines ,For example, after an opening parenthesis is ...
- Netty 学习笔记(1)通信原理
前言 本文主要从 select 和 epoll 系统调用入手,来打开 Netty 的大门,从认识 Netty 的基础原理 —— I/O 多路复用模型开始. Netty 的通信原理 Netty 底层 ...
- IOS学习笔记48--一些常见的IOS知识点+面试题
IOS学习笔记48--一些常见的IOS知识点+面试题 1.堆和栈什么区别? 答:管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制:对于堆来说,释放工作由程序员控制,容易产生memor ...
随机推荐
- [个人总结]pip安装tensorboard太慢
在执行pip install语句的时候直接指定国内豆瓣的镜像源进行下载: pip install -i https://pypi.douban.com/simple 你想下载的包的名称 例如下载ten ...
- Linux速通08 网络原理及基础设置、软件包管理
使用 ifconfig命令来维护网络 # ifconfig 命令:显示所有正在启动的网卡的详细信息或设定系统中网卡的 IP地址 # 应用 ifconfig命令设定网卡的 IP地址: * 例:修改 et ...
- Java 面向对象 05
面向对象·五级 package关键字的概述及作用 * A:为什么要有包 * 将字节码(.class)进行分类存放 * 包其实就是文件夹 * B:包的概述 举例: ...
- 如何在 ASP.NET Core 中写出更干净的 Controller
你可以遵循一些最佳实践来写出更干净的 Controller,一般我们称这种方法写出来的 Controller 为瘦Controller,瘦 Controller 的好处在于拥有更少的代码,更加单一的职 ...
- 如何使用excel制作查分系统
在工作学习中,我们经常会遇到使用excel制作查分系统这样的问题.培根说过:读书足以恬情,足以博采,足以长才.因此,面对使用excel制作查分系统我们应该有努力探索的精神.书到用时方恨少,事非经过不知 ...
- FreeBSD NGINX TCP转发
前几天搞转发,研究了下TCP转发,现在记录下来 首先加载模块 注意:这是FreeBSD的位置.并且需要NGINX支持 load_module /usr/local/libexec/nginx/ngx_ ...
- python爬取考研专业信息
伴随着2021考研成绩的公布,2021考研国家线也即将到来.大家是否有过考研的想法了?如果想考研我们就需要了解很多的信息,但是百度的上有太多信息需要我们去一一的鉴别,是比较浪费时间的.所以我们可以学习 ...
- certutil绕过
一般进内网过后我都会使用certutil下载文件,但在最近打一台内网机子的时候出现了certutil拒绝访问的情况,在本地搭建了一个环境尝试绕过certutil下载文件. 安装杀软更新到最新版本,开启 ...
- Git 在解决冲突的时候文件覆盖
更新代码导致被还原或覆盖的场景:1.触发冲突的必要条件是修改同一个文件且修改的位置非常近,否则Git会自动合并其内容避免更新代码导致被还原或覆盖的解决方案1.少修改的地方(生产环境.公网测试环境):推 ...
- Flex属性你真的搞清楚了吗?我深表怀疑
背景 在使用弹性布局实现两侧宽度固定,中间宽度自适应的效果时,发现自己理解的和实际效果不一致,所以亲自实践验证了一个flex属性的诸多场景的表现,不仅解开了我之前使用过程遇到的疑惑,而且发现了许多自己 ...