26 Октября 2021 15:43 
Заработай шерингом
Навигация
 +  - 
Скачать игры
Сейчас на сайте
26.10.2021
Warhangel
12:15:19
offline
12.10.2021
Aloha123
1 неделя
offline
12.10.2021
zacqawert
1 неделя
offline
08.10.2021
m1coR
2 недель
offline
25.09.2021
AlJaday
4 недель
offline
Последние фото
Game of Blocks : WesterosCraft and Game of Thrones
Game of Blocks : Wes...
Альбом: Скриншоты

Вынос трёх пати куполом
Вынос трёх пати куполом
Альбом: Скриншоты



Альбом: Флора

Последние видео
Видео LIVE 24/7 Rolling Cam Venice : The most beautiful Live Cam in Venice Italy - Livecam en direct

Онлайн камеры:  LIVE 24/7 Rolling Cam Venice

Видео Rolling Cam World : Rolling Cam World - Live Webcam around the World

Онлайн камеры:  Rolling Cam World

Видео EarthCam Live: Times Square in 4K : Watch live streaming video in 4K of Times Square, New York City.

Онлайн камеры:  EarthCam Live: Times Square in 4K

Наша кнопочка
FAQ7.ru
Код:
RSS каналы
Комменты
эта ветка
вся категория
Новости
Комменты
Форум
Статьи
Фото
Файлы
Ссылки
Объявления
Реклама
Регистрация сайта в каталогах, раскрутка и оптимизация сайта, контекстная реклама
Топ 10 Статей
Как стать феей? (Переходов: 31829)
Клитор: элементарная анатом... (Переходов: 11569)
Что привезти близким с Изра... (Переходов: 8589)
Одна регистрация на несколь... (Переходов: 8388)
Атрибуты - Система Атрибутов (Переходов: 7169)
Как успешно пройти проверку... (Переходов: 6330)
Half-open limit fix (patch)... (Переходов: 6095)
Полное руководство по макро... (Переходов: 5978)
Подарки и сувениры из Грузии (Переходов: 5481)
SSD накопители (Переходов: 5054)
Жизненные уроки. Как душа п... (Добавлена: 24/10/2019)
Какого числа родился челове... (Добавлена: 24/10/2019)
Зубы с точки зрения эзотерики (Добавлена: 26/12/2018)
Почему на Западе боятся роб... (Добавлена: 06/08/2018)
8 вещей, о которых нужно по... (Добавлена: 28/07/2018)
Илья-пророк и его карающий ... (Добавлена: 12/03/2018)
Спиннер: что же это такое и... (Добавлена: 14/11/2017)
Биткоин: способы заработка ... (Добавлена: 14/11/2017)
Как работает система биткойн (Добавлена: 14/11/2017)
Криптовалюты (Blockchain). ... (Добавлена: 14/11/2017)

Исследование генератора случайных чисел Delphi
Статью написал: Bad_guy
Статья создана: 26.07.03

Ещё одна оригинальная статья от меня ждёт своих читателей, но на этот раз это будет не о крэкерстве, а о высокоуровневом языке программирования Delphi. Давайте рассмотрим генератор случайных чисел, который частенько мельком называют генератором псевдослучайных чисел, не поясняя всей глубокой сути этой приставки "псевдо". На самом же деле, когда речь заходит о компьютерах, процессорах и вычислительных системах о "случайности" можно забыть, потому как все процессы происходящие в компьютере являются результатом строгих математико-логических операций, происходющих в процессоре и других вспомогательных микросхемах компьютера (контроллер прерываний, таймер, сопроцессор,...).

Есть в Delphi две интересные функции: Randomize и Random, а также переменная RandSeed. Надеюсь, что вы знаете об их использовании. Но, наверняка, редко используете переменную RandSeed (dword), а вот с ней то я и захотел разобраться, а также решил поделиться своим опытом с вами.

Поскольку я всё-таки крэкер, давайте пойдём крэкерским путём - возьмём готовую программу и поглядим как она работает - я взял "Генератор случайных паролей", написанный Цованяном Романом Сейрановичем. Но сначала я посмотрел как же Randomize рандомайзит, на основе чего ? Оказывается, на основе GetSystemTime, которая возвращает текущую дату и точное время (с миллисекундами) но не у нас, а по Гринвичу, для меня это было - на 4 часа меньше, чем на часах. Затем я поглядел алгоритм функции Randomize - он выглядит в Delphi5 следующим образом:

var St: systemtime;
GetSystemTime(St);
RandSeed := ((St.wHour*$3c + St.wMinute)*$3c + St.wSecond)*$3e8+St.wMilliseconds;

Как видите, всё очень просто. А сама функция Random уже использует только переменную RandSeed, берёт на основе неё случайное число, а потом меняет RandSeed, причём строго математически, то есть если при каждом запуске программы заносить в RandSeed одинаковую переменную, то набор "случайных" чисел, полученных с помощью Random при том же диапазоне будет такой же.

