《macOS软件安全与逆向分析》 丰生强, 邢俊杰 9787115460639

配送至
$ $ USD 美元

编辑推荐

软件开发人员与安全人员案头bi备的技术专著,注重实战,干货满满。
全面深入地分析macOS系统中的软件安全、逆向分析与加密解密技术。
包含信息安全领域一线软件安全专家丰生强的多年实战经验。
获得BAT、360等众多互联网公司知名软件安全专家联袂推荐。

本书特点

1.循序渐进的学习路线。知识讲解由浅入深,工具使用与原理讲解符合学习路线。
2.注重实例分析。在讲解技术点时辅以大量实例,展示技术涉及的应用场景与实际效果。实例经过作者精心编写和反复调试,便于读者加深对技术的理解。
3. 第三方实用工具讲解。本书提倡读者多动手实践,除了系统地介绍命令,还使用了八十多个实用的第三方工具。便于读者理论与实践相结合。

作者简介

丰生强,网名非虫,独立软件安全研究员,zi深安全专家,ISC2016安全训练营独立讲师,有着丰富的软件安全实战经验。自2008年起,在知名安全杂志《黑客防线》上发表多篇技术文章,从此踏上软件安全道路,常年混迹于国内各大软件安全论坛。著有畅销安全图书《Android软件安全与逆向分析》。

邢俊杰,zi深程序员,软件安全爱好者,C++ Web框架Cinatra开发者,对编译器与调试器开发有着深入的研究。现就职于国内某互联网公司。业余时间喜欢研究软件与系统的底层,热爱读书与动画。

目录

第1章如何分析macOS软件
1.1分析环境搭建
1.1.1安装Clang
1.1.2HTEditor
1.1.3Homebrew
1.2第一个macOS程序
1.3使用HTEditor进行破解
1.4本章小结
第2章系统安全架构
2.1系统架构概述
2.1.1shell环境
2.1.2目录结构
2.1.3文件权限
2.2系统调用
2.3进程间通信
2.4安全框架
2.4.1CommonCrypto
2.4.2Keychain
2.4.3安全传输
2.5系统安全机制
2.5.1FileVault2
2.5.2代码签名
2.5.3ASLR/kASLR
2.5.4沙盒
2.5.5Rootless
2.5.6Gatekeeper
2.6软件安全开发建议
2.7本章小结
第3章软件开发基础
3.1Objective—C语言
3.1.1开发环境
3.1.2Objective—C语言特性
3.1.3内存管理
3.2Swift语言
3.2.1Playground
3.2.2Swift语法简介
3.3其他语言
3.4框架
3.4.1框架的开发与使用
3.4.2在Objective—C中使用Swift编写的框架
3.4.3常用的框架
3.5第三方开发工具
3.5.1QtCreator
3.5.2XamarinStudio
3.5.3JetBrains系列开发工具
3.5.4VisualStudoCode
3.6完整的CocoaGUI程序
3.6.1创建工程
3.6.2Storyboard和xib
3.6.3Outlet和Action机制
3.7本章小结
第4章软件内幕
4.1可执行文件
4.2下载与安装软件
4.2.1免费与付费软件
4.2.2安装软件
4.3Bundle
4.3.1Bundle目录结构
4.3.2在代码中访问Bundle
4.4通用二进制格式
4.5Mach—O文件格式
4.5.1Mach—O简介
4.5.2Mach—O头部
4.5.3加载命令
4.5.4LCODE_SIGNATURE
4.5.5LC—SEGMENT
4.6动态库
4.6.1构建动态库
4.6.2dyld
4.6.3动态库的加载
4.7静态库
4.7.1构建静态库
4.7.2静态库格式
4.7.3管理静态库
4.8框架
4.8.1构建框架
4.8.2框架的使用与安装
4.9pkg
4.9.1构建pkg
4.9.2pkg的安装与卸载
4.9.3pkg文件格式
4.9.4破解pkg
4.10dmg
4.10.1构建dmg
4.10.2管理dmg
4.11本章小结
第5章汇编基础
5.1搭建汇编语言开发环境
5.2HelloWorld代码概览
5.3伪指令
5.4x86_64汇编基础
5.4.1寄存器
5.4.2汇编语法
5.4.3数据传送指令
5.4.4控制转移指令
5.4.5栈操作指令
5.4.6运算指令
5.5与其他模块的交互
5.5.1与C语言互相调用
5.5.2使用系统调用
5.6本章小结
第6章软件静态分析
6.1代码分析与二进制分析
6.2分析工具
6.2.1Radare2
6.2.2IDAPro
6.2.3Hopper
6.3代码分析技术
6.3.1行为分析
6.3.2资源分析
6.3.3数据分析
6.3.4流量分析
6.3.5API分析
6.4反汇编工具的使用
6.4.1反汇编
6.4.2流程图
6.4.3伪代码
6.5破解Mach—O程序
6.5.1定位修改点
6.5.2修改程序
6.5.3代码签名处理
6.5.4重新打包
6.5.5Keygen
6.6本章小结
第7章软件动态调试与跟踪
7.1DTrace
7.1.1DTrace简介
7.1.2DTrace示例
7.2D脚本语言
7.2.1脚本加载方式
7.2.2D语言与C语言
7.2.3D语言语法
7.2.4变量
7.2.5参数传递
7.2.6聚合
7.2.7内置函数与变量
7.3调试器
7.3.1GDB
7.3.2LLDB
7.3.3IDAPro
7.3.4Hopper
7.4本章小结
第8章调试器开发
8.1概述
8.2开发环境搭建
8.2.1安装所需环境
8.2.2编译Saber
8.3系统调试接口
8.3.1ptrace简介
8.3.2Mach调试接口
8.4macOS异常机制
8.4.1异常与MachRPC/IPC
8.4.2信号
8.5调试器功能实现
8.5.1调试器架构
8.5.2开始调试
8.5.3异常处理循环
8.5.4读写被调试进程内存
8.5.5获取基地址与八口点
8.5.6单步调试
8.5.7断点
8.5.8继续运行
8.5.9反汇编
8.6本章小结
第9章破解技术
9.1软件破解步骤
9.2常见的保护类型
9.2.1试用版&序列号
9.2.2License授权
9.2.3重启验证与暗桩
9.2.4防拷贝技术
9.2.5网络验证
9.2.6混合验证
9.3AppStore内购机制
9.4Hook技术
9.4.1DYLD_IN5ERT_LIBRARIES
9.4.2SymboITableHook
9.4.3InlineHook
9.4.4MethodSwlzzing
9.5代码注入
9.5.1静态注入
9.5.2动态注入
9.5.3Hook与注入框架
9.6补丁&注册机
9.7本章小结
第10章反破解技术
10.1反破解技术类型
10.2校验保护
10.2.1完整性检查
10.2.2代码签名验证
10.2.3沙盒检测
10.2.4来源检测
10.3代码保护
10.3.1代码混淆
10.3.2SMC
10.3.3代码校验
10.3.4壳保护
10.4数据保护
10.4.1数据清除
10.4.2数据存储
10.4.3数据传输
10.5调试器对抗
10.5.1调试器检测
10.5.2反调试
10.6Hook检测
10.6.1MethodSwizzing检测
10.6.2dyldHook检测
10.7本章小结
第11章游戏安全
11.1游戏类型
11.2游戏框架与引擎
11.2.1SpritcKit与SceneKit
11.2.2GameplayKit&ReplayKit
11.2.3Cocos2d—x
11.2.4Unity3D
11.3游戏分析工具
11.3.1静态分析工具
11.3.2动态调试工具
11.3.3资源修改工具
11.3.4内存修改工具
11.4游戏分析方法
11.4.1对比分析
11.4.2动态调试
11.4.3静态补丁
11.4.4动态补丁
11.5防破解技术
11.6本章小结
第12章恶意软件与Rootkit
12.1安全趋势
12.1.1知名恶意软件
12.1.2安全漏洞
12.1.3安全软件
12.2文件关联技术
12.3软件自启动技术
12.3.1LaunchItems
12.3.2LoginItems
12.3.3StanupItems
12.3.4Login/LogoutHooks
12.3.5CronJobs
12.3.6PeriodicSccipts
12.3.7AuthorizationPlugins
12.3.8BrowserExtensions
12.3.9SpotlightImporters
12.3.10QuickLookPlugins
12.3.11KernelExtensions
12.4ROotkit
12.4.1文件隐藏
12.4.2进程隐藏
12.4.3内核模块隐藏
12.4.4Root提权
12.5本章小结
附录macOS工具一览表
参考资料

