iOS黑客攻防秘籍

admin 2022年11月13日21:52:18移动安全评论11 views3097字阅读10分19秒阅读模式

微信公众号:计算机与网络安全


iOS黑客攻防秘籍
(全文略)


本书内容易于理解,可以让读者循序渐进、系统性地学习iOS 安全技术。书中首先细致地介绍了越狱环境的开发与逆向相关工具,然后依次讲解了汇编基础、动态调试、静态分析、注入与hook、文件格式,最后为大家呈现了应用破解与应用保护、隐私获取与取证、刷量与作弊、唯一设备ID、写壳内幕等多个主题。

本书适合逆向工程师、iOS高级开发工程师、越狱开发者、安全研究员以及计算机相关专业学生阅读。


目录

1 iOS安全机制
1.1 应用的安装源
1.2 沙盒
1.3 代码签名
1.4 用户权限隔离
1.5 数据执行保护
1.6 地址随机化
1.7 后台程序
2章 越狱环境开发工具的准备
2.1 越狱与Cydia
2.2 文件管理工具
2.2.1 iFile:在手机上管理文件
2.2.2 AFC2:通过USB管理手机
文件
2.3 命令行工具
2.3.1 MTerminal:手机中执行
命令行
2.3.2 OpenSSH:在电脑上执行
命令行
2.4 代码注入测试工具
2.5 远程调试工具
2.5.1 debugserver的配置与启动
2.5.2 LLDB连接debugserver及其
调试
2.5.3 通过USB连接SSH进行调试
2.6 反汇编工具
2.6.1 IDA
2.6.2 Hopper
2.7 其他工具
3 ARM汇编基础
3.1 ARMv7
3.1.1 编写32位汇编代码
3.1.2 寄存器与栈
3.1.3 基础指令
3.1.4 条件跳转与循环
3.1.5 函数参数的调用过程
3.1.6 Thumb指令
3.2 ARM64
3.2.1 编写64位的汇编代码
3.2.2 寄存器与栈
3.2.3 函数参数的调用过程
3.3 Xcode中使用内联汇编
3.3.1 C C++ Objective-C调用汇编
函数
3.3.2 直接编写内联汇编
4章 应用逆向分析
4.1 寻找main函数的入口
4.1.1 编写一个测试程序
4.1.2 ARMv7main函数入口
4.1.3 ARM64main函数入口
4.2 动态调试
4.2.1 反汇编
4.2.2 添加断点
4.2.3 打印数据
4.2.4 读写数据
4.2.5 修改程序的执行流程
4.2.6 查看信息
4.2.7 执行到上层调用栈
4.2.8 临时修改变量的值
4.2.9 使用帮助与搜索
4.3 静态分析
4.3.1 通过字符串定位到代码的
引用位置
4.3.2 查看函数被调用的位置
4.3.3 重设基地址
4.3.4 修改代码并保存文件
4.3.5 使用IDA Python脚本
4.4 逆向分析实例
5 Tweak编写技术
5.1 Theos开发环境的使用
5.1.1 编写第一个Tweak
5.1.2 Theos工程文件
5.2 逆向分析与编写Tweak
5.2.1 逆向分析
5.2.2 编写Tweak
6章 注入与hook
6.1 注入动态库
6.1.1 编写动态库
6.1.2 DynamicLibraries目录
6.1.3 DYLD_INSERT_LIBRARIES环境
变量
6.1.4 不越狱注入动态库
6.2 hook
6.2.1 Cydia Substrate
6.2.2 Symbol Table
6.2.3 Method Swizzing
7 Mach-O文件格式解析
7.1 Mach-O文件格式
7.1.1 Fat头部
7.1.2 Mach头部
7.1.3 Load command
7.1.4 符号表与字符串表
7.2 CFString的运行过程
7.2.1 编写测试代码
7.2.2 CFString的数据结构
7.2.3 调试运行过程
7.3 Mach-O ARM函数绑定的调用
过程分析
7.3.1 编写测试代码
7.3.2 分析ARMv7函数绑定的
调用过程
7.3.3 分析ARM64函数绑定的
调用过程
7.3.4 总结
7.4 静态库文件格式
7.5 class-dump导出头文件的原理
7.6 关于Bitcode
7.6.1 Bitcode的作用
7.6.2 Xcode中如何生成Bitcode
7.6.3 通过命令行编译Bitcode
7.6.4 Bitcode编译成可执行文件
7.6.5 编译器相关参数
8章 唯一设备ID
8.1 UDID与设备ID
8.2 IDFA
8.3 IDFV
8.4 OpenUDID
8.5 SimulateIDFA
8.6 MAC地址
8.7 ID的持久化存储
8.8 DeviceToken
9章 刷量与作弊
9.1 越狱环境下获取root权限
9.2 修改手机信息
9.2.1 修改基本信息
9.2.2 修改Wi-Fi信息
9.2.3 修改DeviceToken
9.2.4 修改位置信息
9.3 清除应用数据
9.4 清除Keychain
9.5 清除剪贴板
9.6 发布应用
9.6.1 App打包成deb
9.6.2 制作Cydia源发布应用
9.7 权限的切换
9.8 变化IP地址
9.9 反越狱检测
9.10 不用越狱修改任意位置信息
9.11 在两个手机上同时登录同一微信
9.12 微信的62数据
10章 重要信息获取与取证
10.1 通讯录
10.2 短信
10.3 通话记录
10.4 位置信息
10.5 网络信息
10.6 传感器信息
10.7 系统信息
10.8 硬件ID信息
10.9 已安装的应用列表
10.10 使用idb分析泄露的数据
10.11 重要的文件与目录
10.12 libimobiledevice获取手机信息
11章 应用破解
11.1 重打包应用与多开
11.1.1 重打包应用
11.1.2 多开
11.2 应用重签名
11.2.1 代码签名
11.2.2 授权机制
11.2.3 配置文件
11.2.4 重签名
11.3 抓包和改包
11.3.1 tcpdump抓包
11.3.2 Wireshark抓包
11.3.3 Charles抓取HTTPS数据包
11.3.4 Charles修改数据包与重发
11.3.5 突破SSL双向认证
11.4 文件监控
11.5 破解登录验证
11.5.1 得到HTTP传输的数据
11.5.2 得到解密的数据
11.5.3 破解方法
12章 应用保护
12.1 函数名混淆
12.2 字符串加密
12.3 代码混淆
12.3.1 inline内联函数
12.3.2 obfuscator-llvm编译器
12.3.3 Xcode集成配置obfuscator-llvm
12.3.4 Theos集成配置obfuscator-llvm
12.4 越狱检测
12.4.1 判断相关文件是否存在
12.4.2 直接读取相关文件
12.4.3 使用stat函数判断文件
12.4.4 检查动态库列表
12.4.5 检查环境变量
12.4.6 检查函数是否被劫持
12.5 反盗版
12.5.1 检查Bundle identifier
12.5.2 检查来源是否为App Store
12.5.3 检查重签名
12.5.4 代码校验
12.6 反调试与反反调试
12.6.1 反调试方法
12.6.2 反反调试
12.7 反注入与反反注入
13章 代码入口点劫持
13.1 实现原理
13.2 编写ShellCode
13.2.1 编写ARM汇编
13.2.2 计算main函数的跳转地址
13.2.3 最终的ShellCode
13.3 插入代码
13.4 修改入口点
13.4.1 关于指令切换
13.4.2 ARMv7入口点
13.4.3 ARM64入口点
13.5 重签名
14章 写壳内幕
14.1 判断文件格式类型
14.2 代码的插入
14.3 修改程序入口点
14.4 Shellcode如何调用函数
14.5 编写和调试Shellcode
14.5.1 ARMv7 Shellcode
14.5.2 ARM64 Shellcode
14.6 总结
15章 系统相关
15.1 Cydia的相关问题及修复方法
15.2 降级传说
15.3 访问限制密码的安全隐患
15.4 扫码在线安装应用
15.5 CVE-2018-4407远程溢出漏洞
15.6 解决磁盘空间不足的问题
附录A 书中用到的工具列表

附:iOS黑客攻防秘籍.pdf


- The end -

iOS黑客攻防秘籍

原文始发于微信公众号(计算机与网络安全):iOS黑客攻防秘籍

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年11月13日21:52:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  iOS黑客攻防秘籍 http://cn-sec.com/archives/1406907.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: