Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12
  1. #1
    DateMake Dialer
    Registriert seit
    17.08.2007
    Beiträge
    102

    Standard Problem mit Bot entwicklung

    Hallo,
    ich habe mal angefangen einen IRC Bot zu schreiben.
    Dieser stürtzt leider manchmal ab wenn mehrere Bot's online sind.
    Der Bot arbeitet mit Threads...
    Wie schaffen den stable Bots das die nicht bei 1k Bots schon abstürzen?

  2. #2

    Registriert seit
    17.06.2009
    Beiträge
    559

    Standard

    Schwer zu sagen, zeig doch mal den Code, mit dem zu die Threads verwaltest...
    Hast du evtl. nicht alle globalen Zugriffe korrekt abgesichert/synchonisiert mit z.B. CriticalSections o.Ä.?

  3. #3
    DateMake Dialer
    Registriert seit
    17.08.2007
    Beiträge
    102

    Standard

    Arbeite mit _beginthreadex()
    So ungefähr sieht des aus:

    Code:
    int irc_start()  {
    
       reserviere speicher für buffer 
       empfange bytes vom server und schreibe in buffer
       starte "derThread" mit beginthreadex() und übergebe buffer
    
    }
    
    int derThread(char *wert) {
     kopiere Wert von der Variablen "wert"
     gebe buffer("wert") mit free() frei
    }
    Grob gesehen sieht das ganze jetzt so aus.
    Kann den Code leider nicht komplett posten.

  4. #4
    Wicked Wonderland Avatar von aL1ien
    Registriert seit
    08.07.2007
    Beiträge
    434

    Standard

    Du startest also aus einem Programm heraus mehrere Bots, oder wofür verwendest du Multithreading?
    Geändert von aL1ien (10.03.2010 um 14:31 Uhr)
    Tu peut t'le mettre dans l'cul.

  5. #5
    DateMake Dialer
    Registriert seit
    17.08.2007
    Beiträge
    102

    Standard

    Ich verwende Multithreading für die erhaltenen Befehle.

    Du startest also aus einem Programm heraus mehrere Bots
    Rede von dem kompletten Botnet.

  6. #6

    Standard

    Wann genau stürzt er ab, wenn du das Programm x mal bei dir selbst startest oder auf verschiedenen Rechnern, evtl. liegt es auch am IRC Server?
    Gibt es bestimmte Meldungen?
    _n0p3_

  7. #7
    DateMake Dialer
    Registriert seit
    17.08.2007
    Beiträge
    102

    Standard

    Also habe schon ein paar Victims mit dem Bot...
    Wenn ich z.B denn login Befehl gebe:

    Code:
    .login pw
    Erhalte ich von den Bots die Ausgabe:

    Successful logged in
    Und danach stürzen einige Bots immer ab.
    Am Server liegt es 100% nicht

  8. #8
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Schonmal mit OllyDbg versucht?
    Oder einfach ein paar Debug-Ausgaben einfügen und schauen wo das Ding abstürzt.

    Aber mal ehrlich: wenn du keinen Code rausgibst verstehe ich nicht, wieso dieser Thread überhaupt hier steht.

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  9. #9
    DateMake Dialer
    Registriert seit
    17.08.2007
    Beiträge
    102

    Standard

    Code:
                  for(;;) {
              err = 0;
            //  WaitForSingleObject((HANDLE)x,300); //test
    
                if(b == NULL) {
                  memset(puffer,0,sizeof(puffer));
                  CloseHandle((HANDLE)x);
                }
                else {
                    while(1) 
                        if(b == NULL)
                            break;
                    
                  CloseHandle((HANDLE)x);
                  memset(puffer,0,sizeof(puffer));    
                }
    
                    err = recv(socket,puffer,MAX-1,0);
    
              if((err == 0) || (err == SOCKET_ERROR)) {
                //printf("WSAGetLastError: %i\n",WSAGetLastError());
                shutdown(socket,2);
                closesocket(socket);
                WSACleanup();
                return 1;
              }
              else {
                  puffer[err] = '\0';
                  b = calloc(strlen(puffer)+1,sizeof(char));
                    if(b != NULL) {
                       strncpy(b,puffer,strlen(puffer));
                       cmd.msg = &b;
                       x = _beginthreadex(NULL,0,split_cmd,&cmd,0,NULL);
                    }
              } 
    
    //split_cmd()
    unsigned __stdcall split_cmd(irc *cmd) {
         
        char *p,user[24],*buf;
        argv parameters;
        int err,socket;
       
          memset(&parameters,0,sizeof(argv));   
    
        buf = calloc(strlen(*cmd->msg)+1,sizeof(char));
         if(buf == NULL)
           return 1;
         else
           memset(buf,0,sizeof(buf));
    
        
      strncpy(buf,*cmd->msg,strlen(*cmd->msg));
      free(*cmd->msg);
      *cmd->msg = NULL;
    Irgendwo in diesem Code muss ein Fehler sein...


    der einfach ein paar Debug-Ausgaben einfügen und schauen wo das Ding abstürzt.
    Bei Victims sehe ich die Ausgaben nicht...

  10. #10
    Wicked Wonderland Avatar von aL1ien
    Registriert seit
    08.07.2007
    Beiträge
    434

    Standard

    Lass die Ausgaben im Chat(query) erscheinen.
    Geändert von aL1ien (10.03.2010 um 19:50 Uhr)
    Tu peut t'le mettre dans l'cul.

Seite 1 von 2 12 LetzteLetzte

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •