Shoutbox

[Release] Xniff (ActiveX Packet Sniffer) - Examples inside - Printable Version

-Shoutbox (https://shoutbox.menthix.net)
+-- Forum: MsgHelp Archive (/forumdisplay.php?fid=58)
+--- Forum: Messenger Plus! for Live Messenger (/forumdisplay.php?fid=4)
+---- Forum: Scripting (/forumdisplay.php?fid=39)
+----- Thread: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside (/showthread.php?tid=64230)

[Release] Xniff (ActiveX Packet Sniffer) - Examples inside by Pai on 07-30-2006 at 01:23 PM

Starting with the whole discussion about window open/close notifiers, with questions to get the contact's font, and some other things people would like to access but can't with the current script engine, I decided to try and create an ActiveX based Packet sniffer.

Warning: if your script uses this, it may become unstable/useless if MSN changes protocol ! So be very carefull!

This allows you to start monitoring packets with a couple of lines of code, and provides easy methods to get what you want, quickly!

It gives you access to only 1 property and 2 methods:
» property IP : string containing the IP you want to listen
» function Start() : start monitoring the choosen IP
» function Stop() : stop monitoring the choosen IP
» function About() : displays a small about box

Examples: (with full commented code)

  • Window open/close notifier ( very reliable, only close notifier has a delay of 15/30seconds from the actual close of the window, due to a WLM limitation )
  • View All MSN packets (usefull to study what packets get sent/received when you do something specific and build your own script)

My first idea was to make the ActiveX MSN-only (only capture MSN packets), but then I thought that only one extra line of code (check if comming from MSN port) wouldn't matter if you could monitor the entire network.

So, here it is, hope you guys enjoy it.

I didn't test it very much, but there aren't that much things that can go wrong with 1 property and 2 basic methods, so I leave it for you guys to use !

Note: it's OCX because Delphi doesn't allow to create non-visual ActiveX Object (actually it allows, but it would take forever), so I created it visually and then added the flag to make the ActiveX invisible at runtime. So, don't worry about the extension being OCX and not DLL, just register it normally using regsvr32.

Note2: my imagination wasn't running that wild when I gave the ActiveX a name, so w00t.Xniff sounded like a good choice :P

Note3: I hope it works in every PCs, because hopefully it doesn't need Borland Runtime Packages to run (that's why the filesize is rather big). But I dunno, it's the first ActiveX I create so I can't know for sure...
RE: [Release] Xniff (ActiveX Packet Sniffer) by AberNStein on 07-30-2006 at 03:12 PM

WOW.
you rock.
this will start a whole new wave of scripts.


RE: [Release] Xniff (ActiveX Packet Sniffer) by deAd on 07-30-2006 at 03:28 PM

Yup :P nice job (y)


RE: [Release] Xniff (ActiveX Packet Sniffer) by absorbation on 07-30-2006 at 03:31 PM

Amazing, we can expect a new breed of scripting arriving I think now people have great examples to work with (Y).


RE: [Release] Xniff (ActiveX Packet Sniffer) by Plik on 07-30-2006 at 03:33 PM

Looks really quite usefull (y)

for anyone wondering how to get the local ip so you know what address to sniff:

code:
function getLoaclIp(){
    var wmiObj = new ActiveXObject('WbemScripting.SWbemLocator');
    var wmiInst = wmiObj.ConnectServer('.', "root\\cimv2");
    wmiInst.Security_.ImpersonationLevel = 3;
   
    var col = wmiInst.ExecQuery('Select * from Win32_NetworkAdapterConfiguration');
    var colEnum = new Enumerator(col);
   
    var ipAddr;
   
    for (; !colEnum.atEnd(); colEnum.moveNext()){
        var objIp = colEnum.item();
        var addr = objIp.IPAddress(0);
        if((typeof addr == 'string') && addr.match(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/)){
            ipAddr = addr;
        }
    }
   
    return ipAddr;
}

That function returns the last vaild ipaddress of you network adapters.
Im sure there is a better way to find it, but WMI was the only way i could think of at the time :P
RE: [Release] Xniff (ActiveX Packet Sniffer) by Pai on 07-30-2006 at 03:54 PM

I believe

code:
ws = new ActiveXObject( "MSWinsock.Winsock" );
ipaddress = ws.LocalIP;

is easier, but I made it so that the developer can set what IP to listen because there are people with multiple network adapters.
RE: [Release] Xniff (ActiveX Packet Sniffer) by deAd on 07-30-2006 at 04:06 PM

