Using Escargot on iOS - exploring different options

At the moment, options for using Escargot on mobile devices are a bit limited right now. Obviously, there’s Mercury Messenger for Android and the official MSN clients for the PocketPC (which a couple people have actually managed to patch successfully), but besides that, there really isn’t anything.

So I had an idea… would it be possible to patch an old MSN client for iOS to work with Escargot? Well, with the help of the lovely folks at the MomentumDev Forums, it seems like I’ll eventually be able to do just that.

There were 3 different MSN clients I tried to work with: MobileChat, IM+ Pro, and the official Windows Live Messenger client for iOS 4.0+. Only one of them seems like it’ll be easy to patch, and it was the official one. But before we get into that, I’m gonna talk a bit about the first two…

iOS MSN Client No. 1: MobileChat
I wasn’t able to gather much info on this one. It doesn’t seem to be on the App Store anymore, and there weren’t any articles about it online. It honestly kinda makes sense why, since the app’s name is incredibly generic.
Anyway, I poked around in the .ipa file with a couple different tools, and I didn’t find much. The .plist files didn’t include anything special, and the executable itself didn’t have the server strings inside it anywhere. I assume it’d be easy to patch if I could somehow decompile it, but that unfortunately doesn’t seem to be possible for me to do.
Moving on…

iOS MSN Client No. 2: IM+ Pro
This one has many of the same issues as the previous one did. Nothing in the .plist files, no URL strings in the executable, nothing… however, the ObjectiveC class names and variable names did occasionally mention server URLs and stuff, meaning this one might be sliiiiiiiightly easier to patch than the last one if it could somehow be decompiled. I don’t really know much about that kind of stuff unfortunately, since I’ve only ever used GameMaker Studio to program.

And finally…

iOS MSN Client No. 3: The official Windows Live Messenger app
This one is the most promising by far. At first, I was afraid it would be equally impossible to modify without decompiling it as the last 2. I figured I’d look around in the .plist files anyway, since it couldn’t hurt to try, right?
And I’m glad I did, because…
Screen Shot 2020-07-16 at 6.45.53 PM
Screen Shot 2020-07-16 at 6.47.48 PM
…yup, the server URLs are all located in a file called GlobalSettings.plist, right there in the main folder! And they’re all in plain text! Has Christmas come early this year?!

Obviously, these aren’t the only URLs in the .plist file. There are a LOT of URLs, and it’ll be a real pain to replace all of them, but at least I won’t have to decompile the entire damn executable to do it. All I need to do now is wait for WLM 2009 (and probably WLM 2011) support to come out, and I’ll be able to easily patch this app and use it on one of my older iDevices!

5 Likes

That’s some good sleuthing @FailSandwichOwO :slight_smile:

My apologies, the following may be stupid questions, I have used XCode only once, and have never personally owned any Apple products, despite having setup MDM or other management for them, but that’s another discussion.

Is there a way to keep these clients in memory and connected? It’s my understanding that Apple does some aggressive power management with applications, and you’re forced to use Apple’s notification service to do multitasking in most situations. This is a problem with Mercury too on devices/ROMs where you can’t adjust the power settings per app.

And a jailbroken or some other self-signing method is needed to run these? Since I would assume the Apple Store isn’t about to approve patched applications.

Yeah, you’re gonna need a jailbroken phone. And a pretty old one too, as the app only supports iOS 4, 5 and possibly 6.

As for the keeping-you-logged-in thing, I think there are some tweaks for older devices that enable multitasking even when they didn’t originally support it.

1 Like

may i have a ipa for it? i have iphone 8 plus and i would love to use it on my phone.

i really hope it gets patched

Sorry, that’s not gonna work :confused: The iPhone 8 Plus is far too new for it. It needs to be a 32-bit iDevice running iOS 4 or 5. Also, it hasn’t been patched yet, and it won’t be until WLM 2011 is supported.

1 Like

I don’t even think the app is listed in the app store anymore, will it still work

It should work fine once it’s patched. You’ll have to have a jailbroken device running iOS 4 or 5 (so you probably can’t use your main phone), and you’ll have to install the .ipa using a tool like iFunBox.

You probably will need WLM '11 support because if I can remember, WLM on iOS was also as heavely social-based as their desktop counterparts, so that could be probabilty waiting for the next 4 - 5 years as MSNP21/22 will be a pain to reverse engineer.

or I could be wrong and be speaking of WLM for iOS 2010 and above, but eh: It’s a theory :stuck_out_tongue:

For now, we shall see when WLM '09 comes out, but until then, let’s find more discoveries from these versions and see if we can do anything about 'em :stuck_out_tongue:

Good Luck, my fellow user and I hope the Gods will guide you into the patching of this client :smile:

ah sad man :frowning:

If these apps really connect directly to MSN then you can patch them but you don’t need to, you can use DNS or some IP header re-writing method. That would be the trivial part.

The difficult part, the one TrEKiE mentioned and you casually ignored, is the fact that the standard way iOS (and most good Android) chat/IM clients function is they keep a connection to the server owned by the app author when the phone is in use and the screen is on, but after about 30 seconds (the value varies) of standby mode that connection is dropped, any potential wifi or VPN connections are disconnected and the only connection kept active is the one to the Apple Push Notifications service via cellular internet. This is (or at least used to be) the way multitasking worked even when the screen is on (ie. the app’s connections are killed).

In light of this, there is an inherent reliance on the third party app to be privy to your MSN service credentials in order to deliver the message notifications to Apple, which as I mentioned has usually also meant that the app will always communicate with the app author’s server rather than with the MSN server directly. So in other words, your task would be to actually reverse engineer the proprietary protocol that the client uses to communicate with the app server AND set up your custom APN compatible push service and somehow get iOS to communicate with it. I can only wish good luck with that endeavor…

You could bypass the requirement for the APN server if you use the KeepAlive jailbreak tweak (which will absolutely decimate your battery life) and there may indeed be similar hacks to enable apps to continue to run in background (multitasking functionality). Otherwise you will have to give up on message notifications when the app is not in foreground and the screen is on, which in my opinion nullifies the value of a mobile client in the first place.

Want my opinion? The only realistic way you can achieve Escargot MSN functionality on your iOS device is to create an MSNP (Escargot client) bridge to another, popular and currently functional service such as Jabber/XMPP since that supports specifying your own custom server. This would not only be the easiest (though perhaps not trivial) way to accomplish your goal but would also make the jailbreak requirement unnecessary since you could communicate with an app already in the App Store. It would be functionally equivalent to using MSN back in the day on iOS, since IM+ Pro for example also supported Jabber and I used that app 7-8 years ago quite a bit.

3 Likes