|
13 / 9 / 4
Регистрация: 24.12.2020
Сообщений: 153
|
|
Программно предугадать значения Random20.05.2022, 23:05. Показов 3232. Ответов 59
Метки нет (Все метки)
Спустя столько времени у меня появился вопрос.
Возможно ли как-то предугадать программно значения Random для, допустим, отрезка в 100 чисел? Или может перехватить эти цифры в процессе работы встроенной функции ?
0
|
|
| 20.05.2022, 23:05 | |
|
Ответы с готовыми решениями:
59
Можно ли предугадать,что выведет метод Random.Next и можно посмотреть сам этот класс?(код) Повтор значения Random |
|
Модератор
|
||
| 21.05.2022, 23:48 | ||
|
Если же это настоящий ГСЧ, то повторения цикла и вовсе нет. Так же в конкретной реализации ГСЧ или ГПCЧ могут быть какие-то ляпы, баги кодирования или алгоритма, которые позволяют хакнуть эту конкретную реализацию. Но обсуждение этого без алгоритма и кода реализации - бессмысленно. Хоть как вы к этому двигайтесь, с любой стороны.
0
|
||
|
|
|||||
| 21.05.2022, 23:52 | |||||
|
0
|
|||||
|
13 / 9 / 4
Регистрация: 24.12.2020
Сообщений: 153
|
|
| 21.05.2022, 23:53 [ТС] | |
|
0
|
|
|
Модератор
|
||
| 21.05.2022, 23:54 | ||
|
В возвращаетесь в таком случае к поиску нужного зерна, что в принципе не имеет смысла, так как просто даже точное знание всей реализации ГПСЧ, таймингов, не позволяет воссоздать точные условия генерации ключа. Для их получения как минимум нужен хак программы создавшей этой ключ, после чего скорее всего разбирательство в тонкостях работы ГПСЧ уже не понадобится.
0
|
||
|
|
|
| 21.05.2022, 23:58 | |
|
Элд Хасп, если я начну генерировать СЧ исходя из текущей влажности между пакетами окон, то вы никогда не взломаете эту переменную в формуле. По крайней мере до тех пор, пока не приедете с прибором в точку отбора этой величины )
Добавлено через 2 минуты Элд Хасп, не не, дисасемб предполагался только в целях вычисления времени выполнения. Никаких взломов исходного кода не имелось в виду.
0
|
|
|
Модератор
|
|||
| 22.05.2022, 00:06 | |||
|
Random всегда генерирует только Double число в диапазоне от нуля включительно до единицы исключительно. К инту это число приводится банальным умножением на длину диапазона, прибавлением начала диапазона и отбрасывание дробной части результата. Именно по этому в целом диапазоне верхняя граница исключительная. Никакой аналогии с маятником это не имеет. Маятник - это периодическая система. А ГСЧ (в идеале) - это аналог белого шума. Как вы шум не ограничивайте по диапазону, по частоте - он всегда останется шумом. Добавлено через 6 минут Без программного хака вы не сможете узнать был ли этот ключ получен первой серией из экземпляра Random или перед этим было какое-то количество обращений. А без этой информации, даже точно вычисленное зерно вам ничем не поможет, так как вы не сможете его проверить.
0
|
|||
|
Модератор
|
||||
| 22.05.2022, 00:10 | ||||
|
Добавлено через 1 минуту Никакой аналогии с ГСЧ я в нём не вижу.
0
|
||||
|
|
|
| 22.05.2022, 00:17 | |
|
Leooos, у вас есть более простые вопросы в запасе? А то взбудоражили всех мэтров форума и он завибрировал
![]() Добавлено через 7 минут Элд Хасп, у Вас есть ровно 100 чисел. Вы должны выложить мне каждое второе, если оно вместе с коэфф К делится нацело на 2. И времени вам на это 100 мс. Коэфф К мы получили при инициализации класса. Дальше молчу, жду ваших идей.
0
|
|
|
13 / 9 / 4
Регистрация: 24.12.2020
Сообщений: 153
|
|
| 22.05.2022, 00:18 [ТС] | |
|
wizard41,
![]()
0
|
|
|
|
||
| 22.05.2022, 00:41 | ||
|
Теперь берем ситуацию хуже - Random. Наш процессор тактуется собственным генератором. Выполняя при этом некоторое кол-во операций. ... Дальше интересно?
Добавлено через 2 минуты Добавлено через 8 минут Я дал вам диапазон, но ограничил время. Кол-во тактов осталось прежним. Смысл улавливаете? Колебания и волны, черт их побери.
0
|
||
|
Модератор
|
|||
| 22.05.2022, 00:43 | |||
|
Возможны вы в своей какой-то задаче используете ГСЧ. Но собственно реализация ГСЧ никак не связана с вашей задачей. ГСЧ понятия не имеет как вы собираетесь его использовать. Речь идёт только о периодичности (длине цикла) чисел выдаваемых ГСЧ. Это зависит только от реализации ГСЧ. Для Random "ведущий" метод это NextDouble(). Если быть точным, то приватный метод InternalSample(), но NextDouble() его и возвращает если не было сделано никаких перегрузок в производных классах. Все перегрузки целочисленного метода Next(...) работают через NextDouble(). И цикличность всех методов также определяется цикличностью метода NextDouble() - она у всех одинаковая. Не зависит заданы параметры в Next или нет. Добавлено через 1 минуту Вы даёте какую-то совершенно абстрактную, не относящуюся к обсуждаемому вопросу задачу.
0
|
|||
|
|
||
| 22.05.2022, 01:08 | ||
|
Элд Хасп, нет, я не решаю никакую задачу с ГСПЧ на данный момент. Я пытаюсь вам дать понять, как рандомизируются числа на уровне процессора. И кто и что за это отвечает.
На примере с маятником вам стало не понятно, ну что ж, подскажу: Маятник совершает периодические колебания, точно так же, как и внутренний генератор Вашего процессора, который обрабатывает Ваши инструкции. Только колебания маятника должны поддерживаться механически. Ваш же процессор тактуется за счет подключения в розетку (в общем смысле). Идем глубже - Random генератор, прежде чем он вернет некоторый результат, произойдет некоторое кол-во тактов ЦПУ. Добавлено через 2 минуты Давайте завтра все. Поздно, спать пора... Добавлено через 2 минуты Добавлено через 7 минут Касаемо задачи: повлияло бы сокращение времени на поиск на частоту ваших изысков искомого числа? Нет. Это к вопросу сужения диапазона колебаний маятника.
0
|
||
|
Модератор
|
||||
| 22.05.2022, 01:14 | ||||
|
Откройте исходники и посмотрите как всё работает. Оно никак (более точно - почти) не зависит от процессора и определяется таймером системы. Небольшая погрешность от точных миллисекунд определяется "железом" и историей нагрузки компа. Проблема здесь не в том как угадать эту погрешность, а в том, что вы в принципе не знаете загружался ли комп минуту назад или год назад. Второе, без хака программы вы не можете знать используется ли конструктор по умолчанию или генерится более случайное зерно. Третье, без хака программы вы не знаете сколько надо пропустить вызовов Next перед получением ключа. Без этих трёх пунктов попытка подбора зерна для получения ключа обречена на провал. Добавлено через 3 минуты Никокого! Возврат Random определяется только зерном и количеством вызовов InternalSample(). А будет между вызовами InternalSample() одна миллисекунда или год - никак на следующую выдачу не повлияет.
1
|
||||
|
|
|||
| 22.05.2022, 01:37 | |||
|
Элд Хасп, вы правы и нет одновременно. Я Вам про валенки, вы мне про пирожки.
Дайте мне расчет рэндом генератора, чтобы за единичный интервал он сгенерировал одинаковое значение на 1, 2-х, 5-ти и более ядрах. Добавлено через 2 минуты Добавлено через 1 минуту Короче, сколько вешать в граммах? ![]() ![]() Добавлено через 1 минуту Добавлено через 12 минут Leooos, не заходите сюда больше с такими запросами. А то взорвете тут все. И красный проводок перерезать не придется.
0
|
|||
|
13 / 9 / 4
Регистрация: 24.12.2020
Сообщений: 153
|
|
| 22.05.2022, 01:43 [ТС] | |
|
wizard41, да ладно вам, интересно же )
0
|
|
|
Модератор
|
|||||
| 22.05.2022, 02:00 | |||||
|
Как алгоритм Random связан с количество ядер? Создаёте Random(константа) и он будет генерить у вас одинаковые последовательности хоть на одном, хоть на ста ядрах.Она влияет только на создание экземпляра дефолтным конструктором Random(). На то какие числа потом будут гененериться система никак не влияет. Environment.TickCount инициализируется (обнуляется) при ЗАГРУЗКЕ ОС. И таймер никак не поможет узнать его значение. Добавлено через 10 минут Да, по ним можно узнать приблизительное время работы компа - не подумал об этом. Правда не могу сказать как оно будет связано с Environment.TickCount в режиах Гибернации и Сна. Но это можно выяснить - не столь важно. Даже если удастся посчитать приблизительное значение Environment.TickCount, то там диапазон может быть несколько тысяч значений. И чтобы их проверить надо знать применялось ли зерно при инициализации и сколько нужно пропустить методов InternalSample() перед получением ключа. Узнать эту информацию без хака программы не получится.
0
|
|||||
|
|
||
| 22.05.2022, 10:57 | ||
|
0
|
||
| 22.05.2022, 10:57 | |
|
Random генерирует одни и те же значения enum и Random(Вывод произвольного значения из перечисления) Вставить random значения в переменную типа string Random выдает одинаковые значения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Новости компьютерного мира и их обсуждение (4)
Салют, шампанское, овации!
:drink:
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
|
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|