"I would really like some pointers or assistance from people with more experience using private frameworks as I believe it could lead to more reliable and interesting uses for iMessages in the future."
I think you're either not understanding what private frameworks are for or what "reliable" means.
I think you misunderstand how unreliable using AppleScript is :)
To sum up the linked project, the app.js is actually capable of launching a new chat with an intended recipient through use of private frameworks, so I'm not completely lost in the sauce
I think one of his points is that in some cases private frameworks can be modified in new updates and the changes can go undocumented. So reliability will just about always be in question.
I've always wondered whether something like Buffer could work for iMessage delayed sends. Seems like this could be a step toward that if you can provide everyone with their own secure virtualization of iMessage.
Yes that's definitely what I'm working towards! I think there are countless uses for iMessages that working on these types of projects will open up in the future
On a bit of a tangent, I'd love to see a fully reverse engineered iMessage client - along with Skype, Hangouts, WhatsApp, Snapchat, and all the other mobile messaging apps du jour. What happened to the old days when you could get a single open source client, for Linux if you wanted (today, perhaps the equivalent would be the likes of Firefox OS and Tizen), with reverse engineered implementations for all major IM protocols?
Okay, that's partly a rhetorical question. I know that iMessage and Skype are both powered by highly obfuscated code - the latter for more than a decade! Skype seems it's been decently reverse engineered in the last few years, though, and there are or were some iMessage clients for Android, although I think they were using Macs on the backend (maybe some day I will help with properly reverse engineering it). But never mind those two; I've heard many of the other messengers are no better protected than the ones of the 90s, yet I haven't seen any attempts to write unified clients. Why is that?
Whip out an HTTP debugging proxy and I'd imagine you could get pretty close to unpacking Skype's API in less than a day. It uses the Bond protocol, which is easy enough to deserialize, and some tricks to verify that the message being sent is really the one that should come after the last one that was sent.
I didn't get as much time as I would've liked to play with it so they may have more tricks waiting, but it looked simple enough from an hour or so of tinkering.
Yeah I'm in the exact same boat as you, I would love to see everyone move back towards open IM protocols and I think working on projects like this is the first step towards making that happen.
10 comments
[ 2.8 ms ] story [ 33.7 ms ] threadI think you're either not understanding what private frameworks are for or what "reliable" means.
To sum up the linked project, the app.js is actually capable of launching a new chat with an intended recipient through use of private frameworks, so I'm not completely lost in the sauce
(On a side note, I think we used to hang out in the same IRC channel 10+ years ago? #spacespider?)
Okay, that's partly a rhetorical question. I know that iMessage and Skype are both powered by highly obfuscated code - the latter for more than a decade! Skype seems it's been decently reverse engineered in the last few years, though, and there are or were some iMessage clients for Android, although I think they were using Macs on the backend (maybe some day I will help with properly reverse engineering it). But never mind those two; I've heard many of the other messengers are no better protected than the ones of the 90s, yet I haven't seen any attempts to write unified clients. Why is that?
I didn't get as much time as I would've liked to play with it so they may have more tricks waiting, but it looked simple enough from an hour or so of tinkering.