ios逆向初探
ios逆向初探
ios 信息
iOS的越狱(Jailbreaking)是指通过绕过Apple设备上的操作系统限制,从而获得对设备操作系统更深层次的访问权限的过程。这通常是为了能够安装和运行未经Apple认证的第三方应用程序和修改系统设置,提供更大的自由度。
iOS砸壳是指通过技术手段解密和破解iOS应用程序的加密保护,以便绕过App Store的审查机制,查看应用的内部代码,或修改其行为。
- 解密IPA文件:iOS应用程序通常以IPA文件格式存在,其中包含了应用的二进制文件、资源和相关数据。这些文件在发布到App Store之前,Apple会对其进行加密处理,以防止逆向工程和破解。砸壳的目的是通过绕过或破解这种加密,提取出应用的二进制文件。
- 绕过代码签名:iOS应用程序在执行时需要通过Apple的代码签名验证,确保应用来自合法开发者且未被篡改。砸壳通常包括绕过这个签名机制,使应用可以在越狱设备或非App Store渠道上运行。
ios一般逆向流程
一般来说流程为 脱壳->class-dump-抓包->逆向分析,然后分析软件的核心算法,这些步骤基本就和正常逆向区别不大了。
苹果市场会对应用进行加壳。可以使用frida进行dump脱壳。ios的一些函数可以在Apple Development上进行查找
ios用hopper可以还原出swift的伪代码,地址Linux]Hopper Disassembler v5.7.7 Full Version - 吾爱破解 - 52pojie.cn
Objective-C 和 Swift 是两种 iOS 和 macOS 应用开发中常用的编程语言,它们用于编写 iOS 应用的核心代码,处理应用的逻辑、界面、与硬件的交互等功能。它们是 Apple 提供的主要编程语言,并且密切与 iOS 开发相关。
Objective-C 是 Apple 推出的传统编程语言,它基于 C 语言,并且增加了面向对象编程的特性。Objective-C 是苹果公司开发 iOS 和 macOS 应用的主要语言之一,直到 2014 年 Swift 发布之前,它几乎是唯一的选择。
如
1 | #import <UIKit/UIKit.h> |
Swift 是 Apple 于 2014 年推出的现代化编程语言,它被设计为 Objective-C 的替代品,提供了更高效、更安全、更易读的编程体验。Swift 专为开发 iOS、macOS、watchOS 和 tvOS 应用而设计,已成为 Apple 生态中首选的编程语言。
1 | import UIKit |
跟java挺像的
这里使用ByteCtf的一道作为例题
Demo
看名字能知道有很多个button
bottom1
bottom1是将随机数跟一个数比对,没什么逻辑
bottom2
主逻辑
1 | id __cdecl -[ViewController first](ViewController *self, SEL a2) |
1 | {a67be199da4b-b092-bd3e-e777-a67be199da4b} |
1 | 5 2 3 4 5 |
这里做了置换
1 | import hashlib |
ByteCTF{c9838b3c-810c-b263-ee59-0b8547c09a7a}
hopper: