Предугадывание
#soer #itubeteam
Основной канал для общения и публикации новых видео - Телегарм - t.me/softwareengineervlog
Спонсорство - donate.s0er.ru
Сайт платным контентом - soer.pro
Зеркало для видео Дзен Видео - zen.yandex.ru/id/5f578bdf22e2...
GitHub - github.com/soerdev
Чат для программистов - / discord
Группа ВК - codeartblog
Пікірлер: 123
Еще больше закрытых материалов на www.patreon.com/soersoft Вы знали, что я пишу книгу? Так вот первая глава уже доступна для патронов.
В универе на криптографии повторяли подобное) прям в универ захотелось вернуться)) Спасибо большое
Спасибо! Все по теме! Удачи и успехов во Всем!
Грамотный мужик, лайк
надо было написать Угадываю значения RAND 10 ЧАСОВ
@ananasikmezzar3294
4 жыл бұрын
(челлендж)
@turtle207
4 жыл бұрын
Подряд.
@batfist6595
4 жыл бұрын
@@turtle207 о, это слово волшебное, многое меняет
Здорово, всё гениальное - просто. ;)
Очень интересный контент!
Всё, пошел деньги на онлайн казино закину и "обанкрочу" ево! Я теперь знаю секрет! Отличная подача материала, спасибо!
@user-md1yv6vs9v
4 жыл бұрын
обанкротили?)
@zultulce
4 жыл бұрын
@@user-md1yv6vs9v неа, у них алгоритм другой, более умные они. Тоже походу смотрят канал Соера! :) В долги залез, кредит взял, кредит чтоб покрыть кредит и тот проиграл. Овечаю, все на зеро поставил, а выпало двойное зеро!
Даёшь больше практики!
круто!
спасибо
Полезное видео
1. Нужно знать не только последовательность из 7 получившихся чисел, но и коэффициенты самой формулы. 2. В современной криптографии используются ключи длинной 1024 бит и более - т.е. число из 128 цифр. Подставьте число такого размера в переменную m и попробуйте дождаться результата вычислений. А ключ размером 2^31 и в RSA подберётся за секунды.
@user-kk2tk9dj3o
22 күн бұрын
Автор сказал что методы используются другие в криптографии. И угадать таким способом не получится
Привет! Отличное видео. Однозначно лайк! На тебе окуляры с "технологией" Blue Block? Расскажи что-то о них: где покупал? за сколько? стоит ли использовать в работе? глаза меньше устают? когда надеваешь? можно ли использовать в быту (например, во время вождения автомобиля)?
😏 но очень интересно
ДА! ДА! ДА! Брат, ты меня не подвел!
ого, неожиданно
Красава! И как успехи?
наконец-то конкретика пошла
можно ли предугадать генерацию от 0-999999 пользуясь вашим методом?
Под конец даже жутко стало. Спасибо большое. Это очень полезная информация
@user-bk8wg7hk2b
4 жыл бұрын
от чего?))
@dt7472
4 жыл бұрын
Артём Загурский от того на сколько функция rand предсказуема.
здравствуйте, меня очень заинтересовала ваша тема можно ли связаться как то с вами?
Вспомнил как несколько лет назад в одной онлайн игре точно так же предсказывал значения рулетки. Серверов в этой игре было много, они программировались на pawn. В этом языке встроенный rand() использовал 32-битный сид и инициализировался текущим временем на сервере. Первой моей идеей было написать на pawn программку, которая бы искала сид сервера, исходя из приблизительного времени его запуска (учитывая таймзону) и набора чисел, выпавших в рулетке; но эта идея была отброшена после того, как поигравшись с rand() я обнаружил, что минут за 6 непрерывной генерации случайных значений, с немалой вероятностью сид повторялся! На следующий день я уже работал с самой реализацией функции pawn_rand() на C. Случайные числа использовались не только в казино, в процессе кручения рулетки rand() вызывался где-то еще, поэтому я написал эффективный алгоритм нахождения сида сервера с учетом "пропусков", через пару дней написал на C++ плагин для игры который сам крутил рулетку, вычислял сид, синхронизировал сид с сервером. Так я за пару минут мог вынести из казино максимальное кол-во денег которое можно было, и быстро потерял интерес к игре Вот тот самый ГПСЧ из pawn github.com/compuphase/pawn/blob/master/amx/amxcore.c#L431 Судя по комментарию выше функции, там как раз используется мультипликативный конгруэнтный метод Его особенность в том, что каким-то образом сид "зацикливается". Независимо от значения которым он был инициализирован, он начинает выдавать одни и те же значения через определенное время
@Super_uzer
4 жыл бұрын
Здравствуйте товарищ коллега-скриптер
@Egor-yr4qz
4 жыл бұрын
"и быстро потерял интерес к игре" >3
@user-vn5vp2iv1o
4 жыл бұрын
Друг, а можешь написать подробно об этом в телегу? сам пытаюсь понять действия казино на pawno, но что-то успехом не увенчалось. напиши пж в телегу @tomas_liven
@Pe4eHbka911
3 жыл бұрын
Не самп ли это часом? И если не затруднит расскажите поподбробнее в телеграм @Okon4ik
@RickBrozz
2 жыл бұрын
Привествую, файлы не завалились еще?)
Здравствуйте я хотел спросить, я не программист ,вы могли бы подсказать как угадать следующую цифру путем если на бумаге с ручкой умножение или деление и все такое, зная 7 предыдущих цифр, как это сделать подскажите пожалуйста, заранее спасибо
Привет, я хотел попробовать запустить в С++ то, что ты написал, но у меня выдает ошибку. Можно ли где-то найти этот метод в текстовом варианте чтобы вставить и попробовать? Заранее благодарю за ответ)
Извиняюсь что не по теме видео пишу, но в своем видео, где вы рассказывали об оценках своего диплома, вы сказали что фронтендером можно стать за несколько месяцев курсов, а инженером только после университета. Поэтому у меня создалось впечатление что вы перепутали такие понятия как фронтендер и верстак. Ибо сейчас охват работа выполняемы на фронтендер гораздо шире чем бональное формошлепство, взять к примеру работу с 3d графикой и webgl. Для некоторых задач приходится вспоминать курсы векторной алгебры и матанализа.
Здравствуйте. Не могли бы вы подсказать, как определить, сколько чисел нужно сгенерировать, чтобы точно угадывать все последующие числа? Я имею в виду, из каких соотношений было получено, что, зная 7 чисел, мы точно можем определять все последующие числа в данном примере?
@kosinoff-vw1hm
2 жыл бұрын
так чтобы (количество чисел^сколько может быть значений)>= всего значений в массиве
Здравствуйте, я не программист, чисто любительски.. Вы могли бы по ряду реально (на мой взгляд) рандомных цифр (0-9) в 10 000 знаков, к примеру, найти закономерность? Если да (или можно попробовать) - как с Вами связаться через почту? С уважением, Денис.
Продолжай и без лайков интересно
Для рулетки связь с количеством и суммой выигрышей совсем не обязательна, чтобы помешать выиграть игроку (как считают многие). Для генерации псевдослучайных чисел можно взять ГПСЧ представленный в видео, затем добавить влияние абсолютно любых событий на seet. Например, учитывать время нажатия игроком кнопки Spin, время входа в рулетку, время прошедшее с момента входа, время между ходами, среднее время между ходами, количество посещений казино игроком за всё время игры, среднее время между посещениями, его персональные данные, имя компьютера, название и версию ОС, с которой он зашел, IP. И так до бесконечности. И таким способом, рулетку невозможно будет предугадать. Заметьте, я ни слова не говорил об учёте депозита игрока и его успешности, количестве выигрышей и их размере, это совсем необязательно для защиты от взлома рулетки.
Привет! Очень нужен код этой программы, подскажите пожалуйста, где можно взять?
Так как же выиграть в казино ?
Если я правильно понял работу данного алгоритма, в случае если 3 числа совпали, а 4-ое число нет, алгоритм продолжить сравнивать не возвращаясь на 3 позиции назад. Это упрощение для простоты понимания или доказано что можно действовать данным образом, или я чего-то не понимаю?
@S0ERDEVS
4 жыл бұрын
Алгоритм ищет место где совпадает все 7 цифр.
@redwolf1652
4 жыл бұрын
@@S0ERDEVSВопрос подразумевает следующее: Если нашлось совпадение 3 чисел (места в массиве например i+101, i+102, i+103 - это те числа которые совпали) а 4-ое (i+104) не совпало. Следующая позиция начала поиска будет i+102 или i+104 или i+105? Ответ знаю, но пусть отвечает мастер :)
@user-bm7vt3np5m
4 жыл бұрын
Анзар Щ.,вы правы, алгоритм пройдёт мимо. Например в ряде 1, 4, 1, 4, 1, 7, 18, ... ищем ряд 1, 4, 1, 7, 18, ... Даже двух повторений достаточно чтобы не найти, например в ряде 1, 1, 1, 23, 12, 2, 5 ищем 1, 1, 23, 12, 2, 5 Приведённый в видео алгоритм не найдёт ряд.
@S0ERDEVS
4 жыл бұрын
Блин, вчера не понял вопрос. А он действительно очень хороший.На самом деле Вы правильно сказали, что нужно возвращаться, либо доказать, что такой вариант невозможен. Ну либо взять больше начальных цифр и выбрать из них "срединку", чтобы быть уверенным, что в первоначальной последовательности нет коллизии.
@user-ww6eu9zq9v
4 жыл бұрын
@@S0ERDEVS Ну это КМП какой-то
Перед получением рандом числа надо сменить сид и это метод уже не работает
Кто может дать весь код пожалуйста?)
Здравствуйте,есть игра одна а вней есть так сказать казино,в этом казино есть игра орёл и решка,возможно ли найти комбинацию выподания в таком случае?
@sany_kozarev
Жыл бұрын
И как это сделать
03:35 - а все таки, как это посчитать? Edit: Вот нашел что-то, кажется, подходящее: books.google.ru/books?id=mmrdCgAAQBAJ&pg=PA39#v=onepage&q&f=false страница 39, пример 2.6 но в нашем случае то мы размер изначального вот этого огромного массива (sample space) не знаем. Мы вообще об этом массиве ничего не знаем, кроме того что вот этот, предположим, subset из 7 значений в нем точно *(?)* совпадает [n, n, n, ... n, { *23* , *35* , *0* , *7* , *35* , *19* , *10* } , n, etc...] Значит, надо найти, какова вероятность того что второго такого совпадения нет. И если все так, то формула из книги *[1 - P(n)]* вполне подходит, но вот "sample space" млин 😐. Короче я словил "Nerd Sniping". S0ER помоги выбраться :) Edit 2: Окок. Посыпаю голову пеплом. Не сразу дошло что было первое видео по теме. Ну пускай, будем считать, что это число 2147483646. Но Wolfram Alpha эту формулу с такими значениями, для n = 7, считать отказывается 😁 Edit 3: Ну или я затупил. А мне кажется что я затупил
@HIDEND
3 жыл бұрын
Вы случайно не нашли ответ на этот вопрос?) Меня просто тоже очень интересует, как понять, при каком количестве сгенерированных значений однозначно определена текущая позиция рандома
такой годный контент, но так все сложно, я еще массивы не выучила (
Ну при известном сиде (и методе) понятно. Было бы интереснее это же, но с угадыванием, хотя бы, сида
@S0ERDEVS
4 жыл бұрын
Сид неизвестен, мы его как раз и находим. В реальности алгоритмов для стандартного ренда несколько, константы тоже могут быть разные. Но их все равно не так много. В реальности, конечно намного сложнее повторить подобное, сокрытие информации об алгоритме - это дополнительная степень защиты.
@sergbo3114
4 жыл бұрын
@@S0ERDEVS А что если брать новый сид(от времени) при каждом выборе нового числа? Ведь точно нельзя сказать когда вы нажмете клавишу)
@sergbo3114
4 жыл бұрын
@@exploserable Ичь какой быстрый. Ты забыл про условия сказать. Во-первых такое возможно только если это происходит на одной и той же системе, а если так, то тогда уже еще быстрее считать результат из памяти))) Если же системы разные, каким образом будешь синхронизироваться? Во-вторых это в зависимости от того что ты за время возьмешь, если что-то подобное к GetTickCount в WINAPI, то удачи в перехвате, смещение по тактам рассчитать не получится в многозадачной среде.
@LionKing-qp1lk
4 жыл бұрын
@@sergbo3114 Есть такие вещи: гпсч и гсч. Не надо путать и пытаться заменить одно другим. В видео показано что первое в качестве второго не работает. Надо дополнить про наоборот. Если вы сделаете гсч хоть от времени, хоть от космического излучения - то это будет один из многих гсч, но последовательность чисел вы второй раз не воспроизведете. Суть сида в повторяемости результата.
@sergbo3114
4 жыл бұрын
@@LionKing-qp1lkВы правы гпсч и гсч разные вещи никто с этим не спорить и никто их не путает. Тут целью было банальное "а что если"))
А где такое накодить самому можно, интересно попробовать самостоятельно такое, глядишь казино в гта взломаю, хахах) думаю random в pawno такой же примитивный )
@ort
3 жыл бұрын
А что его там ломать? Все работает.
Можно ли сгенерировать тот же биткоин адрес сместив время назад?
@vxctxrrxtxnbxrg2146
4 жыл бұрын
можно сгенерировать не смещая. сиди себе - перебирай, пару триллионов лет
@iEfimoff
4 жыл бұрын
@@vxctxrrxtxnbxrg2146 если знаешь что генератор случайных чисел привязан к времени
Побежал в онлайн казино
а есть контр мера кроме сокрытия исходного кода генератора?
@user-jl8qr3qc6z
4 жыл бұрын
@@exploserable да но тогда этот генератор нельзя будет использовать в криптографии, речь шла о генераторе последовательность которого можно восстановить по зерну
@user-lo5sh4ss6o
4 ай бұрын
есть.
А почему нам не важен сид и числа угадываются с разными сидами?
@karington1168
4 жыл бұрын
Сид не меняет массив. Сид это просто сдвиг по массиву
@S0ERDEVS
4 жыл бұрын
Потому что все числа находятся в кольце и стоят на одном и том же месте, сид лишь определяет с какого места этого кольца мы начинаем движение. Но при этом ни сами числа ни их порядок не меняется. Можно себе представь поезд у которого последний вагон зацеплен по кругу на первый, на каждом вагоне нарисовано число. Так вот сид определяет в какой вагон сесть, а дальше мы идем по одному и тому же кругу.
@NaN-se8ye
4 жыл бұрын
@@S0ERDEVS Понял, спасибо.
@user-vu1gs8kg2j
4 жыл бұрын
@@S0ERDEVS Если в него сесть то так и будешь статикой. Нужно иметь опору вне состава и тогда вроде сростаеться.
Ну ты колдун конечно!
где ты пишешь код?? если это блокнот то какой ?? пожалуйста !!!!
@yonyonson6986
6 ай бұрын
Это же Vi , там же видно
в какой программе написал код и запустил?
@dmitriysokolov514
4 жыл бұрын
Dumitru Iordachi в блокноте :)
@dumitruiordachi
4 жыл бұрын
@@dmitriysokolov514 xD
а если за одну итерерацию генерить суму 4х цифр до 9?
@S0ERDEVS
4 жыл бұрын
можно нарушить нормальное распределение и какие-то числа станут выпадать чаще других. Тут навскидку я не скажу.
@penatoliy
4 жыл бұрын
@@S0ERDEVS Вы наверное имели в виду равномерное распределение, а не нормальное)
@S0ERDEVS
4 жыл бұрын
Да, имел в виду равномерное )
@penatoliy
4 жыл бұрын
Не надо выдумывать велосипеды, если не способны оценить их качества, над этими вопросами бьются десятки первоклассных специалистов. Поищите верифицированные криптографические генераторы псевдослучайных чисел. А по хорошему нужно искать надёжный источник энтропии. Аппаратные генераторы коих очень много. Начиная от бомжеподелок из rtl-sdr (это "безмозглый" USB радиоприёмник) заканчивая специализированными решениями.
Ну так мы же можем это взломать, только если знаем значение "a" и "m". Тогда асимптотика будет что-то вроде O(m * SIZE) (за пару секунд если "m" как на видео). Как бы мы это взломали если не знали бы "a" и "m"? Все равно важный рандом должен быть только на сервере, потому что если делать его на стороне клиента, то мы можем тот же seed реверснуть и без перебора взломать.
@ffelicius
4 жыл бұрын
В том и смысл, что нельзя использовать конгруэнтный метод, т.к. подходящих для него значений для хорошей статистики - всего лишь несколько и они давно известны. Есть возможность попробовать каждый из них. Если в каком-то серьезном проекте не дай боже использовался rand на конгруэнтном методе, а злоумышленнику прям очень-очень надо, то он все эти варианты a и m переберет и взломает алгоритм. Где найти заранее известные значения рассказывалось в предыдущем ролике.
@user-jw6rx3yd5u
4 жыл бұрын
@@ffelicius если злоумышленнику будет неизвестно кроме сида еще a и m, и он решит их перебирать, это займет очень много времени. Особенно если мы увеличим диапазон этих штук. Например сделаем m = не 7FFFFFFF, а больше. Даже сейчас перебор работает несколько секунд, а если учесть, что мы не знаем a и m, он будет работать ГОРАЗДО дольше.
@ffelicius
4 жыл бұрын
@@user-jw6rx3yd5u еще раз, комбинаций a и m, которые используются в конгруэнтных методах мало - порядка десяти штук. Не так много. Для злоумышленника несколько часов, потраченных на взлом - не проблема, если результат того стоит.
@user-jw6rx3yd5u
4 жыл бұрын
@@ffelicius а, я понял. Просто не смотрел прошлое видео. Но все-таки мы можем пожертвовать длиной последовательности неповторяющихся вариантов, дабы не брать константы из базы и, допустим, длина последовательности будет в пару раз меньше, зато мы сами будем генерировать константы. Так?
@ffelicius
4 жыл бұрын
@@user-jw6rx3yd5u проблема в том, что с математической точки зрения подобрать хорошие константы - задача нетривиальная вот совсем. Длина последовательности уменьшится далеко не в пару раз. Последовательности будут ну очень короткими. Слишком. Длина последовательности будет всего в пару десятков, если повезет. Именно поэтому специальные умные люди - математики их подбирают. Именно поэтому база этих чисел и существует, потому что ты сам такие константы фиг сгенерируешь.
а много ли рулеток, которые используют этот метод?
@S0ERDEVS
4 жыл бұрын
думаю, что ни одной. это выдуманный пример
@fish9370
4 жыл бұрын
В настоящих рулетках значения задаются оператором, чтобы цифры выпали для нужного билета. Живи теперь с этим )
Нууу... самый простой воркараунд - это произведение двух случайных чисел, умноженное на 2, просто, чтоб получить корректное мат ожидание нового числа. Такая штука увеличивает число перебора до N^2/2-N, или около того. То есть, даже используя стандартный ранд можно наращивать сложность перебора очень дешево. Где я не прав?
@S0ERDEVS
4 жыл бұрын
Отчасти да, но на самом деле нам нужно не 100% вероятность угадывания, любое положительное мат. ожидание в рулетке нас устроит и раззорит казино.
@sirensfais6370
Жыл бұрын
А реально дилетанту, предугадать какие числа выпадут в обычном генераторе чисел, в которых проводят розыгрыши, числа от 1 до 81?)
Так в казино другие Random'ы используются которые хрень предскажешь
@S0ERDEVS
4 жыл бұрын
Скорее там даже не рандомы используются, а алгоритмы по анализу ставок и уровню доход/убыток. Было бы глупо делать "честный" рандом.
@mihailmatkovskij9350
4 жыл бұрын
@@S0ERDEVS Рулетка изначально рассчитана на выигрыш казино. А если угадывать числа можно таким простым методом, то, конечно, разработчики рулеток позаботились о более сложных алгоритмах генерации, нежели линейный конгруэнтный метод. Еще, я где-то читал, что генератор настоящих случайных чисел можно сделать из сигнала шумящего радиоэлектронного компонента (диода, если мне не изменяет память). Но не знаю, используют ли подобные методы на серверах либо на PC.
@user-yh7zc9ke4s
4 жыл бұрын
@@S0ERDEVS ничего глупого, прибыль идет с комиссии на вывод
@philkulibin2602
4 жыл бұрын
@@mihailmatkovskij9350 используют ли на PC? Да. Детектор - мышка, генератор шума - рука пользователя когда он изображает работу за компьютером(разложить пасьянс самое то что нужно) . На сервер можно поставить детекторами и счётчики Гейгера. Тайм стемпы сообщений и о движении мышки и о прилёте гамма частицы будут содержать достаточно много случайных бит среди младших. Шум например одного диода на прямую вроде никто ни где не использует. Это же нужно избавляться от разных типов эдс наводок. Сетевая наводка периодическая-50 Гц. От самого компьютера куча импульсных. Проще использовать как минимум два и на детектирование шума отправлять их разность сигналов а сумму сигналов использовать для прогнозирования качества шума.
joycasino нервно курит, ща дудос пойдет...
-Это был его не достаток... А хде достаток? Ну должно же быть преимущество? P.S. может быть это простота реализации? Б...ь опять вопрос.
@v01d_yt
4 жыл бұрын
Статистика. Нет слишком "кучных" мест.
@S0ERDEVS
4 жыл бұрын
Скорость. Крипто случайные генераторы в разы медленнее.
На видео код на черном фоне это просто вырви глаз. Можешь для видео писать код на белом фоне?
@user-jq9ne2oy9p
4 жыл бұрын
Скажи ещё что у тебя не во всех редакторах темная тема стоит
@user-mw2cd3lu8n
4 жыл бұрын
@@user-jq9ne2oy9p красная тема и розовый шрифт
Давно соер стал популярным? Смотрел его год где-то было 10 к, появилась рубрика разговоры у камина. А щас важный стал. Что я пропустил?
Не учтено, что повторы в реальности выкидывались бы. Если бы кто-то пытался делать 6 из 36 на LCG.
Никогда не думал, что псевдорандомные числа настолько "Псевдо"
Rand - частный случай srand(seed), но с фиксированным сидом? Сомнений нет, всё в этом мире предопределенно.
@user-ww6eu9zq9v
4 жыл бұрын
srand просто сид для rand ставит