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:
Patchou
Messenger Plus! Creator
*****

Avatar

Posts: 8607
Reputation: 201
43 / Male / Flag
Joined: Apr 2002
RE: How was Plus! done?
lol.. and why would you want to know something like that hum? :p
[Image: signature2.gif]
02-20-2007 06:26 AM
Profile PM Web Find Quote Report
vikke
Senior Member
****

Avatar

Posts: 900
Reputation: 28
31 / Male / Flag
Joined: May 2006
RE: RE: How was Plus! done?
quote:
Originally posted by Patchou
lol.. and why would you want to know something like that hum? :p

Load Plus! or maybe replace Plus! ;) ?

Edit: I tried load using no params (void), and that seemed to work fine. The DLL is loaded, and confirmed by GetModuleHandle API. But I loaded it into my own program, not Messenger.
Here's my stupid VB6 code: :@
code:
Private Declare Function Initialize Lib "MsgPlusLive" ()
Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" _
  (ByVal lpModuleName As String) As Long
 
Private Sub Form_Load()
    Initialize
    MsgBox "Plus Loaded?"
    If GetModuleHandle("MsgPlusLive.dll") > 0 Then
        MsgBox "Plus is loaded!"
    End If
End Sub

I wrote it in VB6 because I'm using Visual Studio 2005 for C++, which takes like an half hour to start :|

This post was edited on 02-20-2007 at 08:04 AM by vikke.
02-20-2007 07:41 AM
Profile E-Mail PM Find Quote Report
muttantegg
New Member
*


Posts: 11
40 / – / –
Joined: Feb 2007
O.P. RE: How was Plus! done?
quote:
Originally posted by Patchou
lol.. and why would you want to know something like that hum? :p

Wel... It's part of my evil plan to dominate the world through hipnotizing rays coming out of Msn Messenger. (6)

LOL, no really... I figure if I can load it I'll get Plus! :D (Well... again :)) Because right now I load the Dll's but Plus!'s stuff doesnt appear :(

I suppose I could load Plus!'s msimg32.dll and that would get it to work. *-)
02-20-2007 10:15 AM
Profile PM Find Quote Report
vikke
Senior Member
****

Avatar

Posts: 900
Reputation: 28
31 / Male / Flag
Joined: May 2006
RE: How was Plus! done?
Did you try LoadLibrary API? That would probably not work either :(. But it's worth a try :).

I don't think Patchou will give you the signature :).
02-20-2007 10:18 AM
Profile E-Mail PM Find Quote Report
muttantegg
New Member
*


Posts: 11
40 / – / –
Joined: Feb 2007
O.P. RE: How was Plus! done?
I got it! I got it!

Thanks vikke! I owe you a million! Now I can rest :)

Wow... this had really been nagging me. Back to real life now :(
quote:
Originally posted by vikke
Did you try LoadLibrary API? That would probably not work either :(. But it's worth a try :).

I don't think Patchou will give you the signature :).

What's so special about the signature?:huh: (guess I could always look at the assembly, take a few classes in reverse engineering lol)

Aaaanyway... Plus loads, menus, icons, everything :) I did as you suggested and tried calling Initialize() :

code:
// Initialize Plus (hopefully)
typedef VOID (* PLUS_Type)(VOID);
PLUS_Type Initialize_fn = (PLUS_Type) GetProcAddress( _PlusDll, "Initialize");
Initialize_fn();


Maybe I got it right by accident, who knows :P Oh, and sorry about the messy code, I'm still new to all this strange typedef's (and already started to hate LPCWSTR's)
02-20-2007 10:26 AM
Profile PM Find Quote Report
vikke
Senior Member
****

Avatar

Posts: 900
Reputation: 28
31 / Male / Flag
Joined: May 2006
RE: RE: How was Plus! done?
quote:
Originally posted by muttantegg
quote:
Originally posted by vikke
Did you try LoadLibrary API? That would probably not work either :(. But it's worth a try :).

I don't think Patchou will give you the signature :).

What's so special about the signature?:huh: (guess I could always look at the assembly, take a few classes in reverse engineering lol)

You asked for it ? :)
quote:
Originally posted by muttantegg
code:
// Initialize Plus (hopefully)
typedef VOID (* PLUS_Type)(VOID);
PLUS_Type Initialize_fn = (PLUS_Type) GetProcAddress( _PlusDll, "Initialize");
Initialize_fn();


Good job, function pointers are not that hard :P, it's only about learning the technique! ;)
02-20-2007 01:54 PM
Profile E-Mail PM Find Quote Report
muttantegg
New Member
*


Posts: 11
40 / – / –
Joined: Feb 2007
O.P. RE: How was Plus! done?
:( All went well, until I tried hooking the resources.

If I "DetourAttach" FindResource, LoadResource or SizeOfResource Plus! stops working. I still get the menu bar, but the only item on Plus!'s menu is "Software not loaded..."

I can't hook things that Plus! also hooks? :^)
02-20-2007 11:47 PM
Profile PM Find Quote Report
vikke
Senior Member
****

Avatar

Posts: 900
Reputation: 28
31 / Male / Flag
Joined: May 2006
RE: How was Plus! done?
Yes, you can. But you'll need to buy Detours, as that's one of their premium features :(.

Use another method, like IAT, EAT, Code Overwrite, Extended Code Overwrite, there are some librarys floating around the net :)

Edit: I've heard you'll need to pass some handle somewhere to get Plus! to apply it's changes. ^o)

This post was edited on 02-21-2007 at 09:51 AM by vikke.
02-21-2007 09:50 AM
Profile E-Mail PM Find Quote Report
muttantegg
New Member
*


Posts: 11
40 / – / –
Joined: Feb 2007
O.P. RE: How was Plus! done?
Please excuse the sarcastic tone of this post. It's meant to be joyful and amusing (maybe even comic).

quote:
Originally posted by vikke
Yes, you can. But you'll need to buy Detours, as that's one of their premium features :(.


Yes, THAT is going to happen. In which pocket did I put those $10.000 I had set aside to purchase a license from Microsoft?

quote:
Originally posted by vikke

Use another method, like IAT, EAT, Code Overwrite, Extended Code Overwrite, there are some librarys floating around the net :)


Erm... Nice! Apparently ECO is what Detours uses in the first place.

Well, for my part I'm satisfied. I believe further questions would not belong in this thread. "How was Plus! made" has been described and I am happy.

DllInjection and API Hooking for those interested. :)
02-21-2007 05:26 PM
Profile PM Find Quote Report
Patchou
Messenger Plus! Creator
*****

Avatar

Posts: 8607
Reputation: 201
43 / Male / Flag
Joined: Apr 2002
RE: How was Plus! done?
Just to make sure you don't corrupt the memory with invalid signatures:

int WINAPI Initialize(void)

:p
[Image: signature2.gif]
02-22-2007 05:43 AM
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