首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
iOS
订阅
PhilCai1993
更多收藏集
微信扫码分享
微信
新浪微博
QQ
18篇文章 · 0订阅
深入iOS系统底层之静态库
少长咸集,群贤毕至。--《王羲之・兰亭集序》 程序员编写的是源代码,而计算机运行的则是CPU能识别的机器指令,因此必须要有一系列工具或程序来将源代码转化为机器指令,这个转化的过程需要经历编译和链接两个主要阶段。所谓编译就是将源代码文件转化为中间的目标文件(Object file…
一文说清 OCLint 源码解析及工作流分析
由于 OCLint 是一个基于 Clang tool 的静态代码分析工具,所以不得不提一下 Clang。 Clang 作为 LLVM 的子项目, 是一个用来编译 c,c++,以及 oc 的编译器。 OCLint 本身是基于 Clang tool 的,换句话说相当于做了一层封装。…
基于 LibTooling 的自动埋点
这一篇我们继续来学习 Clang,以及如何将它用在工作中。在此之前你可能需要了解一点 iOS 的编译知识,可以看这一篇。 我想你应该是听过 Clang 的,Clang 为分析代码语法、语义信息的工具提供了很好的基础设施。以此衍生出来了 3 个东西: LibClang、Clang…
iOS汇编教程(四)基于 LLDB 动态调试快速分析系统函数的实现
在前三篇文章中,主要介绍了汇编中的常见指令和寻址方法,本文将结合这些知识介绍一种基于汇编代码和动态调试快速分析函数逻辑的方法。 在进行逆向工程,或是涉及到底层的正向开发(如性能优化、安全防护)时,常常会使用一些系统级的函数,有些时候从细节上了解这些函数的逻辑是十分必要的,例如 …
在 ARC 下对非 ObjC 类型的指针进行操作的编译器陷阱
在通常情况下,我们的代码在通过 LLVM 进行编译时,如果开启了 ARC 模式,在 backend 阶段会通过几个 ObjcARC Pass 插入基于引用计数的内存管理语句,这建立在编译器的类型推导和控制流分析等基础之上。 如果某些隐式操作逃过了 ObjCARC Pass 的“…
iOS Jailbreak Principles - Sock Port 漏洞解析(一)UAF 与 Heap Spraying
在之前的汇编教程系列文章中,我们在用户态下探讨了诸多原理。从今天开始,我们将详细分析历代 iOS Jailbreak Exploits,并由此深入 XNU 内核,并学习更多二进制安全攻防的知识。 虽然国外大佬提供的 Exploit PoC 都有较为详细的 write-up,但这…
iOS汇编教程(五)Objc Block 的内存布局和汇编表示
在 Objc 中,Block 是一个特殊的对象,它的实例并非是常规的对象结构,而是以 Block_layout 结构体的形式存在。在声明时,Block 的结构体会以值类型的形式直接存储在栈上,随后会被 copy 到堆上,成为一个特殊的对象,学习 Block 的底层原理一方面能够…
Flutter通用基础库flutter_luakit_plugin
文章开头我们先开门见山给出使用flutter_luakit_plugin作为基础库开发和普通flutter的区别。由于flutter定位是便携UI包,flutter提供的基础库功能是不足以满足复杂数据的app应用的,一般flutter开发模式如下图所示,当flutter满足不了…
获取网络图片的大小
根据网络图片来自定义布局是一件很蛋疼的事情,如果需要根据图片的大小来决定页面控件的布局,或者说在一个 TableView 上面有多张大小不一的图片,我们要根据图片的大小的决定 Cell 的高度。玩过 Tumblr 的人可能都知道,不像微信微博之类的 App,Tumblr 在图片…
Mach-O文件周边二三事
Apple不断放宽在蜂窝网络下,从AppStore下载App的大小限制,2013年9月,iOS 7正式版后,蜂窝网络下App下载大小的限制,从 50 MB 提升至 100 MB。