ich hab mir aus diesem Board paar informationen zu einem IRC-Bot oder chat client geholt.... Hab testweise erstmal nur das connecten und das joinen eines Channels ausprobiert. nichts weiter. Nun hab ich das Problem das AntiVir dies als Heuristic/Backdoor.IRCBot erkennt. Kann man das vielleicht umgehen? Hier ist der Code:
Code: Alles auswählen
InitNetwork()
Declare.s Explode(string.s, trenn.s)
Declare.l CountChar(string.s, char.s)
Declare CheckNetEvent(string.s)
EOL.s = Chr(13)+Chr(10)
ircserver.s = "de.quakenet.org"
conid = OpenNetworkConnection(ircserver, 6667)
While 1
Select NetworkClientEvent(conid)
Case 2
Buffer.s = Space(500)
ReceiveNetworkData(conid,@Buffer,500)
rtext.s = Trim(Buffer)
Debug rtext
CheckNetEvent(rtext)
Debug rtext
Delay(50)
;Debug Mode alle eigehenden nachrichten anzeigen
;AddGadgetItem(#Connect_3,-1,rtext)
;end Debug mode
If FindString(rtext,"NOTICE AUTH :*** Looking up your hostname",1) > 0
;AddGadgetItem(#Connect_3,-1,"* Looking up your hostname")
;AddGadgetItem(#Connect_3,-1,"* Checking Ident")
;AddGadgetItem(#Connect_3,-1,"* Found your hostname")
SendNetworkString(conid,"USER "+"m00"+" "+Hostname()+" "+ircserver+" :http://www.xaan.de"+Chr(13))
;AddGadgetItem(#Connect_3,-1,"* USER "+GetGadgetText(#Connect_5)+" "+Hostname()+" "+GetGadgetText(#Connect_0)+" :http://www.xaan.de")
SendNetworkString(conid,"NICK :"+"Luzzi13221"+Chr(13))
;AddGadgetItem(#Connect_3,-1,"* NICK :"+GetGadgetText(#Connect_4))
EndIf
If Mid(rtext,1,7) = "ERROR :"
;AddGadgetItem(#Connect_3,-1,"* ERROR ' "+Mid(rtext,8,Len(rtext)-2)+" '")
EndIf
If Mid(rtext,1,6) = "PING :"
EndofPong = FindString(rtext,Chr(13),0)
;AddGadgetItem(#Connect_3,-1,"* PING "+Mid(PeekS(Buffer,500), 7, EndofPong-6))
;AddGadgetItem(#Connect_3,-1,"* PONG "+Mid(PeekS(Buffer,500), 7, EndofPong-6))
SendNetworkString(conid,"PONG :"+Mid(PeekS(Buffer,500), 7, EndofPong-6)+""+Chr(13))
Delay(500)
SendNetworkString(conid,"JOIN #pr0tec.gn"+Chr(13))
conned = 1
EndIf
EndSelect
Wend
Procedure.s Explode(string.s, trenn.s)
Dim StringParts.s(0)
Length.l = Len(string)
Length_woTrennZ.l = Len(RemoveString(string, trenn))
lParts.l = Length - Length_woTrennZ + 1
Dim StringParts.s(lParts)
For i = 1 To lParts
StringParts(i) = StringField(string, i, trenn)
Next
EndProcedure
Procedure.l CountChar(string.s, char.s)
count.l = FindString(string,char,1)
If count > 0
countasl.l = 0
Repeat
seek.l = FindString(string,char,seek+1)
If seek > 0
countasl + 1
EndIf
Until seek = 0
EndIf
howmany.l = countasl
ProcedureReturn howmany
EndProcedure
Procedure CheckNetEvent(string.s)
Shared EOL
;Debug string
dimensions.l = CountChar(string,EOL)
Explode(string,EOL)
For k=0 To dimensions
Debug StringParts(k)
Debug Asc(Mid(StringParts(k),1,1))
If Mid(StringParts(k),1,8) = "PRIVMSG"
Debug string
EndIf
Next
EndProcedure
Gruß,
Torakas