• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Łamanie haseł BruteForce

Object Storage Arubacloud
0 głosów
1,293 wizyt
pytanie zadane 24 marca 2018 w Bezpieczeństwo, hacking przez kptpiotr Początkujący (330 p.)

Cześć!
 

Wykonuję program do łamania haseł metodą bruteforce ( jest to tylko szkolny projekt, nic groźnego) i mam pewien problem. W programie mam 2 funkcje: wyswietl_menu do pokazywania interfejsu i sterowania oraz metoda_slownikowa do porównywania haseł ze słowników z naszym wprowadzonym hasłem. Problem polega na tym, że funkcja wyswietl_menu nie chce wywołać funkcji metoda_slownikowa... Próbowałem używać samego kodu funkcji metoda_slownikowa i działa on bardzo dobrze tj. zgaduje hasła. Wydaje mi się że coś zagmatwałem w wywoływaniach funkcji, może chodzi o instrukcję switch-case?
Przy okazji nie wiem jeszcze jak się zabrać za sposób sterowania menu. Sterujemy podając odpowiedni numer opcji. Lecz gdy podamy całkiem inny numer lub inny znak program powinien wypisywać błąd i odnawiać działanie interfejsu, niestety wyłącza się, a gdy próbuję włączyć funkcję wyswietl_menu to zaczyna działać w kółko...
Z góry dzięki za pomoc!

 

#include <iostream>
#include <fstream>

using namespace std;

string haslo;

void metoda_slownikowa(string slownik){
    string temp;
    ifstream plik_we(slownik.c_str());

    if (!plik_we.is_open()) {
        cout<<"Nie ma takiego pliku!"<<endl;
        return;
    }
    getline(plik_we, temp);
    while(!plik_we.eof()){
        if(temp==haslo){
            cout<<"Haslo to: "<<temp<<endl;
            plik_we.close();
            return;
        }
        getline(plik_we, temp);
    }
    if(temp==haslo){
        cout<<"Haslo to: "<<temp<<endl;
    }
    else{
        cout<<"Nie udalo sie zlamac hasla!"<<endl;
    }
    plik_we.close();
    return;
}

void wyswietl_menu(string &slownik, bool &losowe_znaki, int &dlugosc_hasla, bool &cyfry, bool &male_litery, bool &wielkie_litery, bool &znaki_specjalne, string &wyrazenie){
    cout<<"*****************************************"<<endl;
    cout<<"1.Metoda slownikowa"<<endl;
    cout<<"2.Metoda na losowe znaki"<<endl;
    cout<<"3.Wybierz dlugosc hasla"<<endl;
    cout<<"4.Wyrazenie zawarte w hasle"<<endl;
    cout<<"5.Opcje"<<endl;
    cout<<"*****************************************"<<endl;
    int wybor;
    cin>>wybor;
    string temp1;
    int numer_slownika=1;

    switch(wybor){
    case 1:
        system( "cls" ); /*Czyszczenie ekranu */
        cout<<"Dostepne slowniki:"<<endl;
        cout<<"1.1000000-password-seclists"<<endl;
        cout<<"2.slownik1"<<endl;


        cout<<"Wybierz numer slownika:"<<endl;
        cin>>numer_slownika;

        switch(numer_slownika){
        case 1:
            metoda_slownikowa("1000000-password-seclists");
            break;
        case 2:
            metoda_slownikowa("slownik1");
            break;
        default:
            cout<<"Podaj wlasciwy numer!"<<endl;
            wyswietl_menu(slownik, losowe_znaki, dlugosc_hasla, cyfry, male_litery, wielkie_litery, znaki_specjalne, wyrazenie);
            break;
        }

        system( "cls" ); /*Czyszczenie ekranu */
        break;
    case 2:
        system( "cls" ); /*Czyszczenie ekranu */
        /*Uruchom funkcje z losowymi znakami@@@@@@@@@@@@@@@@@@@@@@@@@@*/
        break;
    case 3:
        system( "cls" ); /*Czyszczenie ekranu */
        cout<<"Wpisz dlugosc hasla"<<endl;
        cin>>dlugosc_hasla;
        system( "cls" ); /*Czyszczenie ekranu */
        wyswietl_menu(slownik, losowe_znaki, dlugosc_hasla, cyfry, male_litery, wielkie_litery, znaki_specjalne, wyrazenie);

        break;
    case 4:
        system( "cls" ); /*Czyszczenie ekranu */
        cout<<"Podaj wyrazenie zawarte w hasle"<<endl;
        cin>>wyrazenie;
        system( "cls" ); /*Czyszczenie ekranu */
        wyswietl_menu(slownik, losowe_znaki, dlugosc_hasla, cyfry, male_litery, wielkie_litery, znaki_specjalne, wyrazenie);

        break;
    case 5:
        system( "cls" ); /*Czyszczenie ekranu */
        cout<<"Jesli chcesz wylaczyc opcje wpisz t"<<endl;

        cout<<"Czy wylaczyc cyfry?"<<endl;
        cin>>temp1;
        if(temp1=="t"){
            cyfry=false;
        }

        cout<<"Czy wylaczyc male litery?"<<endl;
        cin>>temp1;
        if(temp1=="t"){
            male_litery=false;
        }

        cout<<"Czy wylaczyc wielkie litery?"<<endl;
        cin>>temp1;
        if(temp1=="t"){
            wielkie_litery=false;
        }

        cout<<"Czy wylaczyc znaki specjalne?"<<endl;
        cin>>temp1;
        if(temp1=="t"){
            znaki_specjalne=false;
        }
        system( "cls" ); /*Czyszczenie ekranu */
        wyswietl_menu(slownik, losowe_znaki, dlugosc_hasla, cyfry, male_litery, wielkie_litery, znaki_specjalne, wyrazenie);

        break;
    default:
        cout<<"Podaj numer 1-5!"<<endl;
        cin>>wybor;
        break;
    }

}



int main()
{
    string slownik="0";
    bool losowe_znaki=false;
    int dlugosc_hasla=0;
    bool cyfry=true;
    bool male_litery=true;
    bool wielkie_litery=true;
    bool znaki_specjalne=true;
    string wyrazenie;

    cout << "Lamanie hasel metoda BruteForce" << endl;
    cout << "Wpisz haslo testowe" << endl;

    cin>>haslo;
    wyswietl_menu(slownik, losowe_znaki, dlugosc_hasla, cyfry, male_litery, wielkie_litery, znaki_specjalne, wyrazenie);


    return 0;
}


 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

–2 głosów
0 odpowiedzi 1,974 wizyt
pytanie zadane 15 marca 2019 w Bezpieczeństwo, hacking przez jp2gmd Początkujący (320 p.)
0 głosów
1 odpowiedź 1,536 wizyt
pytanie zadane 29 września 2018 w Bezpieczeństwo, hacking przez revizor451 Obywatel (1,930 p.)
0 głosów
1 odpowiedź 355 wizyt

92,555 zapytań

141,404 odpowiedzi

319,560 komentarzy

61,941 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...