这门课解决什么问题

很多做安全测试或底层开发的人转到 macOS 环境后,会发现苹果生态相对封闭,一个应用装上后,它的目录结构怎么组织、依赖哪些动态库、可执行文件怎么加载,往往缺乏系统说明。这门课就是针对这个场景:把 macOS 平台上应用软件的分析流程拆开,从包结构、Mach-O 文件格式、代码签名到动态库加载机制,逐块讲清楚。它不是教你写一个完整 App,而是帮你建立“拿到一个陌生软件后怎么拆开看”的工程能力。

适合什么基础,建议先看哪几块

资料默认你已经有一点编程概念,最好接触过 C 或 Objective-C 语法,能看懂基本的头文件和函数声明;如果你只写过脚本,前几节关于目录结构和包管理的部分能跟上,但到 Mach-O 文件头和加载命令时可能会吃力。建议先把应用目录结构这两节看完,建立对 .app 包内各资源文件位置的直觉;接着直接跳到代码签名和加载命令这两块,因为这两部分决定了软件能不能正常启动、依赖关系怎么解析,是后续静态分析的前置基础。Hopper 相关的那节可以放在中段,配合 Mach-O 头一起看,理解偏移地址和反汇编视图怎么对应。

学完能独立做什么,资料怎么配合练习

学完后,你应该能独立完成这几件事:用包管理工具搭建分析环境、定位一个应用的可执行文件和资源文件位置、解析 Mach-O 文件头中的加载命令并判断它依赖哪些动态库、读懂代码签名信息并判断签名状态。练习时不要只看视频:自己找一台 macOS 设备,挑一个结构简单的小工具作为样本,边看边用命令行工具查看文件头和签名信息,把课程里讲的字段对着真实文件走一遍。遇到 Category 和 Objective-C 相关章节,可以找一个用 OC 写的开源小项目做对照,验证分类机制在二进制里的呈现方式。这样配合下来,资料才不会停留在“看过”层面。


掌握基于macOS平台的软件分析的原理、步骤以及详细过程

课程目录

*   01 macOS软件分析实战/

  *   01 课程介绍.mp4 05:49

  *   02 HomeBrew安装.mp4 08:34

  *   03 应用软件的目录结构(1).mp4 10:42

  *   04 应用软件的目录结构(2).mp4 14:35

  *   05 SMC技术与Hopper软件.mp4 05:15

  *   06 Mach-O文件头.mp4 15:37

  *   07 ASLR与Mach-O文件头(1).mp4 10:05

  *   08 ASLR与Mach-O文件头(2).mp4 05:03

  *   09 代码签名codesign.mp4 08:57

  *   10 加载命令LoadCommand.mp4 18:04

  *   11 LOAD_DYLIB命令类型.mp4 15:28

  *   12 Objective-C中的分类Category.mp4 05:53

  *   13 狸猫换太子:Objective-C类方法的替换.mp4 14:54

  *   14 导出Objective-C程序中的Header内容.mp4 09:09

  *   15 dylib文件的配置及使用(1).mp4 16:54

  *   16 dylib文件的配置及使用(2).mp4 17:19

  *   17 Framework的开发和使用.mp4 17:48

  *   18 自定义打包的dmg文件.mp4 12:15

  *   19 lldb调试入门:获取二维码字符串(1).mp4 16:17

  *   20 lldb调试入门:获取二维码字符串(2).mp4 13:25

  *   21 Xcode调试入门:无源码程序调试.mp4 12:38

  *   22 Xcode调试入门:自定义动态库调试.mp4 16:28

  *   23 Xcode调试入门:用自定义的动态库调试无源码的可执行程序.mp4 21:08

  *   24 代码演示:获取应用程序的版本信息.mp4 06:19

  *   25 代码演示:输出软件自身的调试信息.mp4 17:30

  *   26 代码演示:调用应用程序中的类的方法.mp4 12:00

  *   27 代码演示:调用应用程序中的类的实例方法.mp4 10:24

  *   28 代码演示:创建一个基于TCP的Socket Server.mp4 17:04

  *   29 代码演示:创建一个基于TCP的Socket Client.mp4 14:48

  *   30 代码演示:在Framework中集成Socket Clien.mp4 06:58

  *   31 代码演示:JSON字符串解析.mp4 10:53

  *   32 代码演示:OC对象的JSON序列化.mp4 07:25

  *   33 代码演示:构建JSON字符串并将其发送到Server端.mp4 12:04

  *   34 Xcode调试:获取扫描二维码后的用户基本信息.mp4 11:09

  *   35 Xcode调试:获取扫描二维码后的系统通知信息.mp4 19:04

  *   36 小工具制作:编写一个头文件代码转换器(1).mp4 17:27

  *   37 小工具制作:编写一个头文件代码转换器(2).mp4 18:49

  *   38 代码演示:在程序启动后自动点击登录按钮.mp4 14:05

  *   39 代码演示:让程序自动发送鼠标点击屏幕的事件.mp4 19:20

  *   40 代码演示:让软件实现全屏截图.mp4 07:38

  *   41 代码演示:在软件中使用API实现指定窗口截图.mp4 08:41

  *   42 代码演示:创建一个可以上载文件的Web Server.mp4 20:21

  *   43 代码演示:创建一个可以下载上载文件的Web Client.mp4 17:41

  *   44 代码演示:在Framework中集成Web Client.mp4 08:44