Seite 1 von 1

IRC

Verfasst: 29.10.2004 00:52
von Torakas
Hi Leute,

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
Danke schonmal fuer jede Hilfe. Achja, es soll kein Bot werden, sondern fuer ein IRC Chatprogramm. Will aber nicht sowas wie mirc machen, sondern was ganz simples in einem Programm integrieren.

Gruß,
Torakas

Verfasst: 29.10.2004 01:52
von Lars
So wirklich nach Code, Tipps und Tricks gehört das nicht, da gehört es
hin, wenn du überzeugt davon bist und meinst, dass es fertig ist :)

Die Problematik mit Antivir lässt sich wohl so ohneweiteres nicht
umgehen, die Heuristik von Antivir etwas Entschärfen oder ganz
ausschalten, ich hatte die die Tage mal Probleweise an, das Scheißding
meine, mein Telnet sei ein Wurm /:->

Verfasst: 29.10.2004 08:09
von dige
Wahrscheinlich würde es ausreichen die Strings verschlüsselt zu speichern.

cya dige