I don't think everyone can use winsock, there was a thread about that a long time ago :P


RE: [Release] Xniff (ActiveX Packet Sniffer) by AberNStein on 07-30-2006 at 04:07 PM

is there any way to have the script do the regsvr32 stuff?


RE: [Release] Xniff (ActiveX Packet Sniffer) by Pai on 07-30-2006 at 04:31 PM

Like stated in the documentation:

code:
Example 2
ScriptInfo file used to create a Script Pack. During import, the "ExtraFuncVB.dll" ActiveX will be registered with resvr32.

    <DotNetFiles>
        <FileName>ExtraFuncVB.dll</FileName>
    </DotNetFiles>

So, you just change ExtraFuncVB.dll to Xniff.ocx and voila'
RE: [Release] Xniff (ActiveX Packet Sniffer) by Plik on 07-30-2006 at 05:29 PM

quote:
Originally posted by Pai
I believe
code:
ws = new ActiveXObject( "MSWinsock.Winsock" );
ipaddress = ws.LocalIP;

is easier, but I made it so that the developer can set what IP to listen because there are people with multiple network adapters.
I knew there would be an easyer way envolving winsock -_-

* Plik hides in shame
RE: [Release] Xniff (ActiveX Packet Sniffer) by Eljay on 07-30-2006 at 05:32 PM

quote:
Originally posted by Plik
quote:
Originally posted by Pai
I believe
code:
ws = new ActiveXObject( "MSWinsock.Winsock" );
ipaddress = ws.LocalIP;

is easier, but I made it so that the developer can set what IP to listen because there are people with multiple network adapters.
I knew there would be an easyer way envolving winsock -_-

* Plik hides in shame

nah your way is better, MSWinsock.Winsock is a design time activexobject which is only distributed with things like visual studio, so it will only work for people who have this installed (and distributing it is illegal afaik)
RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by Pai on 07-31-2006 at 12:14 AM

Yes, you're right, MSWinsock has that issue ! Plik code is much more reliable :) Actually, I used that function in the examples posted.

I've added a couple of full-documented script examples, so you can start there to understand how the ActiveXObject works and study MSN protocol ! If I think of more useful examples to post, I will :p


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by nx01rules on 07-31-2006 at 03:57 AM

Does it work with polygamy? I mean, if you have two msn's open, and someone opens a window, would it tell both OCX's open for both msn's, or just one?


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by CookieRevised on 07-31-2006 at 07:48 AM

quote:
Originally posted by Pai
Starting with the whole discussion about window open/close notifiers, with questions to get the contact's font, and some other things people would like to access but can't with the current script engine, I decided to try and create an ActiveX based Packet sniffer.
(y)(y)(y)

quote:
Originally posted by Pai
Examples: (with full commented code)
  • Window open/close notifier (very reliable, only close notifier has a delay of 15/30seconds from the actual close of the window, due to a WLM limitation )

Your packet analyses is wrong (hence it is not reliable at all actually).

The check of 10th item being '0' or nothing to see if the window was openend by the user or by the client itself isn't correct. Same goes for checking the difference between a closed convo due to timeout or not.

When a user opens a window, the 10th item (datatmp[9]) can also be '0'....
Same for closing a window, when the timeout occurs after x seconds the 3rd item (datatmp[2]) isn't always '0', it can be empty too.

quote:
Originally posted by Pai
My first idea was to make the ActiveX MSN-only (only capture MSN packets), but then I thought that only one extra line of code (check if comming from MSN port) wouldn't matter if you could monitor the entire network.
nice idea...

However, since JScript is relative slow it is maybe advisible to also implement an optional port property in the ActiveX object which you can set before starting the trace (maybe even making it a string and accept multiple ports as well like "1863;2433;1234").

Setting this property means that the ActiveX internally would check on the port and you don't have to do that anymore in the (slow) JScript.

If the user doesn't set the port property, then trigger for each and every datapacket, as it is now.

;)


PS: playing with this I noticed several bugs, in the displaytoast function and in the stripformatcodes function of Plus! :(
RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by Pai on 07-31-2006 at 10:19 AM

@ nx01rules: yeah it does, it just a normal ActiveXObject, like Scripting.FileSystemObject, you can use them the times you want.

@ CookieRevised: thanks, your opinion is always appreciated :)
About the open/close notifier, I based that code on my tests, because when I was seeing all the packets and started WLM with my DP changed, a bunch of contacts opened my window simultaneously, and the 0 was there in the 9th parameter; unlike when a user opened my window really (I tested this with my other PC, opening a convo myself), where the 0 would not appear. As this happened every time, I concluded this would be the correct approach ! Also, I based the BYE checker on the online documentation at msnfanatic, which states that when the server closes a conversation the 0 is appended. As it also happened in my tests, I made it like that !

