首页
Jovins
取消

13-LLVM

什么是LLVM 官网 LLVM LLVM项目是模块化、可重用的编译器以及工具链技术的集合。 LLVM最早的时候是Illinois的一个研究项目,主要负责人是Chris Lattner(Swift之父),他现在就职于Apple. Apple 目前也是LLVM项目的主要赞助者之一。 传统编译器架构 source code -> Frontend -> Optim...

12-iOS签名机制

学习路线 加密解密 --> 单向散列函数 --> 数字签名 --> 证书 --> iOS签名机制 // 加密解密: 对称密码(DES、3DES、AES)、公钥密码(RSA) // 单向散列函数: MD4、MD5、SHA-1、SHA-2、SHA-3 常见英文 encrypt: 加密 decrypt: 解密 plaintext: 明文 ciphe...

11-ARM64汇编

iOS汇编 真机: Arm64汇编 寄存器 指令 堆栈 模拟器: x86汇编 寄存器 通用寄存器 64bit: x0 ~ x28 32bit: w0 ~ w28(属于x0 ~ x28的低32bit) ...

10-AT&T汇编

AT&T汇编 基于x86架构的处理器所使用的汇编指令一般有2种格式 Intel汇编 DOS(8086处理器)、Windows Windows派系 -> VC编译器 AT & T汇编 Linu...

09-8086汇编

编程语言的发展 机器语言 由0和1组成 汇编语言(Assembly Language) 用符号代替了0和1,比机器语言便于阅读和记忆 操作: 将寄存器BX的内容送入寄存器AX 汇编语言: mov ax, bx 高级语言 ...

08-动态调试

什么叫动态调试 将程序运行起来,通过下断点、打印等方式,查看参数、返回值、函数调用流程等。 Xcode的动态调试原理 关于GCC、LLVM、GDB、LLDB Xcode的编译器发展历程: GCC → LLVM Xcode的调试器发展历程: GDB → LLDB debugserver一开始存放在Mac的Xcode里...

07-Hook

安装签名工具ldid 安装Homebrew $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 利用brew安装ldid $ brew install ldid 修改环境变量 ls -l ls -al // 查看目录文...

06-脱壳

加壳 .ipa –> AppStore –> 安装到手机。在上传到AppStore时对可执行文件进行了加壳操作,也就是进行了加密。 iPhone上安装的App不是所有都被加密的,这取决于App的安装来源,只有是AppStore来源的才是加密的。 什么是加壳? 利用特殊的算法,对可执行文件的编码进行改变(比...

05-动态库缓存

动态库共享缓存(dyld shared cache) 问题: 找出UIKit的Mach-O文件 从iOS13.1开始,为了提高性能,绝大部分的系统动态库文件都打包存放到一个缓存文件中(dyld shared cache) 缓存路径, 手机(/System/Library/Caches/com.apple.dyl...

04-逆向App

1.逆向App的思路 界面分析 借助工具分析App. Cycript、Reveal 代码分析 对Mach-O文件的静态分析。 MachOView、class-dump、Hopper Disassembler、i...