fishhook 原理及其源码阅读通过前面的两篇[1]文章,大概上弄清楚了 Mach-O 的基本结构和加载过程,接下来将尽可能详细地分析 [fishhook] 源码。 fishhookfishhook 是一个非常简单的库,在 iOS 系统的模拟器或真机上,它能对 Mach-O 二进制文件动态地进行符号的重绑定,可以用来跟踪或调试来自系统库里面的函数运行情况。对于来自动态库里面的函数,Mach-O 二进制中只是在运行时将其真实地 2020-07-09 Mach-O 底层 底层 Mach-O 加载方式
Mach-O 加载时的动态链接Mach-O 文件结构详解中分析了 Mach-O 的构成,介绍了部分 Segment 和 Section 的结构和其作用,相当于是静态分析。这篇文章将分析 Mach-O 加载时动态链接过程,加深自己的理解。 启动过程iOS App 的启动过程大概分为这几个步骤: 内核初始化部分,负责将 App 的 Mach-O Header 映射到内存中进行处理然后调用 dyld dyld 负责将 App 2020-06-30 Mach-O 底层 Mach-O 加载方式 lldb
给 GitHub Pages 博客绑定免费的个人域名🎉🎉咱也有顶级域名了! 本文将记录 GitHub Pages 绑定域名的过程 域名申请Freenom 是世界上第一个也是唯一的免费域名提供商,但是这家好像是不允许来自大陆的注册和续期了,而且新注册的也需要科学上网才行,所以下面的操作需要首先“云游”到外国,并且在填写注册所需的各种资料时要表现得像一个真人,以免被 Freenom 误判为机器人而申请 2020-06-09 博客装修 装修
Fastlane Match 如何重置证书/描述文件fastlane match 有多香咱就不赘述了,尤其是团队开发和做 CI 时,在开发证书和测试设备管理这两方面使用 fastlane match 能节省不少时间和精力。不过有时候我们会碰到需要重新生成描述文件或重置证书的情况,比如接入 Apple Sign In 功能时,需要在证书中增加对应的能力,必须要更新描述文件时;用于生成原开发证书的本地私钥丢失,不得不重新生成整套证书时。此时 fastl 2020-06-06 开发技巧 fastlane 工具 match
Mach-O 文件结构解析Mach-O 文件是通往系统底层的基础,如果要深入理解 App 的启动加载原理,又或是想做深层次的 App 优化,熟悉 Mach-O 是非常必要的。 Mach-O (Mach Object)是一种 iOS 和 MacOS 上的原生二进制文件,类似于 Windows 里面的 PE 和 Linux 里面的 ELF,弄清楚 Mach-O 的结构和加载可以从 2020-05-24 Mach-O 底层 Mach-O iOS Objective-C 数据结构
从汇编理解 Block 的内存结构❓ 在断点调试 iOS 程序碰到 block 作为函数的形参时,如果想知道该 block 本身的函数签名信息和函数体地址时,有哪些办法?🤪 当然是在源码里面直接查看 block 的声明和调用了!❗️ 但如果源码不可见呢?在分析第三方闭源库或友商 App 的某些逻辑实现时,就只有汇编代码可用 ☕️ 本文将通过汇编代码入手探讨 block 的内存结构,并尝试还原 block 的函数签名信息和函数体真 2020-05-16 汇编 汇编 iOS LLDB block
由 block 的内存布局衍生而来的面试题今天在群里看到大佬们在讨论一个面试题,问如下代码在 32bit 和 64bit 系统上分别报什么错误:1234567#import <Foundation/Foundation.h>int main(){ void (^block)(void) = nil; block(); return 0;} 虽然有大佬一下子说出了答案,但我仍然一脸懵逼,后来 2020-05-08 底层 汇编 iOS Objective-C block 面试
如何快速更换 App icon每逢重大节日,App icon 就要跟一波“潮流”做一次更换,节日过后再换回普通。如何保证这两次切换流程丝滑顺畅呢? 应用内需要更换的 icon 包括两处,一个是 App 主 icon,默认放在 xcassets 里面,另一个就是 App 内部页面所使用的 icon。 App 主 icon 更换苹果这边需要的 icon 实在太多了,如果像我们 App 一样支持 iPad 那么大大小小的 ico 2020-05-05 开发技巧 iOS Python 脚本