About the ActiveX based port restriction, I hadn't thought of it but is a good idea, because if even the user doesn't set the port it can continue to use the object normally with the current if (port == XX) in the OnData event!

PS: do you mean bugs in my code ? or the plus functions themselves don't work as intended? I didn't notice it in any of my tests


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by Jimbo on 07-31-2006 at 12:35 PM

quote:
Note: it's OCX because Delphi doesn't allow to create non-visual ActiveX Object (actually it allows, but it would take forever), so I created it visually and then added the flag to make the ActiveX invisible at runtime. So, don't worry about the extension being OCX and not DLL, just register it normally using regsvr32.



How do i register it???   


i am :stupid:

RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by nx01rules on 07-31-2006 at 12:59 PM

134jumbodude: Put it in the same directory as the script, then run:

regsvr32 "<path>\Xniff.ocx"

And, i just ran it with two messenger's open - they both reported a window opening when I only opened a window on one account - so theres a bug there. Oh and i am curious, what was the method you used to determine which MSN is receiving the BYE packet? It doesn't have anything in it but the person who closed the connection, so it must be a TCP based method, yes?


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by Pai on 07-31-2006 at 04:40 PM

There isn't a bug, it's just that the ActiveX doesn't distinguish MSN accounts, just packets. So, if you have two messengers, there are two instances of the ActiveX loaded, and both of them receive the packet that was sent and generate the notify. I can't see a method to avoid this, because the ActiveX can't distinguish connections.

I'll try to find something to avoid this, but I can't guarantee :P


RE: RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by CookieRevised on 08-10-2006 at 12:59 AM

quote:
Originally posted by Pai
@ CookieRevised: thanks, your opinion is always appreciated :)
About the open/close notifier, I based that code on my tests, because when I was seeing all the packets and started WLM with my DP changed, a bunch of contacts opened my window simultaneously, and the 0 was there in the 9th parameter; unlike when a user opened my window really (I tested this with my other PC, opening a convo myself), where the 0 would not appear. As this happened every time, I concluded this would be the correct approach ! Also, I based the BYE checker on the online documentation at msnfanatic, which states that when the server closes a conversation the 0 is appended. As it also happened in my tests, I made it like that !

cool... but those tests are unfortunatly inconclusive and apparently wrong, seeing my own tests where there is no clear distinction between when that "0" paramater is added or not...
quote:
Originally posted by Pai
quote:
Originally posted by CookieRevised
PS: playing with this I noticed several bugs, in the displaytoast function and in the stripformatcodes function of Plus! :(

PS: do you mean bugs in my code ? or the plus functions themselves don't work as intended? I didn't notice it in any of my tests
the Plus! functions themselfs.
RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by phalanxii on 08-19-2006 at 12:47 PM

Just a small (amateur) question...

Is there any way to edit the packets before they're sent to the server? Instead of just monitoring the packets, I want to know whether it's possible to hold, edit, then release the edited packet so that xniff::OnData works kind of like OnEvent_ChatWndSendMessage.

Any feedback would be great. :)


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by CookieRevised on 08-19-2006 at 01:00 PM

It is possible but is far from easy to do (and out of scope of this thread/plugin).

-Not to mention if you're not extremely carefull in what to edit, you most likely will cause syncronization problems when doing so.
-Not to mention you need to know the protocol and how it works in extreme detail in order to edit packets in the proper way.

it is extremely advanced stuff.


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by ShawnZ on 08-19-2006 at 01:14 PM

quote:
Originally posted by Pai
so w00t.Xniff sounded like a good choice

Why not Pai.Xniff? :p
RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by Zeh on 09-04-2006 at 05:56 PM

I'm having problems with scripts that use the xniff.ocx it seems it is because I have a wireless connection. Does anyone know about this?


RE: RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by alexp2_ad on 09-04-2006 at 06:01 PM

quote:
Originally posted by Zeh
I'm having problems with scripts that use the xniff.ocx it seems it is because I have a wireless connection. Does anyone know about this?

Yup, we know about it... but I don't think much is being done... *-) :(
RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by the_dare on 09-04-2006 at 06:15 PM

this should help loads in script development


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by Zeh on 09-04-2006 at 06:22 PM

