IRC

Für allgemeine Fragen zur Programmierung mit PureBasic.
Torakas
Beiträge: 63
Registriert: 13.09.2004 09:56

IRC

Beitrag 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
Benutzeravatar
Lars
Beiträge: 347
Registriert: 31.08.2004 23:53
Wohnort: Shanghai
Kontaktdaten:

Beitrag 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 /:->
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
Benutzeravatar
dige
Beiträge: 1246
Registriert: 08.09.2004 08:53

Beitrag von dige »

Wahrscheinlich würde es ausreichen die Strings verschlüsselt zu speichern.

cya dige
Antworten