leanu

пикабушник
пол: мужской
поставил 53065 плюсов и 4927 минусов
отредактировал 5 постов
проголосовал за 12 редактирований
19К рейтинг 14 подписчиков 6102 комментария 15 постов 3 в "горячем"
310

Как я "взломал" RAR архив защищенный паролем

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


Но тут прибегли к RAR архивам. Которые до сих пор генерируются и публикуются вручную, что поделать. Но система такая - заранее можно скачать запароленный архив с текстовым файликом выпадений за месяц! и по истечении месяца опять же надо ждать пароль, открыть архив скачанный заранее(чтобы админы не перезалили архив), промотать текстовый файл до нужного времени и сравнить число из файла с выпавшим ранее. Муторно, и никто не проверяет. Сам пароль длинный, и состоит из разных символов, цифр букв - перебрать - не вариант.


Но есть одно НО. Точнее было. Они использовали старенький WinRAR 3.0 без опции шифрования метаданных. Это такая опция которая шифрует не только содержимое файлов, но и сам список файлов, их название, размер, и т.д. и т.п. а самое главное CRC32 оригинального файла. К счастью для чайников, в 5-ой версии винрара, есть защита от дураков, и даже без этой опции - контрольная сумма будет изменена в зависимости от пароля.


А без этой опции, получалось:

Как я "взломал" RAR архив защищенный паролем Текст, WinRar, Игры, Рулетка

список файлов, в данном случае только 1, размер, сжатый размер, имя файла а также Checksum=2EDD73BB. Путем нехитрого перебора хешей с такой длинной и соответственно хешей самого файла(для проверки использовал архивы с уже известным паролем) выяснил что это самый обычный CRC32. Но все еще есть около 130Кб данных, которых никак не получить из контрольной суммы.


Теперь сам файл. Выглядит примерно так:

Как я "взломал" RAR архив защищенный паролем Текст, WinRar, Игры, Рулетка

опять же ничего сложного. Номер "спина" - последовательный - можно нарисовать заранее.

Год-месяц-день время - минута - опять же можно нарисовать заранее.

И выпадения. Их слишком много чтобы перебрать. Но можно отключить жадность и перебрать лишь несколько спинов. А остальные - собирать автоматическим скриптом(на VPS, скрипт на пару строк, кидаешь в cron - и вуаля). Потом грубый перебор всех вариантов, в самом конце месяца. Хочешь 1 спин - 38 вариантов. Хочешь 2 спина - 1444. Мой старенький комп осилил 5 спинов минуты за 3, и уже для некоторых тестовых месяцев выдавал коллизии (т.е. два варианта файлов с разницей лишь в конце последних 5-и строк - но с тем же CRC). Тут еще помог тот факт что CRC считывает файл от начала и до конца по 1 блоку, т.е. можно считать промежуточный CRC до последней известной строки, и потом инициализировать CRC с этим значением для расчета финальной суммы. Которая сравнивается с известным Checksum-ом.  Совпадение - идем срывать куш.


Это в теории. На практике игру выключили на 20 минут(2 спина) и в истории игр эти выпадения не были. То есть надо было перебрать еще 2 строки, которые дают правильную, но на фиг никому не нужную информацию. С этим скрипт тоже справился. Поднял кончено немного игровых денег(которых при усиленной игре я бы может за год заработал - и то не факт), а потом администрация по тихому "пофиксила" баг:

> В конце файла генерируется случайная строка => взлом по контрольной сумме уже невозможен

> Начали шифровать метаданные => саму контрольную сумму даже не узнать

> Перешли на последнюю версию винрара, чтобы нечаянно не забыть поставить галочку(там еще размер ключа AES поменялся, но это несущественно)


P.S. У меня нет идей как возможно взломать RAR 5.x, даже зная большую часть содержимого. Там еще такая фишка есть, что тот же файл, с тем же паролем и алгоритмом на выходе даст разные(при двоичном сравнении) файлы, видимо добавляют шумы которые убираются при дешифровке, или каждый раз генерируется случайный вектор инициализации для генерации ключей например. Но так или иначе - грубый перевод паролей вряд ли поможет.

Показать полностью
4

Марш ЛГБТ в Кишиневе вкратце

Сегодня всякие деятели замутили движуху под названием "Без страха", но из-за тесных отношений с ЛГБТ сообществами возникло и противодействие - ПГМнутые собрали свою акцию, против первых.

Марш ЛГБТ в Кишиневе вкратце Лгбт, Кишинев, Молдова, Натуралы, Семья, Политика, Длиннопост
Марш ЛГБТ в Кишиневе вкратце Лгбт, Кишинев, Молдова, Натуралы, Семья, Политика, Длиннопост

Для марша "Без страха" перекрыли улицу в центре(4 полосы) вместе с дорогами которые пресекаются, при чем со стороны другого конца, т.е. напрямую к маршруту не подойти.

Марш ЛГБТ в Кишиневе вкратце Лгбт, Кишинев, Молдова, Натуралы, Семья, Политика, Длиннопост

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

Марш ЛГБТ в Кишиневе вкратце Лгбт, Кишинев, Молдова, Натуралы, Семья, Политика, Длиннопост

