What happened to the Messenger Plus! forums on msghelp.net?
Shoutbox » MsgHelp Archive » Messenger Plus! for Live Messenger » WLM Plus! General » How was Plus! done?

Pages: (4): « First « 1 2 3 [ 4 ] Last »
How was Plus! done?
Author: Message:
shlomifr
New Member
*


Posts: 6
Joined: Aug 2009
RE: How was Plus! done?
Hi all,

I've heard that "Plus!" is using some proxy system dll to get it's code started in the msnmsgr process (detour). Isn't that a very version dependant method? Why not using a hook or CreateRemoteThread to get the code injected into the process?

I'm trying to write a Messenger plugin myself and would like to know what was the logic behind that decision.

Thanks,
Shlomi Fruchter
08-10-2009 12:00 PM
Profile E-Mail PM Find Quote Report
ShawnZ
Veteran Member
*****

Avatar

Posts: 3146
Reputation: 43
32 / Male / Flag
Joined: Jan 2003
RE: How was Plus! done?
quote:
Originally posted by shlomifr
Why not using a hook or CreateRemoteThread to get the code injected into the process?

because with that method you need another thread to call CreateRemoteThread from :p e.g., another process running in the background constantly that must start before messenger starts, etc.

however, it may be fairly reliable if such a binary started itself before messenger using the same trick Process Explorer uses to start itself before taskmgr... (that is, setting itself as taskmgr's Debugger in Image File Execution Options... although i don't know the details of how this works or if it would even work at all)
Spoiler:
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
08-10-2009 03:06 PM
Profile PM Web Find Quote Report
shlomifr
New Member
*


Posts: 6
Joined: Aug 2009
RE: How was Plus! done?
So how does "Plus!" make sure it is supported for all Messenger's versions? Microsoft probably change the dlls they use from time to time.

Another problem is that some other Messenger plugin might replace the same dll and override the proxy used by my plugin.

Anyone has an idea for how to solve this? :)

Thanks,
Shlomi.

This post was edited on 08-10-2009 at 03:58 PM by shlomifr.
08-10-2009 03:58 PM
Profile E-Mail PM Find Quote Report
ShawnZ
Veteran Member
*****

Avatar

Posts: 3146
Reputation: 43
32 / Male / Flag
Joined: Jan 2003
RE: How was Plus! done?
quote:
Originally posted by shlomifr
So how does "Plus!" make sure it is supported for all Messenger's versions?

it checks the version number of messenger before doing anything else :p
quote:
Originally posted by shlomifr
nother problem is that some other Messenger plugin might replace the same dll and override the proxy used by my plugin.

well that's the disadvantage to this method :p
Spoiler:
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
the game.
08-10-2009 04:05 PM
Profile PM Web Find Quote Report
shlomifr
New Member
*


Posts: 6
Joined: Aug 2009
RE: How was Plus! done?
Ok thanks ShawnZ, I managed to get into the Messenger process using a proxy dll.

One more question though, I noticed that "Plus!" is manipulating the in-memory resources of the Messenger to get UI elements into the application. Is there any tutorial about that? It seems that the recent version of WLM is not compatibe with most of the articles I found on the net.

Thanks a lot again :)
Shlomi.
08-11-2009 09:51 AM
Profile E-Mail PM Find Quote Report
Patchou
Messenger Plus! Creator
*****

Avatar

Posts: 8607
Reputation: 201
43 / Male / Flag
Joined: Apr 2002
RE: How was Plus! done?
UI files in the latest version of Messenger are all encoded. There is no tutorial to decode them but you can use MPTools.exe distributed with Plus! to decode them, easily and for free.

Changing the resources in memory can be done in several ways, I suggest you read in the MSDN Library about that :).
[Image: signature2.gif]
08-11-2009 09:01 PM
Profile PM Web Find Quote Report
shlomifr
New Member
*


Posts: 6
Joined: Aug 2009
RE: How was Plus! done?
Well, I kinda know how to do that by hooking the resource loading api calls, the encoding part is the question for me.

Can you give me a hint? :)

Thanks,
Shlomi
08-12-2009 06:11 AM
Profile E-Mail PM Find Quote Report
Patchou
Messenger Plus! Creator
*****

Avatar

Posts: 8607
Reputation: 201
43 / Male / Flag
Joined: Apr 2002
RE: How was Plus! done?
as I said, MPTools.exe already does all of that for you. If you want to do it yourself, you'll ahve to do like I did: spend two weeks in a room, looking at your computer screen, with an hex editor and notepad to write some notes of what you find ;).

To start, you should know that the uib files have a proper header and a couple of separated sections referenced from the header. Teh first sections define data used by the last one to reconstitute the decoded text file.
[Image: signature2.gif]
08-14-2009 05:59 PM
Profile PM Web Find Quote Report
Pages: (4): « First « 1 2 3 [ 4 ] Last »
« Next Oldest Return to Top Next Newest »


Threaded Mode | Linear Mode
View a Printable Version
Send this Thread to a Friend
Subscribe | Add to Favorites
Rate This Thread:

Forum Jump:

Forum Rules:
You cannot post new threads
You cannot post replies
You cannot post attachments
You can edit your posts
HTML is Off
myCode is On
Smilies are On
[img] Code is On