EN
Elib2Ebook
Elib2Ebook
105 subscribers
goals
283.01 of $ 1 089 money raised
Ну а вдруг?

Как не надо делать защиту файлов или расшифровываем зашифрованное

Как всегда внезапно, появился неожиданный челлендж.
Один товарищ с очумелыми ручками расковырял свой андроид девайс и обнаружил, что все книги, которые он читает через приложение litres.ru хранятся на его устройстве. Прекрасно, казалось бы? Теперь же можно их оттуда скопировать и читать в более привычных для себя читалках. Но не все так просто. Файлы книг зашифрованы. И вот тут в истории появляюсь я. 
Что бы узнать как зашифрована книга, надо получить исходный код которым было выполнено это шифрование. Но как это сделать? Оказывается в случае с android приложениями все довольно просто.
1) Качаем из бескрайнего интернета apk файл приложения litres.ru. Я скачал отсюда https://www.apkmirror.com/apk/litres/read-books-online/read-books-online-3-92-02-gp-release/litres-books-3-92-02-gp-android-apk-download/
2) Декомпилируем при помощи http://www.javadecompilers.com/
3) Если повезет, то получаем вполне себе приемлемого качества исходники (мне повезло)
А дальше начинается самый интересный этап. Необходимо среди примерно 400мб различных файлов найти необходимый кусок кода. Тут уже никаких универсальных советов дать не получится. Я искал полнотекстовым поискам по различным, как мне казалось подходящим словам "decrypt", "decode", "secret" и т.д.
И удача мне улыбнулась. Я нашел вот это:
Здесь представлен код на языке java, который как раз таки занимается расшифровыванием файла с книгой. Из полезного тут:
1) Алгоритм шифрования - AES/CBC/PKCS5Padding
2) И секрет - SECRET_PWD (он замазан)
Имея на руках алгоритм шифрования и секрет, уже не составляет проблем написать дешифратор.
Воспроизводим этот код на любом удобным языке программирования. Мой выбор пал на python. Получилось следующее
Перед запуском надо выполнить pip install pycryptodomex
А теперь мораль истории. Почему же так не надо делать делать шифрование? А ответ довольно прост: для расшифровки АБСОЛЮТНО любой книги, купленной на litres.ru достаточно этих четырех строчек. Все книги зашифрованы абсолютно одинаково, с использованием одного и того же секрета (который как раз таки на скринах замазан). С точки зрения безопасности - это тотальная дыра.
Конечно же идеальной защиты не существует и все можно обойти. Вопрос только в затраченных на этот обход ресурсах. В данном случае затраченные ресурсы минимальны и на выходе получается универсальный алгоритм, для работы которого требуется только зашифрованная книга.

Subscription levels

На поддержку энтузиазма

$ 1,09 per month
Go up