对macho文件有一定理解后,了解下optool
是如何给macho文件增加动态库等功能的
optool 源码
环境
macOS 13.4 (22F66)
Xcode 14.3.1
0x0 编译
下载源码
1 | $ git clone --recurse-submodules https://github.com/alexzielenski/optool.git |
修改下Deployment Target,比如改成11.0,不修改会报
1 | <?xml version="1.0" encoding="UTF-8"?> |
平常用的颜色宏大概如下
1 | #define RGBHex(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0] |
考虑到蓝湖中获得的十六进制颜色值为#FF0000
,cv时需要先删除#再添加0x
,想省略这部分
C
语言宏中’#’称之为字符串化操作符(Stringizing Operator),它将函数宏的实际参数转换为对应的字符串常量。利用这个特点定义如下的颜色宏
1 | #define HEXA(COLOR,A) ({ \ |
支持0xFF0000/#FF0000/FF0000
这三种格式
以前想获取应用的 .ipa
文件可以从 iTunes
下载,macOS
上的 iTunes
升级成 12.7
后,无法再获得 .ipa
文件, 而iOS 9
后就不能从 iTools
之类的辅助工具中导出 .ipa
文件。
后面 Apple
官网又提供了一个 12.6.3 的链接
出于好奇心,想试试直接导出.ipa
文件,并重签名安装到未越狱的设备上。
在上一篇中简单分析了 Weak
属性是如何被存储,获取和销毁的,其中的 SideTable
结构体当做黑盒进行处理。本文尝试对 SideTable
的结构进行一些分析。
1 | struct SideTable { |
SideTable
主要分为 3
部分
weak_table_t
: weak
引用的全局 hash
表RefcountMap
: 引用计数的 hash
表slock
: 保证原子操作的自旋锁Update your browser to view this website correctly. Update my browser now