文摘

版权页:

插图:

11.4.4动态补丁
对游戏进行动态补丁,通常不是应用于游戏破解,而是对游戏进行分析,实现游戏外挂或其他目的。具体到工具上,可以使用前面介绍的osxinj对游戏进行动态注入,这种动态注入技术同样适合补丁Unity3D游戏,不过操作起来难度较高,需要找到游戏DLL中需要补丁的地方,本地编写DLL补丁文件,反编译后获取它的字节码,接着编写注入库,在库中注入游戏进程,查找游戏DLL文件所在的地址,定位分析游戏方法地址,最后将前而生成的补丁内容补上去。
虽然原理比较简单,但实际编写工具时,可能会遇到内存页读写保护、字节码错误、段对齐等多个细节问题。
11.5防破解技术
在游戏界,很多厂商与游戏开发人员会斥责游戏破解者们,把他们比喻成游戏建筑界的“老鼠”,他们认为,创建一个游戏就像建一栋高楼大厦,创造的过程是艰辛的。游戏破解者们破解游戏,就好像老鼠破坏建筑一样,毫无技术可言,只是给建筑打洞而已。这样的行为不但破坏了游戏世界的和平,而且伤害了开发人员的感情。而破解人员则声称自己的破解行为并不是为了利益,而是对技术的挑战,破解游戏后,他们都会免费放到网络上供人们下载,一方面是为了方便广大的游戏爱好者,另一方面,是为了让游戏开发商加强游戏安全,也是对游戏厂商的一种有力督促。
ISBN9787115460639
出版社人民邮电出版社
作者丰生强
尺寸16