新書推薦:
《
知宋·宋代之科举
》
售價:HK$
99.7
《
那本书是(吉竹伸介与又吉直树 天才联动!)
》
售價:HK$
99.7
《
传播的跃迁:人工智能如何革新人类的交流
》
售價:HK$
110.9
《
纯粹·古代中国的历史与制度
》
售價:HK$
62.7
《
生活来来往往 别等来日方长 新版(伍佰:“讲好了这一辈子,再度重相逢。”别等,别遗憾!珍惜当下才是最好的解药)
》
售價:HK$
58.2
《
一个英国军事顾问眼中的二战
》
售價:HK$
277.8
《
就业、利息和货币通论(徐毓枬译本)(经济学名著译丛)
》
售價:HK$
67.2
《
瘦肝
》
售價:HK$
99.7
|
編輯推薦: |
1. 《iOS应用逆向与安全之道》由飘云阁安全论坛创始人罗巍(飘云)倾力打造。
2. 《iOS应用逆向与安全之道》所讲技术可兼容iOS9-iOS13版本,但表达的思想和方法可扩展至今后任意iOS版本。
3. 提供全部案例的源代码下载。
|
內容簡介: |
iOS应用逆向与安全之道 始终遵循大道至简之法则,仅保留必要的理论知识,以实战为主线来揭开iOS应用逆向与安全的神秘面纱。主要内容包括:环境搭建、Mach-O文件格式、ARM汇编、应用脱壳、运行时分析、静态分析、动态调试、iOS插件开发、Hook与注入、应用安全、协议安全等。本书涵盖了时下*热门的iOS逆向技术,以及飘云阁论坛版主、信息安全领域一线软件安全专家和笔者自己的多年实战经验,是软件安全研究人员的一本必备秘籍。
iOS应用逆向与安全之道 适合iOS爱好者、对iOS调试技术和对iOS应用协议分析感兴趣的读者、对iOS应用保护感兴趣的开发人员、从其他平台转战iOS平台的逆向工程师、想提高实战技巧的iOS逆向工程师及计算机相关专业的师生阅读。
|
關於作者: |
罗巍,湖南长沙人,网名飘云,飘云阁安全论坛创始人、安全专家。2000年开始接触逆向工程,擅长Windows和macOS逆向开发、iOS越狱开发、App协议级分析、IoT安全研究,具有丰富的实战经验,早年就职于阿里巴巴、PP助手,现任广州啦咔网络科技有限公司逆向研发总监。
|
目錄:
|
序一
序二
序三
序四
前言
第一篇 初 出 茅 庐
第1章 背景知识
1.1 iOS逆向工程简介
1.1.1 iOS逆向工程学习路线
1.1.2 iOS逆向工程基本流程
1.1.3 iOS逆向工程意义所在
1.2 iOS越狱平台简介
1.2.1 iOS越狱及其定义
1.2.2 iOS越狱商店
1.2.3 iOS系统目录
1.2.4 iOS沙盒结构
1.2.5 iOS应用结构
1.2.6 iOS文件权限
1.3 本章小结
第2章 环境搭建
2.1 开发环境
2.1.1 Xcode
2.1.2 Homebrew
2.2 越狱环境
2.2.1 iOS越狱设备的选择
2.2.2 Cydia Substrate(iOS 11以下)
2.2.3 Substitute(iOS 11~iOS 13)
2.2.4 必备小工具
2.3 SSH配置
2.3.1 安装OpenSSH
2.3.2 配置dropbear
2.3.3 免密码登录
2.3.4 USB连接设备
2.3.5 修改默认密码
2.3.6 使用scp传输文件
2.4 实用工具推荐
2.5 本章小结
第3章 逆向基础
3.1 Mach-O文件格式
3.1.1 通用二进制文件
3.1.2 Mach-O头部
3.1.3 加载命令
3.2 ARM汇编基础
3.2.1 寄存器
3.2.2 指令集
3.2.3 栈及传参规则
3.2.4 内联汇编
3.2.5 Objective-C的汇编机制
3.3 本章小结
第二篇 小 试 牛 刀
第4章 应用脱壳
4.1 检测是否加壳
4.2 Clutch
4.2.1 安装Clutch
4.2.2 Clutch脱壳实战
4.3 dumpdecrypted
4.3.1 编译dumpdecrypted
4.3.2 dumpdecrypted脱壳实战
4.4 bfinject
4.4.1 安装bfinject
4.4.2 bfinject脱壳实战
4.4.3 修复闪退
4.5 CrackerXI(iOS 11~iOS 13)
4.6 frida-ios-dump
4.6.1 一键快速脱壳
4.6.2 完美修复闪退
4.6.3 ipa文件安装失败处理
4.7 使用lipo分离架构
4.8 本章小结
第5章 运行时分析
5.1 class-dump
5.2 Cycript
5.2.1 越狱环境安装Cycript
5.2.2 Cycript实战
5.2.3 Cycript高级用法
5.2.4 iOS 11使用Cycript
5.3 Reveal
5.3.1 越狱环境使用Reveal
5.3.2 iOS 11~iOS 13使用Reveal
5.3.3 Reveal实战
5.4 FLEX
5.4.1 越狱环境使用FLEX
5.4.2 FLEX实战
5.5 Frida
5.5.1 Frida安装
5.5.2 Frida入门
5.5.3 Frida实战
5.5.4 Frida进阶
5.6 本章小结
第三篇 登 堂 入 室
第6章 静态分析
6.1 Hopper
6.1.1 安装Hopper
6.1.2 认识Hopper
6.1.3 编写Hopper脚本实战
6.2 IDA Pro
6.2.1 加载文件
6.2.2 功能划分
6.2.3 保存idb文件
6.2.4 常用功能及快捷键
6.2.5 编写IDA脚本实战
6.3 如何定位切入点
6.3.1 通过Runtime定位
6.3.2 通过输入函数定位
6.3.3 通过输出函数定位
6.3.4 通过字符串定位
6.3.5 通过网络行为定位
6.4 实例分析
6.4.1 使用class-dump定位按钮事件
6.4.2 使用Hopper分析验证流程
6.4.3 使用IDA分析序列号及修改代码
6.5 本章小结
第7章 动态调试
7.1 LLDB动态调试
7.1.1 配置debugserver
7.1.2 与LLDB建立连接
7.1.3 LLDB命令详解
7.1.4 LLDB手动脱壳
7.1.5 LLDB脚本编写
7.1.6 LLDB高效技巧
7.2 IDA动态调试
7.2.1 直接启动调试
7.2.2 远程附加调试
7.3 Xcode动态调试
7.3.1 远程附加调试
7.3.2 直接启动调试
7.3.3 恢复符号表
7.3.4 UI调试功能
7.4 本章小结
第8章 越狱开发
8.1 Theos简介
8.1.1 Theos安装
8.1.2 Theos常用模块
8.2 插件开发
8.2.1 创建工程
8.2.2 解读工程文件
8.2.3 编译 打包 安装
8.3 命令行工具开发
8.3.1 创建工程
8.3.2 兼容iOS 11~iOS 13
8.4 系统级应用开发
8.4.1 创建工程
8.4.2 以root权限运行(iOS 11以下)
8.4.3 以root权限运行(iOS 11、iOS 12)
8.4.4 以root权限运行(iOS 13)
8.5 守护进程开发
8.5.1 创建工程
8.5.2 自动部署
8.6 进程间通信
8.6.1 Notification通信
8.6.2 XPC通信
8.6.3 RocketBootstrap通信
8.7 MonkeyDev
8.7.1 MonkeyDev安装
8.7.2 Logos Tweak
8.7.3 CaptainHook Tweak
8.7.4 Command-line Tool
8.8 跟踪函数调用
8.8.1 使用logify跟踪
8.8.2 使用ANYMethodLog跟踪
8.8.3 使用BigBang跟踪
8.9 增加系统设置项
8.9.1 PreferenceLoader
8.9.2 AppList
8.10 deb重打包
8.11 本章小结
第9章 Hook与注入
9.1 Method Swizzling
9.1.1 Method Swizzling原理
9.1.2 Method Swizzling实例
9.1.3 MSHookMessageEx实例
9.1.4 获取类成员变量实例
9.2 Inline Hook
9.2.1 MSHookFunction实例
9.2.2 fishhook实例
|
內容試閱:
|
若干年前,笔者购买了人生中的第一台iPhone,被它强大的功能深深吸引,爱不释手,但在使用的同时却发现了种种限制(后来才知道这是iOS的安全保护机制决定的)。苦于当时国内有关iOS的资料还相对匮乏,周边也少有玩家可以交流,笔者只好通过Google来寻找一些解决之道,也就在那时知道了越狱的概念。将手机越狱之后,就能安装各种插件,最大限度地操控它,这种奇妙的感觉,笔者至今都回味无穷。笔者是一个对技术极度痴迷的人,所以总想弄清楚这些插件到底做了什么,又是怎么做到的,甚至希望自己也能开发一款功能强大的插件,可想而知,在当时的条件下,笔者并没有成功。
直到2013年,笔者在机缘巧合下了解到了PP助手这个应用分发平台,其中就有很多平台发布团队自己开发的插件,恰好他们在招聘逆向工程师,这无疑是一个很好的机会。由于当时招聘的是Windows逆向工程师,笔者凭借多年的Windows平台逆向经验,顺利拿到Offer,第二天即从长沙飞到广州开始了新的征程。进入PP助手不久,笔者正式接手iOS方面的研究项目,那段时间经常挑灯夜战到凌晨,在CTO南哥及部门主管邵将的指导下,先后研究了iOS正向开发、iOS逆向分析、iOS插件开发等,技术上得到了质的提升。与此同时,记录的相关资料也越来越多,所以笔者多年的挚友蓝枫建议将这些资料整理成册,一来方便公司新人查阅,二来以后可以出版引导更多爱好者。笔者经过慎重考虑之后,采纳了他的建议,但这件事不能草率。笔者是个极度追求完美的人,所以这些年一直在做技术沉淀,由于更新迭代太快,每过一段时间都会将过时的内容进行替换,直到2019年,在基于最新技术增加多个综合分析实例后,这本耗时6年精心整理的书籍终于完成。
随着iOS设备的不断普及,正向与逆向研究人员也日渐增多,这让笔者甚感欣慰。现在各大论坛都有关于iOS的讨论,从中能感受到这些年来iOS所带来的巨大影响。总之,本书的内容都是笔者多年来的技术积累,及悟出的一些道,所谓闻道有先后,术业有专攻,相信不会让您失望!
1.本书特点
? 浅显易懂:本书在内容编排及语言表达上,尽量做到通俗易懂,无论是新手还是老手,都能通过本书快速领悟精华之处,找到豁然开朗的感觉iOS应用逆向工程如此简单!
? 实战为主:本书尽可能抛开烦琐的理论部分,而是更多地采用实例讲解,一点即通。书中的实例也是经过精心挑选的,与所学内容前后呼应。
? 兼容性强:本书所讲的技术都尽可能兼容iOS 9~iOS 13,一些思想甚至能无限延伸,使读者不再禁锢于某个版本。
2.读者对象
《iOS应用逆向与安全之道》介绍了iOS逆向分析、插件开发、算法分析及通信协议分析等方面的内容,面向以下读者。
? iOS爱好者。
? 逆向工程师。
? iOS软件开发工程师。
? App通信协议工程师。
? App安全审计工程师。
? IoT客户端安全工程师。
? 高校计算机相关专业的师生。
3.如何学习本书
考虑到读者的基础不同,《iOS应用逆向与安全之道》由浅入深,共分四篇。
? 初出茅庐(第1~3章):准备阶段,内容包括基本概念、环境搭建、设备选购、逆向必备理论基础等。这部分主要针对零基础的iOS爱好者。
? 小试牛刀(第4、5章):初级阶段,全面讲解了iOS应用脱壳及闪退的修复方法、各种运行时分析方法与技巧、Frida高级应用等。这部分针对有一定逆向基础后想快速上手体验的读者,涉及了多个分析实例。
? 登堂入室(第6~11章):进阶阶段,最大限度地讲解了静态分析、动态调试、插件开发、Hook与注入、App重签名、调试器对抗、Hook检测、加密算法识别、应用安全、协议安全等。该篇是全书最重要的部分,穿插了很多实例讲解及技巧分享,主要针对掌握了初级分析方法,想让能力快速得到提升的读者。
? 融会贯通(第12~17章):综合阶段,对六个实际App进行了全方位剖析,包括文件格式分析、水印控制及配置开关分析、广告及内购流程分析、登录协议分析、下载协议分析、授权机制分析等。该篇是对全书关键技术的综合运用,主要针对想提高综合实战能力的读者。
原则上建议读者从头至尾按顺序阅读所有章节,并把书中的案例都实践一遍,如果实在抽不出那么多时间,可以挑最感兴趣的内容进行选择性学习,殷切期望读者能从本书中悟出一些属于自己的道!
4.致谢
? 感谢我的父母,在学习及成长路上一直支持、鼓励我。
? 感谢我的妻子、儿子、女儿,在写作过程中很抱歉对你们缺少了太多的陪伴,是你们的理解与包容让本书能顺利完成。
? 感谢我的挚友蓝枫,在支持我写作的同时找到涛哥、旺财哥帮忙联系出版社。
? 感谢我的挚友虫虫,为本书设计了精美Logo。
? 感谢机械工业出版社提供的平台,及张淑谦老师对本书内容的严格把控。
? 感谢看雪学院创始人、《加密与解密》作者段钢为本书作序。
? 感谢武汉科锐教育创始人、《C 反汇编与逆向分析技术揭秘》作者钱林松为本书作
|
|