O.P. RE: How was Plus! done?
So if I understood this correctly :
Plus!, using a proxy msimg32.dll and the detoured.dll library attaches itself to Messenger. It then intercepts Messenger's API calls by changing the code in memory (not the file in the hard drive) to include some extra code. This way new menus and buttons are added (during CreateWindow or LoadResource), with code attached to them and present in MsgPlusLive.dll
Next it adds functionality to the SendMessage and ReceiveMessage events by hooking this functions (and by doing so, allowing Plus! to parse commands like /ping).
It's a little simple but I think it's what's going on. Did I forget something?
|