Я решил провести небольшой опыт по взлому пароля, сгенерированного с помощью программы "Генератор случайных паролей". Запустил программу, взял длинный не взламываемый перебором пароль и запаковал с этим паролем в ZIP архив какой-то файл. На следующий день я "захотел" взломать этот архив и сделал следующим образом - посмотрел время создания архива и понял, что пароль был сгенерирован где-то в течение 2-3 минут до создания архива, и написал я небольшую программку, которая эмулировала Randomize, но я использовал не GetSystemTime, чтобы заполнить структуру St: Systemtime, а сам заполянял её с шагом одна миллисекунда и начиная от 3 минут до создания архива, не забывая также, что час взят по Гринвичу. Кроме того, я подглядел алгоритм создания пароля в программе "Генератор случайных паролей". То есть, я создал лист паролей. Для каждой миллисекунды я сделал не один пароль, а несколько (я "забыл" длину пароля, но помнил, что она где-то от 4 до 16 символов). То есть у меня получился внушительный лист паролей на почти 30 мегабайт. Затем я взял программку Advanced ZIP Password Recovery и поручил ей мой запароленный архив и дал в помощь свой 30 мегабайтный "словарик", через 3 секунды пароль был найден, надо же...

Теперь давайте прикинем: если мы не знаем время генерации ключа, но знаем, что некто любит генерировать "трудновзламываемые" пароли с помощью "Генератора случайных паролей", то что мы будем делать ? Теперь посчитаем сколько миллисекунд в сутках 1000*60*60*24 = 86'400'000. Допустим, что пароль длинной от 4 до 20 символов, то есть каждую миллисекунду мы получим по 17 паролей, значит за сутки у нас будет 86400000*17 = 1'468'800'000 - всего то полтора миллиарда паролей. А программка Advanced ZIP Password Recovery перебирает, на моём не слишком крутом компьютере, по 520000 паролей в секунду. Значит любой пароль, сгенерированный в любой день, в любое время с помощью программы "Генератор случайных паролей" будет найден за 1468800000/520000 = 2824 секунды, то есть примерно за 50 минут. Единственной проблемой является, то что Advanced ZIP Password Recovery не поддерживает внешний плагин, который бы "давал" пароли для перебора, поэтому придётся создавать гигабайтные словари паролей, что не очень удобно, но весьма реально.

Таким образом создавать "Генератор случайных паролей" на основе стандартных функций Delphi весьма глупо. "А как тогда не глупо ?" - спросите вы. Вообще, сейчас серьёзные организации пароли любят генерировать на основе белого шума. Нам же до этого шума далеко - брать нам его негде. А вот пользователя, сидящего за компьютером мы вполне можем использовать, а именно его замечательный человеческий фактор - аналоговую случайную функцию: запустим программу и заметим время, а потом, когда пользователь нажмёт "Генерировать пароль" - заметим время ещё раз - вот и одна случайность, можно также "последить" за траекторией мыши - вот вам вторая случайность. Теперь ещё можно поиcпользовать всякие хитрые функции GetDiskFreeSpace, также можно использовать хэш функции для замедления процесса создания листа паролей, то есть если ваша функция Randomize будет работать хотя бы 100 миллисекунд - уже потребуется 100 суток, чтобы создать весь лист паролей. Но тут ведь ещё одна проблема RandSeed - dword, то есть 32 бита, а это 2^32 = 4294967296. Поделим ка мы его на количество миллисекунд в сутках 4294967296/86'400'000 = 50, то есть потребуется 50*50 = 2500 минут в нашем случае, чтобы найти пароль от любого RandSeed, значит надо брать в качестве RandSeed переменную длинее 32 бит, мне приходит на ум лишь Int64 - вот тогда ваш пароль уже никто не взломает за разумное время.

Вы скажете: что за фигня - зачем крэкеру это знать ? Может, и не надо, но по-моему уважающему себя крэкеру, а также "продвинутому" программисту полезно знать о вот таком нестандартном подходе к обыденным вещам, понять суть происходящего, познать основы криптоанализа и глубину возможностей крэкерства и недостатков высокоуровневого программирования, а не только снимать аспр, да и то через раз...

Удачи вам в вашей деятельности, чем бы вы ни занимались, Bad_guy.
Программирование: Исследование генератора случайных чисел Delphi
Опубликовал Warhangel 22.09.2010 · В Программирование · 0 Комментариев · 3487 Прочтений · Печать
Комментарии
  • Комментарии с сайта
  • ВКонтакте
  • Социальные и гостевые
Нет комментариев.
Добавить комментарий

Пожалуйста, авторизуйтесь или зарегистрируйтесь для добавления комментария.
Рейтинги
Нет данных для оценки.

Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесь или зарегистрируйтесь для голосования.


