iOS Application Analysis
Theory
iOS Applications
The iOS application archive (.ipa extension) has a format and structure similar to the Android APK. Both are ZIP archives with a custom file extension containing all the necessary files for the application to function correctly. As visible in the following hex dump, the magic bytes of the IPA archive are the same as those of a typical ZIP header:

The application archive includes the application’s executable, configuration files, and any data or image resources. The common file types located in the archive, as described by Apple, are as follows:
• Info.plist The information property list file is the iOS version of the AndroidManifest.xml
configuration file. It is a mandatory configuration file and contains information about the application such as permissions, supported platforms, and names of other relevant configuration files.
• Executable A mandatory file that contains the application code.
• Resource files Additional optional data files such as images and icons. These resources can be localized for a specific language or region or shared across them.
• Support files Additional files that are not resources, such as private frameworks and plug-ins.
iOS applications, like macOS applications, are typically written in Objective- C or Swift programming languages.
Objective-C is a general-purpose, object-oriented programming language that was used as the main language for developing applications on Apple platforms until the introduction of Swift in 2014.
Swift is a successor of Objective-C and, among other things, brings simplicity, speed, and type safety while maintaining compatibility with both Objective-C and C.
Practical
Analyzing Binary Property List Files
Identify the format of .ipa file
file calculator.ipa
Unzip the iOS Application
unzip calculator.ipa
Identify the type of .plist file
file Info.plist
Convert .plist file from Binary to XML
plistutil -f xml -i Info.plist -o Info.xml
Read the .plist file
nano Info.xml
REFERENCES
Last updated
Was this helpful?