1. D1zo13.03.2025 в 08:06от
  2. A777MP17813.03.2025 в 06:24от
Загрузка...

Работа с базами вида логин;пароль

Тема в разделе "С/С++/Pascal/Delphi", создана пользователем NIKE22, 28.02.2013.

  1. NIKE22

    NIKE22

    Статус:
    Оффлайн
    Регистрация:
    25.08.12
    Сообщения:
    110
    Репутация:
    248 +/-
    Здравствуйте няшки-кодеряшки :*


    В последнее время, одна личность в аське заебала закидала меня вопросами, как организвать в бруте работу с базами вида «логин;пароль». Это и будет темой нашей сегодняшней статьи.


    Для начала нам нужно имя базы. Как истинные садомазо мы можем заставить пользователя вбивать имя базы и путь её в ручную. Ибо нехуй. Мы значит тут кодим, стараемся, а этому хуеплёту будет в падлу вбить в текстбокс путь до файла в ручную? В общем если вы очень злой тип, то следующий абзац про dialog можете не читать, он будет полностью про то, как помочь юзеру по простому вбить адрес базы в прогу.

    Для того, что бы помочь ****. Используем Dialog.[/I]


    Код:
    string str1 = "";
    Stream myStream;
    OpenFileDialog openFileDialog1 = new OpenFileDialog(); //создаём новый экземпляр класса диалога открытия файла 
    
    openFileDialog1.Filter = "Secret key(*.txt)|*.txt"; //делаем фильтр, что бы юзер не выбрал файл другого расширения, они же как маленькие дети, то щёлкнут не туда, то захотят проверить типа "а что будет если выбрать исполняемый файл вместо тектовика?"
    
    openFileDialog1.FilterIndex = 2;
    
    openFileDialog1.RestoreDirectory = true;
    
    //если этот мудак, что то выбрал
    if (openFileDialog1.ShowDialog() == DialogResult.OK){
       if ((myStream = openFileDialog1.OpenFile()) != null){
          str1 = openFileDialog1.FileName;   //присваиваем переменной имя файла
       }      
    }

    И всё, переменная str1 и несёт имя нашего файла.

    Собственно, ключевая часть кода:


    Код:
    FileStream file = new FileStream(str1,FileMode.Open,FileAccess.Read);
    //создаём файловый поток  с параметрами (имя файла, режим доступа, тип доступа к файлу). Этот поток позволяет нам крутить файл, словно проститутку за 2000 р/час, как угодно и куда угодно.
    
    StreamReader str = new StreamReader(file);
    
    //создаём считывающий поток, с помощью которого мы и будем получать строки файла.
    
    List<string> list = new List<string>(); //Создаём лист объектов стринг
    
    string DenegNetNiHuya = "";        //плюс пара рабочих переменных
    
    int a = 0;
    
    int p = 0;
    
    //ебашим злостный цикл, что бы пройтись по всем строкаи файла
    while (DenegNetNiHuya != null)
    
     { 
    DenegNetNiHuya = str.ReadLine(); //присваиваем переменной значение строки файла 
    if (DenegNetNiHuya != null)
    { 
    list.Add(DenegNetNiHuya);
     // Добавляем строку в лист 
    a++; //счётчик, пригодится нам в дальнейшем, как вы уже могли догадаться он содержит количество строк в стринг листе } 
    list.Add("govnokod"); //добавляем в конец ключевое слово ебать как воняет говнокодом)
    string[] sorce = new string[1]; // создаём массив элементов в нём, в последствии, и будут содержаться разделённые значения строки j = ""; // обнуляем переменную, не будем же мы создавать новую, когда можно заюзать старую? 
    
     while (DenegNetNiHuya != "govnokod") //цикл, который будет крутить построчно лист до тех пор пока не наткнётся на ключевое слово
    { DenegNetNiHuya = list[p]; //присваиваем переменной DenegNetNiHuya значение Р-той строки листа
    
    if(DenegNetNiHuya != "govnokod")  //эта конструкция позволяет нам игнорировать ключевое слово 
    { sorce = DenegNetNiHuya.Split(';'); // здесь мы присваиваем нулевому элементу массива значение до разделителя, а единичному элементу значение после разделителя. Обратите внимание, что Split принимает значение только Char. Я как то 2 дня не спал, пытался разобраться, почему же не работает split, когда я передаю ему параметр. Оказалось, что параметр то был типа string...
    Console.WriteLine("{0} {1}", sorce[0], sorce[1]); //в данном месте мы тупо выводим значения до разделителя и после разделителя, с этими значениями можно сделать что угодно, например отправлять поочерёдно на какой нибудь скрипт...скрипт авторизации... Ну вы понимаете о чём я :D 
    p++; //счётчик 
    } 
    }
     
  2. anurev

    anurev

    Статус:
    Оффлайн
    Регистрация:
    19.11.12
    Сообщения:
    512
    Репутация:
    231 +/-
    отличный стиль написания статьи :biggrin:
     
  3. Xcremo

    Xcremo

    Статус:
    Оффлайн
    Регистрация:
    18.02.13
    Сообщения:
    46
    Репутация:
    5 +/-