
iOS逆向
goodswifter
iOS开发
展开
-
01-越狱环境搭建
学习基础学习条件建议至少iOS 8完美越狱版本也不能太高,要保证能够完美越狱检查手机是否可以越狱iOS Jailbreak(iOS越狱)什么是iOS Jailbreak?iOS系统的漏洞,获取iOS系统的最高权限(Root),解开之前的各种限制(合法行为)完美越狱和不完美越狱完美越狱越狱后的iPhone可以正常关机和重启不完美越狱iPhone一旦关机后再开机...原创 2019-03-29 15:18:49 · 334 阅读 · 0 评论 -
09-1-ARM64汇编之基础
文章目录1. iOS汇编2. 指令2.1 mov2.2 ret2.3 add2.4 sub2.5 cmp2.6 b2.7 bl2.8 条件域2.9 内存操作3. 寄存器3.1 通用寄存器3.2 程序计数器3.3 堆栈指针3.4 链接寄存器3.5 程序状态寄存器3.6 零寄存器,里面存储的值是01. iOS汇编真机: arm64汇编寄存器指令堆栈模拟器: x86汇编2. 指令...原创 2019-05-10 16:30:23 · 875 阅读 · 0 评论 -
08-4-动态调试之ASLR
文章目录1. ASLR1.1 什么是ASLR1.2 iOS4.3开始引入了ASLR技术2. Mach-O的文件结构3. 未使用ASLR4. 使用了ASLR5. 函数的内存地址5.1 函数内存地址计算5.2 如何获取函数的真实内存地址5.2.1 通过usb映射端口5.2.2 登录手机5.2.3 让手机开启debugserver服务, 并加入需要调试的进程5.2.4 通过电脑的lldb调试器调试APP...原创 2019-05-09 16:32:43 · 1041 阅读 · 0 评论 -
08-3-Mach-O文件结构
文章目录1. Mach-O的文件结构2. Mach-O文件在虚拟内存中的分布情况2.1 VM Address、VM Size、File Offset、File Size的含义2.2 虚拟内存的分布Mach Header - 可执行文件文件头Load Commands - 加载命令摘要:对于mach-o是Mac和iOS可以执行文件的格式。进程就是系统根据该格式将执行文件加载到内存后得到的结果。系...原创 2019-04-24 17:20:43 · 530 阅读 · 0 评论 -
08-1-iOS逆向之动态调试App
文章目录一、什么是动态调试二、Xcode的动态调试原理三、动态调试任意APP3.1 debugserver的权限问题3.2 如何给debugserver签上权限一、什么是动态调试将程序运行起来,通过下断点、打印等方式,查看参数、返回值、函数调用流程等二、Xcode的动态调试原理关于GCC、LLVM、 GDB、LLDBXcode的编译器发展历程: GCC→LLVMXcode的...原创 2019-04-19 15:54:16 · 689 阅读 · 0 评论 -
08-2-iOS逆向之常用的LLDB指令
文章目录指令的格式helpexpressionthread backtracethread return []frame variable指令的格式<command> [<subcommand> [<subcommand>. . .]] <action> [-options [option-value]] [argument [argumen...原创 2019-04-21 13:24:08 · 267 阅读 · 0 评论 -
07-4-iOS逆向之自定义命令行工具
文章目录需求1. main 函数处理1.1 通过Xcode创建一个Single View App 项目1.2 编译命令行1.3 编译, 找到命令行1.4 测试命令行2. 读取魔数(magic number)2.1 `magic number `: 魔数, 用来标识架构类型2.2 查看可执行文件的魔数3. 通过内核源码比对魔数的值4. 给TestCL文件添加SpringBoard权限4.1 权限相关...原创 2019-04-16 17:59:37 · 711 阅读 · 0 评论 -
07-1-theos实战 : 去掉越狱手机桌面app的角标数字
需求去掉越狱手机桌面app的角标数字此教程所需要的工具/文件class-dumpiToolsOpenSSH(Cydia)iFile(Cydia)Cycript(Cydia)一台越狱的iPhone分析手机桌面也是一个APP, 名字是SpringBoard通过 PS 命令 和 iFunBox 工具获取手机桌面的 Mach-O 文件用 class-dump 将Spr...原创 2019-04-09 15:36:59 · 487 阅读 · 0 评论 -
07-3-theos-tweak的开发、运行过程、卸载、多文件开发以及发布release版本
文章目录tweak的实现过程疑问tweak的实现过程编写Tweak代码$ make :编译Tweak代码为动态库(* dylib)$ make package :将dylib打 包为deb文件$ make install :将deb文件传送到手机上,通过Cydia安装deb插件将会安装在/Library/MobileSubstrate/DynamicLibraries文件夹中...原创 2019-04-10 14:53:03 · 700 阅读 · 0 评论 -
07-2-theos实战: 给微信的"发现”界面增加2行功能
文章目录需求此教程所需要的工具/文件分析1. 根据TableView找到它的数据源, 修改数据源方法2. 获取微信的脱壳的Mach-O文件2.1 获取微信的存储路径2.2 查看Mach-O文件是否加密2.3 脱壳3. 用 `class-dump` 将Mach-O的头文件导出4. 用theos编写插件4.1 获取微信的bundle Id4.2 编写tweak文件4.2.1 返回cell个数和cell...原创 2019-04-10 13:38:12 · 773 阅读 · 2 评论 -
07-theos的安装、使用以及相关问题
一、安装签名工具ldid先确保安装了brew$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"利用 brew 安装 ldid$ brew install ldid二、修改环境变量编辑用户的配置文件$ vim ~/....原创 2019-03-29 18:37:57 · 712 阅读 · 0 评论 -
06-加壳和脱壳
加壳和脱壳01-加壳和脱壳1.1 加壳1.2 脱壳1.3 iOS中的脱壳工具1.4 如何验证可执行文件是否已经脱壳?02-Clutch2.1 Clutch - 配置2.2 Clutch – 使用03-dumpdecrypted3.1 dumpdecrypted3.2 dumdecrypted – 细节3.2.1 在使用过程中,可能会遇到以下错误3.2.2 原因1:对dylib所在的文件夹权限不够3...原创 2019-03-29 17:36:06 · 646 阅读 · 0 评论 -
05-初始Mach-O
初始Mach-O01-APP的生命周期1.1 APP从开发到安装到手机的过程02-逆向APP的思路2.1 界面分析2.2 代码分析2.3 动态调试2.4 代码编写03-class-dump04-Hopper Disassmbler4.1 代码的编译过程4.2 Hopper Disassmbler05-系统的动态库5.1 动态库共享缓存(dyld shared cache)5.2 动态库使用展示5....原创 2019-03-29 17:03:04 · 240 阅读 · 0 评论 -
04-Reveal
Reveal01-Reveal介绍02-Reveal使用以及调试2.1 调试环境配置12.2 调试环境配置22.3 调试环境配置32.3.1 发现更新 `Reveal` 之后提示版本问题2.3.2 解决办法2.3.3 总结2.4 选择USB方式开始调试01-Reveal介绍Reveal是一款调试iOS程序UI界面的神器02-Reveal使用以及调试2.1 调试环境配置1iPhone上安...原创 2019-03-29 16:26:15 · 224 阅读 · 0 评论 -
03-Cycript
Cycript01-Cycript1.1 Cycript1.2 Cycript的开启和关闭1.2.1 开启1.2.2 常用快捷键1.3 ps命令1.3.1 安装`adv-cmds`1.3.2 ps命令是 `process status` 的缩写,使用ps命令可以列出系统当前的进程02- 常用语法2.1 常用语法12.2 常用语法203-封装Cycript3.1 封装Cycript - .cy文件编...原创 2019-03-29 16:17:33 · 349 阅读 · 3 评论 -
02-逆向环境搭建
逆向环境搭建01-提供工作效率的工具02-SSH登录2.1 Mac远程登录到iPhone2.2 SSH、OpenSSH2.3 使用OpenSSH远程登录2.4 使用OpenSSH远程登录2.5 root、mobile2.6 SSH的版本03-SSL3.1 SSL、OpenSSL04-SSH的通信过程4.1 SSH的通信过程可以分为3大主要阶段05-建立安全连接5.1 建立安全连接06-客户端认证6...原创 2019-03-29 15:58:55 · 409 阅读 · 0 评论 -
09-2-ARM64汇编之函数分类
09-1-ARM64汇编之函数分类1. 函数的分类2. 叶子函数如何开辟栈空间?3. 非叶子函数如何开辟栈空间?1. 函数的分类叶子函数 : 不做任何调用的函数非叶子函数 : 内部有调用其他函数2. 叶子函数如何开辟栈空间?代码void haha(){ int a = 2; int b = 3;}汇编代码_haha: sub sp, sp, #1...原创 2019-05-16 17:44:28 · 379 阅读 · 0 评论