How analyze a competitor App?

17 Nov 2022 By MORISSARD Jérôme

Analyze a competitor App is very challenging. Most of the time you will be able to use with the app and try to guess the tricks and secrets.

How analyze a competitor App?

This can be divided into multiple steps : Get the ipa, analyze the package, analyze the binary. Finally, we can consider it’s a very challagening process, it requires a lot of time and expertise.

Why analyze a competitor App?

It is very interesting to understand who you are dealing with. What is its development strategy, what functionality does it prioritize? What technology has he chosen? How does it integrate with the system? These are all things that can guide strategic choices and prioritize features in the roadmap.

Get the App

It’s already a first difficulty. On iOS, an app is packaged as an .ipa to be installed on a device. There are a few methods to successfully obtain that file :

  • old version of iTunes (<= 12.6): In this previous versions of iTunes, it was possible to download and save the .ipa… but it’s not working anymore
  • iAmazing: a very cool tool, you can connect your device and iAmazing is able to generate backups of your apps. Manage and Download Apps .ipa without iTunes
  • Apple Configurator 2: The MDM (Mobile Device Management) of Apple. With some manipulations and a little time you can manage to recover the famous file. There are plenty of articles on the web that explain this.
  • Jailbroken device + Frida: Clearly not the easiest method. It requires a jailbroken device and the desire to get your hands into the code. It is very complicated to have a modified phone because Apple has secured its devices very well.

Summarize

Get .ipa complexity 
iAmazing easy
Apple Configurator 2 complex
Jailbroken device + Frida horribly complex

TLDR; 🤓 It’s not so complicated to get an .ipa, you can use simple tools to get it.

Analyze the App package

Niiiiice, you managed to get the app, now it’s time to understand it. An ipa is just a zip, so to open and extract the content, you can rename the .ipa to .zip and unzip it. The App package is well organized and documented by Apple

App infos

The main entry of the App is the Info.plist, in the file you have access to a lot of informations about the App features :

  • Permissions list
  • Lot of keys
  • Custom Fonts

App Technolgy

Nothing magic to evaluate this. You need a knowledge on each possible technology and how each technology organize the bundle.

App resources

Looking the bundle (and each directories) you can identified resources : images, jsons, assets, etc

App librairies

Most of the time, third party libraries are package in a separate directoy (/framewoks), you can have a look at this and try to identified the libraries using framework name.

App size

Looking the bundle and every files, it’s possible to understand the weight of the App.


Summarize

Analyze the package complexity 
Get Permissions easy
Identify the Custom keys hard because you have to know what a the standard keys
Identify the App technology hard because you have to know each technology and packaging technics
Identify the libraries hard and long because you need to check the names on by one
Study the App size quite annoying

TLDR; 🤯 It’s possible but quite complicated to understand some details of the Apps. You can start to get an idea of the application but you will be very quickly confronted with a problem of knowledge to understand the app

Analyze the App binary (executable file)

Here we tackle a very hard task. Apple takes security very seriously and it makes sense if you can have a look to the official guide of Apple (apple platform security guide

Executable file is the most protected component in the App. It’s protected by an encryption algorithm and this file is only decrypted by a Real device running the App. To have a decrypted version of that file you need a very complicated setup : a jailbroken device and a strong technical background to be able to run complex commands.

Having a jailbroken device is very hard because to jailbreak a device we need to use an exploit and only few versions of iOS are compatible and only for a limited number of devices. iOS jailbreak state of the art

TLDR; 🤯🤯🤯 It’s almost impossible to do that because Apple don’t want you to.

Conclusion

Analyzing the app requires a lot of time, knowledge and expertise. Not everyone can do this kind of analysis because you need to know the platform, Apple’s security and how to bypass them. It is nevertheless interesting to look into it (if you have the time and the money) to identify the strengths and weaknesses of the app.