Skip to content

Commit 4c3de42

Browse files
authored
Update 2025-09-18-iOS-All-The-Things-Part-I.md
1 parent 4280381 commit 4c3de42

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

_posts/2025-09-18-iOS-All-The-Things-Part-I.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
date: 2025-09-18 14:42:30
2+
date: 2025-09-18 14:50:30
33
layout: post
44
title: iOS All The Things - Part I
55

@@ -45,6 +45,9 @@ This process typically covers several core areas:
4545
The goal is to emulate a real-world attacker's methodology to discover and help remediate risks, ensuring the app adheres to security best practices and protects sensitive user data effectively.
4646

4747
## iOS Architecture
48+
49+
![image](/assets/img/ios-pentesting/Part-I/layers-ios-arch.png)
50+
4851
The first layer is the **Core OS Layer**. It is based on a Unix-like kernel, from which iOS inherits powerful low-level features and capabilities, such as a command-line interface and shell.
4952

5053
This layer acts as the direct conduit to the device's hardware components, including Bluetooth, Wi-Fi, and various sensors. These components are accessed through secure, structured APIs.
@@ -59,12 +62,13 @@ The fourth layer is the **Cocoa Touch Layer**. This is the layer that users dire
5962

6063
> **Important Note:** Apple's iOS is a closed-source environment, unlike Android. You cannot install a modified iOS system because the hardware will reject it. All hardware components are cryptographically signed by Apple. Only the original iOS system has the correct digital certificate to communicate with the signed hardware. During boot, a "secure boot chain" process validates the iOS signature. If the signature is valid, the system boots; if not, it fails. This ensures only genuine Apple software can run on the device.
6164
62-
![image](/assets/img/ios-pentesting/Part-I/layers-ios-arch.png)
6365

6466
## IPA Architecture
6567
An IPA file is the application package format for iOS, functionally equivalent to an APK package on Android.
6668
When you extract an IPA package (e.g., test.ipa), you obtain its core contents. The key components include:
6769

70+
![image](/assets/img/ios-pentesting/Part-I/ipa-arch.jpg)
71+
6872
##### Info.plist
6973
This is the Information Property List file, which serves a role similar to the AndroidManifest.xml in Android. It contains crucial metadata about the application, including:
7074

@@ -111,20 +115,16 @@ Examples of Entitlements:
111115
* com.apple.security.device.microphone → Allows access to the microphone.
112116
* com.apple.security.device.bluetooth → Allows access to Bluetooth.
113117

114-
![image](/assets/img/ios-pentesting/Part-I/ipa-arch.jpg)
118+
115119

116120
## Programming iOS Apps
117121
Developing applications for iOS is primarily done using two programming languages: Objective-C and Swift.
118122

119-
| Languages | Definition |
120-
|-----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
121-
| Objective-C | This is an object-oriented programming language built as an extension of the standard C language. It was the primary language for iOS and macOS development for many years. While still maintained and used, especially in older codebases, it has largely been superseded by Swift for new projects.
122-
| Swift | Introduced by Apple in 2014, Swift is a modern, fast, and type-safe programming language designed specifically for iOS, macOS, and other Apple ecosystem development. Its cleaner syntax and focus on safety make it the current recommended and most popular language for building new iOS applications.|
123-
124-
125-
* **Objective-C:** This is an object-oriented programming language built as an extension of the standard C language. It was the primary language for iOS and macOS development for many years. While still maintained and used, especially in older codebases, it has largely been superseded by Swift for new projects.
123+
| Language | Definition |
124+
|----------|------------|
125+
| **Objective-C** | This is an object-oriented programming language built as an extension of the standard C language. It was the primary language for iOS and macOS development for many years. While still maintained and used, especially in older codebases, it has largely been superseded by Swift for new projects. |
126+
| **Swift** | Introduced by Apple in 2014, Swift is a modern, fast, and type-safe programming language designed specifically for iOS, macOS, and other Apple ecosystem development. Its cleaner syntax and focus on safety make it the current recommended and most popular language for building new iOS applications. |
126127

127-
* **Swift:** Introduced by Apple in 2014, Swift is a modern, fast, and type-safe programming language designed specifically for iOS, macOS, and other Apple ecosystem development. Its cleaner syntax and focus on safety make it the current recommended and most popular language for building new iOS applications.
128128

129129
The Primary Development Tool: Xcode
130130

0 commit comments

Comments
 (0)