Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Ответ
 
Опции темы
Старый 02.08.2010, 21:18   #1
-= Элитный Мастер =-
 Главнокомандующий
Аватар для Kitsune
 
Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
 
По умолчанию Теория брута. Часть 2. C# version

> Теория брута. Часть 2 <

Данная статья является продолжением серии статей на тему о том что такое Брутфорс.
В данном гайде речь пойдет о генерации случайных паролей. Данный вид генерации паролей не лучшим образом подходит для брутфорса, но мы начнем именно с него, чтобы иметь понятие вообще о генерации

Конечный материал данной статьи (скрин):
  • [Ссылки могут видеть только зарегистрированные пользователи. ]
Давайте приступим к реализации:
  1. Для реализации данного проекта были созданы следующие классы:
    • PasGen.cs
      Статический класс, реализующий сам алгоритм генерации.

  2. Рассмотрим структуру нашего класса:
    Код:
    public static class PassGen
    {
        // Объявляем диапазоны, из частей которых будет состоять наш пароль
        private static string dictAlphaLower = "qwertyuiopasdfghjklzxcvbnm";
        private static string dictAlphaUpper = "QWERTYUIOPASDFGHJKLZXCVBNM";
        private static string dictNumeric = "0123456789";
        private static string dictSymbols = "!@#$%^&*()_+-=";
    
        // Единственный метод класса, который генерирует пароли.
        // На вход метод принимает 4 флага, которые используются для определия,
        // из каких словарей собирать пароль, а так же 2 числовые переменные,
        // одна из которых длина пароля, а другая кол-во паролей для генерации
        public static string Generate(bool alphaL, bool alphaU, bool numeric, bool symbols, int length, int count)
        {
            // Объявляет переменную, в которой мы получим конечный словарь для генерации
            string dict = string.Empty;
    
            // Составляем конечный словарь, ориентируясь по флагам,
            // которые мы передали в метод как параметры
            if (alphaL) dict += dictAlphaLower;
            if (alphaU) dict += dictAlphaUpper;
            if (numeric) dict += dictNumeric;
            if (symbols) dict += dictSymbols;
    
            // Если конечный словарь у нас пустой, прекращаем выполнения метода.
            if (dict.Length == 0) return "Словарь не выбран!";
    
            // Объявляет объект класса Random, с помощью которого
            // мы будем получать случайные числа
            Random rnd = new Random();
            // Создаем объект билдера строк, для конечного результата
            StringBuilder rtnStr = new StringBuilder();
            // Создаем объект билдера строк, для хранения пароля
            StringBuilder pwd = new StringBuilder();
    
            // Пишем вступление (для красоты сделал)
            rtnStr.AppendFormat("Генерация паролей: {0} шт.\r\nДлина: {1}\r\n---------------------------\r\n\r\n", count, length);
    
            // Запускаем цикл, который будет бегать столько раз
            // сколько паролей мы хотим получить
            for (int i = 0; i < count; i++)
            {
                // Переинициализируем билдер, чтобы записывать в него новый пароль
                pwd = new StringBuilder();
                // Запускаем цикл, который будет бегать столько раз
                // сколько символов в пароле мы хотим получить
                for (int k = 0; k < length; k++)
                {
                    // Каждую итерацию цикла мы добавляем новый символ в билдер пароля
                    // Генерируя число от 0 до длинны словаря, мы получаем элемент словаря,
                    // а именно один символ по его индексу
                    pwd.Append(dict[rnd.Next(0, dict.Length)]);
                }
                // После того, как вложенный цикл закончил генерацию пароля,
                // добавляем его(пароль) в конечный результат
                rtnStr.AppendFormat("{0}\r\n", pwd.ToString());
            }
    
            // Возвращаем конечный результат
            return rtnStr.ToString(); ;
        }
    }
    Код полностью закомментирован, чтобы вам было проще понять что именно выполняется в данный момент времени.

Результаты:

  • Вот как выглядит результат генерации 10 паролей длиной 10 символов при использовании всех описаных мной словарей.
    Цитата:
    Сообщение от Password Generator
    n*HpEIg77a
    b^RWS6=5Dj
    -mu5Fh8k5&
    N^nJC3U0X4
    kK)Cn4D6Oj
    2PM_S-@8Zd
    V_w^AUJ@36
    Qbs6-TRPU7
    1w6HfgjWtV
    &CuIixHta&

  • В конечном счете у нас получился простой генератор паролей, который можно использовать как для защиты так и для нападения.
    Но хочется все же отметить, что для защиты он подходит гораздо лучше.

    Следующая статья будет посвещена последовательной генерации паролей, а именно такого вида:
    Цитата:
    Сообщение от Результат
    aaaaa
    aaaab
    aaaac
    ...
    aaaba
    aaabb
    aaabc
    ... и т.д.

Во вложении находится готовый проект на Visual Studio 2010.
Вложения
Тип файла: rar BruteTheory2.rar (40.0 Кб, 132 просмотров)
________________
Fireball - Быстрое снятие и загрузка скриншотов на хостинг.
  Ответить с цитированием
7 пользователя(ей) сказали cпасибо:
botque (27.08.2010), cunt85 (29.01.2011), Dunя (02.08.2010), J-Fobos (03.08.2010), ma_za_xa_ka (15.12.2011), Moisei (02.08.2010), object (10.08.2011)
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Руководство] Создание бота для PW. Часть 1. C# version Kitsune C# 22 09.12.2015 12:46
[Руководство] Создаём фейк программмы. Часть 2. C# version Kitsune C# 13 10.11.2012 21:34
[Руководство] Теория брута. Часть 1. C# version Kitsune C# 6 16.02.2012 20:28
[Руководство] Создаём фейк программмы. Часть 1. Delphi version Amba Pascal/Delphi 38 30.05.2011 22:27
[Руководство] Создаём фейк программмы. Часть 1. C# version Kitsune C# 116 27.02.2011 02:41

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 11:46.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net