[Autoit Request]MSN Monitor

12/04/2008 16:16 Goblin80#1
Hey, i want to make a basic analyzer for MSN messenger,

Code:
$ip = "192.168.1.2"

TCPStartup()

$packet = TCPConnect($ip, 2374)

While 1
	
	TCPAccept($packet)
	$rec = TCPRecv($packet,1000000)
	if $rec <> "" Then
		FileWriteLine("Packet.txt",$rec)
	EndIf
WEnd

Func onAutoitExit()
TCPShutdown()
EndFunc
But this doesn't work, need advice !
12/04/2008 22:05 Mankana#2
Using TCPConnect as a TCPAccept parameter don't work.
You should read the manual, it shows how to build a new connection
12/05/2008 08:31 Goblin80#3
Quote:
Originally Posted by |Mirage| View Post
Using TCPConnect as a TCPAccept parameter don't work.
You should read the manual, it shows how to build a new connection
Should i make it TCPListen ?
12/05/2008 11:21 Mankana#4
Yes, but i can't really help you with a full script, the functions don't work with my machine
12/05/2008 12:18 verT!c4L#5
[Only registered and activated users can see links. Click Here To Register...]

Quote:
;SERVER!! Start Me First !!!!!!!!!!!!!!!
$g_IP = "127.0.0.1"

; Start The TCP Services
;==============================================
TCPStartUp()

; Create a Listening "SOCKET"
;==============================================
$MainSocket = TCPListen($g_IP, 65432, 100 )
If $MainSocket = -1 Then Exit

; look for client connection
;--------------------
While 1
$ConnectedSocket = TCPAccept( $MainSocket)
If $ConnectedSocket >= 0 Then
msgbox(0,"","my server - Client Connected")
exit
EndIf
Wend
Ich kann das grad nicht testen,
aber da das von offizieller Seite stammt
geh ich schwer davon aus das das funktioniert.

Quote:
$rec = TCPRecv($packet,1000000)
Ob das so richtig is...

Btw, vlt musst du den socket auch forken...
12/05/2008 12:32 Goblin80#6
Quote:
Originally Posted by verT!c4L View Post
[Only registered and activated users can see links. Click Here To Register...]



Ich kann das grad nicht testen,
aber da das von offizieller Seite stammt
geh ich schwer davon aus das das funktioniert.



Ob das so richtig is...

Btw, vlt musst du den socket auch forken...
Hat nicht funktioniert!

Didn't work !
12/05/2008 12:55 verT!c4L#7
Quote:
Originally Posted by verT!c4L View Post
Btw, vlt musst du den socket auch forken...
Ich befinde mich grad in einer meiner Grauzonen,
aber wenn ich mich recht entsinne, muss man
Sockets forken um mehrere Clients daran zu hängen.
Da MSN ja Client No.1 ist, müsste dein Script "Client No.2"
darstellen...


Edit:

Ein angeblich funktionierender TCP Client in Autoit:
(google suche: autoit socket forken)
Quote:
PHP Code:
;-------------------------------
AutoIt TCP Client made by b2k5
;-------------------------------
#include <GUIConstants.au3>
$Form1 GUICreate("TCPClient"640480)
$Edit1 GUICtrlCreateEdit(""00640460$ES_READONLY $WS_VSCROLL $ES_AUTOVSCROLL $WS_HSCROLL $ES_AUTOHSCROLL)
$Input1 GUICtrlCreateInput(""046060020)
$Button1 GUICtrlCreateButton("Send"6004604020)
$connected 0
Global $socket
Global $sendtxt
HotKeySet
("{ENTER}""SendThatShit")
GUISetState(@SW_SHOW)
GUICtrlSetState($Input1$GUI_FOCUS)
TCPStartup()
While 
1
    $msg 
GUIGetMsg()
    
$recv TCPRecv($socket1024)
    
Select
        
Case $msg $GUI_EVENT_CLOSE
            
If $connected 1 Then
                TCPSend
($socket"QUIT :TCPClient exited." & @CRLF)
                
TCPCloseSocket($socket)
                
TCPShutdown()
            EndIf
            
ExitLoop
        
Case $msg $Button1
            SendThatShit
()
        Case Else
            If 
$recv <> "" Then
                GUICtrlSetData
($Edit1GUICtrlRead($Edit1) & $recv & @CRLF)
                If 
StringInStr($recv"PING"Then
                    $Pingval 
StringSplit($recv" ")
                    
$Pong "PONG :" $Pingval[2]
                    
TCPSend($socket$Pong & @CRLF)
                    
GUICtrlSetData($Edit1GUICtrlRead($Edit1) & $Pong & @CRLF)
                    
ToolTip("Ping? Pong!")
                    
Sleep(2000)
                    
ToolTip("")
                EndIf
            EndIf
    
EndSelect
WEnd
Exit
Func SendThatShit()
    If 
WinActive("TCPClient"Then
        $sendtxt 
GUICtrlRead($Input1)
        
GUICtrlSetData($Input1"")
        If 
$sendtxt <> "" Then
            
If $connected 1 Then
                
If StringInStr($sendtxt"QUIT"Then
                    TCPSend
($socket$sendtxt & @CRLF)
                    
$connected 0
                
Else
                    
TCPSend($socket$sendtxt & @CRLF)
                EndIf
            Else
                If 
StringInStr($sendtxt"/connect"Then
                    $server 
StringSplit($sendtxt" ")
                    
$serversplit StringSplit($server[2], ":")
                    
$ip TCPNameToIP($serversplit[1])
                    
$port $serversplit[2]
                    
$socket TCPConnect($ip$port)
                    If 
$socket = -1 Then
                        MsgBox
(64"TCPClient""Connection Failure.")
                        
$connected 0
                    
Else
                        
MsgBox(64"TCPClient""Connected successfully.")
                        
$connected 1
                        SendAtConnect
()
                    EndIf
                Else
                    
MsgBox(64"TCPClient""Not connected.")
                EndIf
            EndIf
        EndIf
    Else
        
Send("{ENTER}")
    EndIf
EndFunc   ;==>SendThatShit
Func SendAtConnect
()
    
TCPSend($socket"NICK TCPClient" & @CRLF)
    
TCPSend($socket'USER TCPClient "TCPClient" "TCPClient" :TCPClient' & @CRLF)
EndFunc   ;==>SendAtConnect 
Man beachte vorallem / keep attention at the parameter:
Quote:
PHP Code:
$recv TCPRecv($socket1024
Vorallem da 1024 bekanntermaßen Standard ist...

Nicht wie bei dir/ wrong parameter:

Quote:
PHP Code:
$rec TCPRecv($packet,1000000