Последние объявления
ФотоЗаголовокГородРазмещено
ООО «ЛУКОЙЛ-Нижневолжскнефть» реализует неликвиды
• Хозяйство - Оборудование Цена: 1 1
Астрахань19.10.2021
(на 1 месяц)
Аптека поможет убрать живот быстро и предлагает капсулы для снижения аппетита
• Для дома - Здоровье Цена: 1 1
Москва25.08.2021
(на 24 месяца)
Тайские Лекарства от целлюлита помагают сбросить лишний вес
• Для дома - Здоровье Цена: 1 1
Санкт-Петербург10.10.2020
(на 24 месяца)
Магазин абразивных материалов «Абразивмастер»
• Хозяйство - Оборудование Цена: 1 1
Москва17.06.2020
(на 24 месяца)
Самое лучшее для похудения помогают народные рецепты для похудения в аптеке
• Для дома - Здоровье Цена: 1 1
Москва20.02.2020
(на 24 месяца)
Облако тегов тем форума
Проект Libra получит собственный язык программирования смарт-контрактов, Сборка сервера от L2j-CE (Сказака Эдишен) Gracia Final, Игровые новости (rss), Несколько полезных советов новичкам в Prime World, Ветеринарная помощь, Квест на 3 профу для Сх, Facebook разрабатывает криптовалюту, Бот для KAMAEL.NET.RU, ArcheAge CBT 5: Новое эмоционально-социальное видео, Ошибка 37, CBDC: мост между криптовалютами и фиатом, JPMorgan начал обслуживать криптовалютные биржи, Квест на Warsmith, "Холотропное дыхание. Reload" 28-29 августа, Интерфейс - Персонаж
Гость
Входите
Имя

Пароль


[L]


Не можете войти?
[R] Зарегистрироваться
[L] Утерян пароль

Войти через соц.сеть

Регистрация через соц.сеть
Миничат
Только пользователи могут отправлять сообщения.

Warhangel
OfflineAdmin
· 08-10-2021 15:50
Генеральный директор криптовалютной биржи Binance Чанпэн Чжао сообщил, что компания откроет несколько штаб-квартир и одна из них будет находится в Ирландии.

Warhangel
OfflineAdmin
· 17-09-2021 21:45
Власти Лаоса запустили пилотную программу по тестированию майнинга и торговли криптовалютами в стране. В программе примут участие более десятка местных компаний.

Warhangel
OfflineAdmin
· 17-09-2021 21:42
Блокчейн Conflux для тестирования цифрового юаня на оффшорных рынках будет осуществлен в тестовой свободной экономической зоне района Линан.

Warhangel
OfflineAdmin
· 16-07-2021 21:44
Генеральный директор MicroStrategy Майкл Сэйлор (Michael Saylor) считает, что биткоин – это цифровая собственность, а не цифровая валюта, поэтому он не может пошатнуть финансовую систему.

Warhangel
OfflineAdmin
· 18-06-2021 11:39
По результатам опроса Управления по финансовому надзору Великобритании (FCA) количество британских инвесторов в криптовалюты выросло с 1.9 млн в прошлом году до 2.3 млн в 2021-м.

Warhangel
OfflineAdmin
· 29-05-2021 19:08
Согласно заявлению основателя децентрализованной
биржи Uniswap Хайдена Адамса, разработчики платформы скоро вновь запустят программу майнинга ликвидности на площадке.

Warhangel
OfflineAdmin
· 21-05-2021 06:07
Американский банк Wells Fargo намерен предоставить своим институциональным клиентам доступ к криптовалютам для диверсификации инвестиционного портфеля, предупредив о сопутствующих рисках.

Warhangel
OfflineAdmin
· 23-04-2021 15:32
Штат Вайоминг признал децентрализованные
автономные организации (DAO) новым типом компаний с ограниченной ответственностью. Закон вступит в силу с 1 июля 2021 года.

Warhangel
OfflineAdmin
· 03-04-2021 13:39
Coinbase сообщила, что прямой листинг акций биржи на Nasdaq пройдет 14 апреля. По предварительным прогнозам, акции будут торговаться по $300-350, при этом биржа оценивается примерно в $100 млрд.

Warhangel
OfflineAdmin
· 12-03-2021 02:42
По результатам опроса Nickel Digital, более 85% институциональных инвесторов, владеющих криптовалютами, планируют увеличить инвестиции в криптоактивы в течение следующих двух лет.

Реклама
RU CLICKSРусский трафик
etxt.ru
Главная Статьи Файлы Форум Ссылки Новости Фотогалерея Объявления Видео Файлобменник Гороскоп Торренты Радио Видеочат
Яндекс.Метрика
Powered by PHP-Fusion copyright © 2002 - 2021 by Nick Jones. Released as free software without warranties under GNU Affero GPL v3.