Главная площадь(Площадь Великого Национального Собрания), рядом со зданием правительства, центр, куча детей и их родителей, ролики, батут, поезд, концерт(он левее, где уплотняется народ), футболки "за семью, за детей, за родителей" или как-то в этом духе. Ни одну улицу не перекрыли. Полицейских видел всего 4 - по 2 слева и справа от площади, помогали переходить дорогу(т.к. с одной стороны нет светофора и народу много), хотя и в тенечке были пару ребят в униформе, но видимость работы не создавали.

Конечно же все это организовали с использованием административных ресурсов, но лучше уж так(в прошлые годы марш ЛГБТ проходил в более активных местах, и каждый раз начинался конфликт между ними и их ярыми противниками(самому мне немного параллельно на них, пускай ябутся в жопы, но не в общественных местах, как впрочем и "натурастам" не рекомендуется делать) и полицейские расфасовывали их по автобусам, попадая под удары и ненависть антиЛГБТ.

Показать полностью 3
17

Как удалить не удаляемые программы на андроиде, к

http://pikabu.ru/story/_3767922

Совсем недавно установил whatsapp, вроде по ссылке, вроде из маркета, но на второй день появился usbsecurity - ненужная программа, которая показывала рекламу, и каким то макаром возникала до ввода пин-кода. Ни на какой ебаный сайт не заходил, доступ к интернету перекрыл сразу после установки ватсапа. И из меню приложений эту гадость не удалить - кнопки серые. Есть вариант с рутированием устройства с риском превратить в кирпич. Но можно попробовать быстрый воркараунд:
из меню телефона перейти в "Администраторы устройства"(на 4 андроиде путь примерно Настройки>Аккаунты>Безопасность>Администраторы Устройства) и снять оттуда все подозрительные галочки, вроде usbsecurity, ilocker, какие то китайские хуйни, можно оставить только "Удаленное управление", и потом уже удалить их из списка приложений, кнопки должны активизироваться. Надеюсь кому-нибудь это поможет.
-13

История из уголовного права

К _3564335
В каком то учебнике увидел данную историю, скорее вымышленную, перевожу по памяти:
Одного человека подозревают в убийстве другого человека, и судья приговаривает к смерти через повешение. Когда настал день казни, народ собрался, петлю накинули и уже собирались приводить в исполнение, обвиняемый заметил в толпе человека, в убийстве которого его признали виновным. Палач вернулся к судье с обвиняемым и "умершим" чтобы судья решил как поступить дальше(приговор то получается несправедливый). Судья решил:
Обвиняемого повесить, раз уже начали, не фиг прецеденты делать.
Палача повесить, так как не привел изначальный приговор в исполнение.
Да и живую жертву тоже повесить, так как из-за него пришлось убить двух невиновных людей.
-6

451 градус по Фаренгейту

Вчера наткнулся на пост в горячем, даже оставил комментарий, а сегодня его нет, ни поста, ни пользователя с таким ником... бывает такое что удаляют основательно пост вместе с комментариями и пользователем?
-21

Анекдот

Компания в ресторане. Заказывают разную еду, вроде все вкусно, но вдруг один замечает волос на пирожке и вызывают официанта. Он извиняется, говорит что повар хороший, просто он потерял одну руку, и растягивает тесто на груди, поэтому и волос попался. А знали бы вы как он фаршированный перец готовит...

Мы ищем frontend-разработчика

Мы ищем frontend-разработчика

Привет!)


Мы открываем новую вакансию на позицию frontend-разработчика!

Как и в прошлые разы для backend-разработчиков (раз, два), мы предлагаем небольшую игру, где вам необходимо при помощи знаний JS, CSS и HTML пройти ряд испытаний!


Зачем всё это?

Каждый день на Пикабу заходит 2,5 млн человек, появляется около 2500 постов и 95 000 комментариев. Наша цель – делать самое уютное и удобное сообщество. Мы хотим регулярно радовать пользователей новыми функциями, не задерживать обещанные обновления и вовремя отлавливать баги.


Что надо делать?

Например, реализовывать новые фичи (как эти) и улучшать инструменты для работы внутри Пикабу. Не бояться рутины и командной работы (по чатам!).


Вам необходимо знать современные JS, CSS и HTML, уметь писать быстрый и безопасный код ;) Хотя бы немножко знать о Less, Sass, webpack, gulp, npm, Web APIs, jsDoc, git и др.


Какие у вас условия?

Рыночное вознаграждение по результатам тестового и собеседования, официальное оформление, полный рабочий день, но гибкий график. Если вас не пугает удаленная работа и ваш часовой пояс отличается от московского не больше, чем на 3 часа, тогда вы тоже можете присоединиться к нам!


Ну как, интересно? Тогда пробуйте ваши силы по ссылке :)

Если вы успешно пройдете испытание и оставите достаточно информации о себе (ссылку на резюме, примеры кода, описание ваших знаний), и если наша вакансия ещё не будет закрыта, то мы с вами обязательно свяжемся по email.

Удачи вам! ;)

Показать полностью
Отличная работа, все прочитано!