I have a doubt regarding iOS application pentest.

I am pentesting one iOS application. The application is protected by MDM software.

Installation Process - Once I install the MDM on iPhone device and provide the VPN server credentials then the company pushes the application from the server (It means I do not need to download the application from the app store). Thus how the app is installed on the end user iOS device.

When I navigated through the file/folder structure, I found the main application EXE file and its supporting DLL files along with the traditional iOS app files in the same folder.

My question is - Is that a misconfiguration or by any chance is there any bridge between iOS OS and EXE/DLL files. Why are they are there? Any use of EXE and DLL on iOS device? According to my understanding, there is no use of EXE and DLL files on iPhone device. Am I correct?

Assumption - I haven't checked their Android app. If I would have found the same there then, I would assume that they have the universal package on their end which they push to every type of the end user device types such as Android, Windows Desktop, iPhone etc.

Can this be a reason? Upon Googling, I found that the app might have made using the Xamarin technology framework - https://www.visualstudio.com/xamarin/

  • In my opinion, you seem to have stumbled upon ` node-webkit apps` which could have just used nwvia nwjs to package & re-distribution of the application. On top of that, the application onwers might had originally intended to re-distribute it while keeping it hybrid to be usable with Windows API as well. Would certainly require to have a re-look at the EXE as without that, I cannot take a more wilder guess. – Shritam Bhowmick May 13 '18 at 23:19
  • I agree that this sounds like a unneeded leftover from cross platform packaging. While there is a slight chance that some parts of the exe or dll files are loaded (resources) it is rather unlikely. I would flag the files as ‚unneeded not removed‘ in a review. – eckes May 14 '18 at 10:35

As you've noticed, Mono/.NET applications compile to .exe and .dll files even for non Windows systems. Note that these files don't actually contain native code of your application, they're essentially just wrapper for .NET IL codes archive. IIRC, the reason a .NET application is wrapped in .exe so that if you try to run the application in old Windows that didn't have .NET framework installed, the application will display an error message prompting you to to install .NET framework. In other platforms, running these .NET .exe files requires a native wrapper to unpack the IL code from the .exe/.dll files.

| improve this answer | |
  • Exactly & that's how packaging works. You package to keep the base codebase hybrid & be able to interact with most apis on top of it's functionalities to serve; In this case, I doubt the OP dealt with node webkits. Awaiting further details. – Shritam Bhowmick May 14 '18 at 11:25

The app has been created using xamarin forms (hybrid app development) which can support importing DLL(Dynamic Link Library) files in IOS device.

There is no use of EXE and DLL files on iPhone device. Am I correct?

No. They would have created a native library which needs a DLL file and wrapper code to interact between the ios code and native Library. Hence DLL is common in IOS application if it contains native library

Have a look at this link

| improve this answer | |
  • On IOS it’s called dylib – eckes May 14 '18 at 10:32
  • Not sure if this answers it. – Shritam Bhowmick May 14 '18 at 11:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.