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

Łamanie haseł BruteForce

0 głosów
1,396 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 2,338 wizyt
pytanie zadane 15 marca 2019 w Bezpieczeństwo, hacking przez jp2gmd Początkujący (320 p.)
0 głosów
1 odpowiedź 1,696 wizyt
pytanie zadane 29 września 2018 w Bezpieczeństwo, hacking przez revizor451 Obywatel (1,930 p.)
0 głosów
1 odpowiedź 582 wizyt

93,428 zapytań

142,423 odpowiedzi

322,652 komentarzy

62,789 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...