App download
We reuse the more than one million Android app names from prior works[1], assuming that the iOS and Android versions of an app might share similar names. Subsequently, those app names are fed into the iTunes Search API (\url{url = "http://itunes.apple.com/search?term=\%s&media=software"\%(appname)} to obtain app bundle ID, which is a unique identity of an app. Given those app bundle IDs, we utilized ipatool~\cite{ipatool}, a open-source iOS app downloader, to purchase and download a DRM-protected .ipa file from iTunes. Finally, We collected 485,024 unique apps from the Apple app store (U.S.) by running ipatool parallelly in four Mac book Pro with ten registered appID accounts in three months.
App decryption
To decrypt the executable, we first installed the app on the physical jailbroken iOS devices by using the command deviceinstaller --install ipa Then, we utilized the tool frida-ios-dump to pull the decrypted IPA from a jailbroken device. In total, we successfully decrypted 366,685 iOS apps.
[1] Wang, Jice, et al. "Understanding Malicious Cross-library Data Harvesting on Android." USENIX Security Symposium. 2021.