首页
AI Coding
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
iOS编译链接
订阅
NeoJY
更多收藏集
微信扫码分享
微信
新浪微博
QQ
9篇文章 · 0订阅
Drafter: 一个在iOS项目中分析代码结构的工具
在分析一个工程中的单个代码文件时,无法得知定义在其他文件中的类或方法,导致生成的语法树节点缺失,对最终的结果造成不小的影响。 在解析时clang会进行预处理,导致最终生成的结果可能包括一些外部系统库的函数,这对于我们来说是无用的信息(当然这个应该是我的使用姿势问题)。 无法支持…
CocoaPods使用指南
对于大多数软件开发团队来说,依赖管理工具必不可少,它能针对开源和私有依赖进行安装与管理,从而提升开发效率,降低维护成本。本文聚焦于 iOS 方面,对 CocoaPods 的使用和部分原理进行阐述。
iOS逆向安防从入门到秃头--MachO中的符号
小谷最近生病了几天,借此机会也研究了下符号~ 今天来小叙一下符号。(这个东西大家应该都不会陌生~) 1. 符号的定义 1.1. 什么是符号 小谷说下自己的理解吧~ 其实符号的概念比较广,我们开发中,编
静态插桩的方式来实现Hook Method
我之前写了一个开源库TimeProfiler,监控所有的OC方法耗时。可以在开发App阶段,很方便的看到主线程所有OC方法的耗时。但是由于TimeProfiler是通过fishhook基于运行时hook,所以从原理上,它就有局限性:不能选择hook部分类的OC方法。这造成2个很…
iOS程序员的自我修养-fishhook原理(五)
MachO文件动态链接里面讲到,模块间的数据访问和函数调用,都是用间接寻址。主模块将要访问动态库里的数据符号地址放在got(也称Non-Lazy Symbol Pointers)数据段,调用动态库的函数的地址放在la_symbol_ptr数据段。而数据段是可读写的,所以程序运行…
iOS程序员的自我修养-MachO文件静态链接(三)
请注意,生成的a.o和b.o目标文件,都是基于arm64。a.o和b.o目标文件通过静态链接后生成可执行文件ab。(由于基于arm64,其实链接过程,也有动态链接库libSystem.B.dylib(系统库)参与,但本文忽略动态链接的参与,只讨论静态链接。要是基于X86,就不会…
iOS程序员的自我修养-MachO文件结构分析(二)
进程是特殊文件在内存中加载得到的结果。那这种文件的格式必须是系统内核可以理解的,系统内核才能正确解析。 系统内核将文件读入内存,然后寻找文件的头签名(魔数magic),根据magic就可以判断二进制文件的格式。 其实PE/ELF/Mach-O这三种可执行文件格式都是COFF(C…
iOS程序员的自我修养-编译、链接过程(一)
OC是用Clang/LLVM来编译的。接下来我将用clang来展开整个过程。main.m文件源码如下: 平时用Xcode去Build,一键从源码到程序。这个过程中隐藏了预处理、编译、汇编和链接4个过程如下: 处理源代码文件中的以"#"开头的预编译指令。规则如下: "#defin…
iOS程序员的自我修养-MachO文件动态链接(四)
动态链接要比静态链接复杂多了,我要是直接分析MachO文件动态链接的具体实现,会让读者知其然不知其所以然。所以本文分成2部分,第一部分先讲理论知识,基本解答了如下几个问题: 动态链接产生原因、基本思想、工作过程。 position-independent code (PIC 地…