Does anyone know what can be done to resolve the problem with wireless connections?


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by Thor on 09-04-2006 at 06:27 PM

Great work Pai! :D

Works just good here (Y)


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by Spunky on 09-04-2006 at 06:47 PM

I don't have any problems with the ocx and I'm using wireless...


RE: RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by alexp2_ad on 09-04-2006 at 06:50 PM

quote:
Originally posted by SpunkyLoveMuff
I don't have any problems with the ocx and I'm using wireless...

It's been noted by people that it works on the occasional WiFi connection, but not on most.  All those other people aren't imagining it ya know. :P
RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by Zeh on 09-04-2006 at 06:52 PM

Maybe if we were able to understand what let's it work in some connections it would be easyer to make it work on all wifi connections.


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by Spunky on 09-04-2006 at 06:54 PM

I was just reading through the whole thread to see if it mentions why it doesn't work on some connections...  What kind of problems have people been experiencing?


RE: RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by alexp2_ad on 09-04-2006 at 06:57 PM

quote:
Originally posted by SpunkyLoveMuff
I was just reading through the whole thread to see if it mentions why it doesn't work on some connections...  What kind of problems have people been experiencing?

If you look in the thread for the first session notifier you might find more. EDIT:  that's http://shoutbox.menthix.net/showthread.php?tid=64026 btw.

What happens is on the debugger, when you start Xniff with Xniff.Start it returns:

Error: Error 10022 in function WSAIoctl(SIO_RCVALL)
Invalid argument.
RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by Zeh on 09-04-2006 at 06:59 PM

The scripts just don't work they give a error message in de debug when the Xniff should be working. If you read this thread you will see some people having problems because they have wireless [align=right]http://shoutbox.menthix.net/showthread.php?tid=65633


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by CookieRevised on 09-04-2006 at 07:01 PM

quote:
Originally posted by Zeh
Maybe if we were able to understand what let's it work in some connections it would be easyer to make it work on all wifi connections.
It is far from easy to fix something like this. Many sniffing codes circulate the net and extremely many "suffer" from it. Also because the problem lies partially (or rather many times) in the network driver which is being used.

eg: if people on a wireless connection change their network driver, they may have success using such sniffers.

quote:
Originally posted by SpunkyLoveMuff
I was just reading through the whole thread to see if it mentions why it doesn't work on some connections...  What kind of problems have people been experiencing?
When it doesn't work (you get the WSAIoctl error) it means a raw socket couldn't be made which is needed to sniff incomming packets.
RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by Zeh on 09-04-2006 at 07:05 PM

That's the problem. How can we let raw sockets to be made in wireless? Is that driver thing going to let i make raw sockets?


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by Spunky on 09-04-2006 at 07:08 PM

Ok, so I am getting an error :p

quote:
Originally posted by The Debug Window

Script is starting
Error: unknown.
       Line: 1. Code: -2147024770.
Script is now loaded and ready
Function called: OnEvent_Initialize


Line 1 reads: var xniff = new ActiveXObject("w00t.Xniff");

Which I'm guessing is the correct way to create the ActiveX object. The script works even though it gets this error though :s
RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by Zeh on 09-04-2006 at 07:12 PM

It's what CookieRevised said about the raw sockets. Some wireless conections wont let a raw socket to be opened. I wonder what is diferent in your connection, you seem to be able to use the Xniff right...


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by Spunky on 09-04-2006 at 07:12 PM

I disabled all router firewalls and opened all the ports using DMZ settings if that makes a difference...


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by Zeh on 09-04-2006 at 07:17 PM

My router isn't blocking anything. :(


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by Deco on 09-05-2006 at 01:30 PM

Did anyone find out how to get xniff to work with wireless?

Script starts fine, but shows no data in debug window.

Any hints?


edit: I thnk the problem was on getting the IP. After I changed the IP function to that of the second example, it started working.

So whoever gets no error with the script but sees no data, try using the code provided in the first example to get the IP and then sniff everything to exaustion.. like I am.

Thanks!


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by Dempsey on 11-28-2006 at 01:12 PM

quote:
Originally posted by CookieRevised
When it doesn't work (you get the WSAIoctl error) it means a raw socket couldn't be made which is needed to sniff incomming packets.
On my Laptop at home I originally got an error about WSAIoctl, but then I wrapped the line in a try statement and now it works fine with my wireless connection, not sure if it will work for others.
code:
function OnEvent_Initialize(MessengerStart){
    if(Messenger.MyStatus > 0){
        try {
            xniff.Start();
        }catch(e){
            Debug.Trace('Error in xniff.Start():   '+e);
        }
    }
}

RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by CookieRevised on 11-28-2006 at 01:18 PM

There is a big problem when you use Pai's Xniff ActiveX sniffer in your scripts.

As soon as more than 1 script is using the ActiveX, critical problems will occur.

When you close Windows Live Messenger (with or without signing out, that doesn't matter), Messenger Plus! unloads all scripts and stuff. But because of a bug in Xniff (or the way it is compiled?), Windows Live Messenger will actually crash.
This crashing will go unnoticed for most people and it will appear as if Windows Live Messenger closed properly. But if you're a beta tester of Messenger Plus! and are using a debug version of Plus!, you will notice dump files being created as proof of Windows Live Messenger crashing upon closing.

This crashing on its turn makes that several things in Messenger Plus! itself doesn't work properly anymore either, like settings which would normally be saved upon closing Windows Live Messenger will not be saved anymore (eg: positions of the Script Debug Window, Event log, etc). It also is responsible for some other 'reported bugs' in Messenger Plus! Live.


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by czakowski on 01-14-2007 at 11:56 PM

emmm im sort of a noob
can some one tell me whole to create all this
cause it isnt really well said what to do ...

thanks


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by CookieRevised on 01-15-2007 at 01:22 AM

It is actually very well explained. Only, you need to understand about what it is, aka: you need to have some more than basic knowledge about the stuff.

To put it very bluntly (please don't take this in the wrong way though), if you don't understand what is explained or don't understand what the example scripts do or how they work, it is very well possible this isn't for you (yet)...


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by czakowski on 01-15-2007 at 04:01 AM

ok well...i didn't have any problem before cause it worked well on the 7.5 version but doesnt anymore on the msn live 8.0... version ... i even tried Stuffplug to get this open/close message but thosent work either.

anyways...i have to start learning somewhere ...right?
thanks anyways if you dont want to help out


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by matty on 01-15-2007 at 04:14 AM

Its not that we dont want to help out its a simple fact that if you dont understand the general concept it will be next to impossible to explain it. "You need to learn to walk before you can run."

And an open/close conversation notifier isn't secure because a lot of things in this protocol is called a "session"; opening conversations, changing your dp and your contact downloading it, etc are sessions so any of these will trigger your notification of an "opened window"


RE: RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by CookieRevised on 01-15-2007 at 07:30 AM

czakowski, in regards to:

quote:
Originally posted by Matty
And an open/close conversation notifier isn't secure because a lot of things in this protocol is called a "session"; opening conversations, changing your dp and your contact downloading it, etc are sessions so any of these will trigger your notification of an "opened window"
read "CookieRevised's reply to Question regarding a "close msg window logger""...

;)
RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by czakowski on 01-16-2007 at 01:14 AM

ok thanks guys


Xniff and Vista by Deco on 04-02-2007 at 03:22 PM

Anyone got Xniff to work with Vista?

I get error 0x80004005 when I try to register it.

Thanks


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by bigbob85 on 07-29-2007 at 04:29 AM

Is there anyway to packet sniff successfully with messenger plus?


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by Deco on 07-29-2007 at 12:57 PM

What do you mean?


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by bigbob85 on 07-29-2007 at 03:58 PM

My Bad... Xsniff dosnt work on wireless (yet).


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by Deco on 07-29-2007 at 08:08 PM

Works for me...doesn't work for me on vista though.. in XP it worked with my wireless.


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by bigbob85 on 07-31-2007 at 05:21 AM

Odd.. Dosnt work for me on my wireless, runnen XP pro. I manualy registed the file aswell.


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by CookieRevised on 07-31-2007 at 06:17 AM

Read the entire thread. It is stated and explained before that the OS doesn't have anything todo with it. It depends on what kind of drivers your network card is using.


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by bigbob85 on 07-31-2007 at 07:30 AM

Sorry, just read it all when I was coming down to this post.
Ethereal has a setting to capture packets in promiscuous mode. Did some searching and found this this.

Possible to enable it with xsniff?


RE: [Release] Xniff (ActiveX Packet Sniffer) - Examples inside by expertt on 09-16-2008 at 05:53 PM

this script not worked ;/
in my pc was installed
WLM 8.1
Messenger Plus 4.7
I installed successfully o script in example (converted to .plsc in winrar, inclued the xniff.ocx), but  not appear the contact window that opened me =//

How to successfully run the script?

helpp
tkss