quote:
Originally posted by wtbw
And, lhunath the code is inside MSN.
Does the MSN Messenger API allow for setting the DP as something custom ? Or how do you plan to use that code to set the DP to a custom image ? By my knowledge it's not really possible to just call the seperate algorythms inside MSN Messenger for own personal use.. I suppose it could be done with some ASMing but that's a bit beyond my league.
quote:
Originally posted by TheBlasphemer
Now think a bit, what if someone had like 10 frames, which would be a picture of 960*96 on non-patched MSN's.
Users without the patch aren't supposed to see the other frames.. It should be done by adding the information in a seperate chunk to hide it properly, and the actual IDAT (The image shown to users without the plugin) should contain the first frame.
That way, users without the plugin will see the first frame and not notice any problems +
the plugin will use that frame to shape the size of the DP area, so that the only thing that need be done is overlay the DP area with the animating image data.
So, all we need to do is find a way to send my PNG through.
Let's line up the posibilities :
- Make a patch for msnmsgr.exe that makes it copy the PNG to the .bin files in it's display directory, instead of building a new PNG from the actual RAW image data in our original PNG.
- Find a way to add DP's to MSN Messenger ourselves, thus we would not need the MSN Messenger DP adder, and we can make sure the DP's have our animating chunk.
- Inject the PNG in the data stream, for example, using a Proxy to find and replace whenever MSN Messenger sends our DP data, then replace it with our PNG containing the animating chunk.
- Setting up a P2P system, like PowerPlus, to send the image through, the only problem would be, fetching the contact's IP. That should not be a problem though, I'm sure there's plenty of ways, as in, adding a char to the end of the nickname, then, your plugin sends users with that char an IP request, which the other user's plugin hides and replies to.
- Still pondering about other ways, let me know what you think of each of these and if you know any alternatives.