Elib2Ebook

Elib2Ebook 

Старею

162subscribers

4posts

goals1
$421.22 of $1 320 raised
Ну а вдруг?

About

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

Строки. Технологии МТС. Сниффаем трафик мобильных устройств

Без лишних предисловий перейдем к сути. Есть прекрасный ресурс https://stroki.mts.ru/ с коллекцией неплохой литературы. Читать ее можно только через специальное приложение. Возможности прочитать книгу на сайте просто нет (ну или я не нашел). В общем, все как обычно - установи себе на телефон очередную читалку и попробуй  не забыть, где какую книгу ты читаешь.
Чтобы решить эту проблему, нужно задействовать некоторое кол-во специализированных инструментов. Одного браузера здесь не хватит, так как читать через сайт просто невозможно.
Что нам понадобится:
1) Сниффер трафика мобильных устройств, чтобы увидеть, какие запросы отправляет запросы приложение на сервер;
2) Postman, чтобы по быстрому воспроизвести эти запросы и проверить их работоспособность.
Приступим.
Первым делом устанавливаем на компьютер сниффер. Выбор пал на Charles. Настраивал его по инструкции
Запускаем приложение на телефоне и начинаем изучать...
Первым делом откроем какую то книгу и посмотрим, какие запросы отправляются и какие данные получаются.
Запросов приложение отправляет довольно немного и нужный находится довольно быстро:
А сколько необходимо учить программирование, чтобы разобраться как делать ботов в ТГ и т п задачи. Мне самому хотелось бы также, упрощать себе жизнь изучая и преодолевая трудности в этом. Но понятия не имею откуда и как самому начать учиться. Есть ли у вас кое какие советы или свой путь по которому вы пришли к пониманию того, как работают боты, сайты и вообще код.
Помимо этой работы у вас есть основная или это просто хобби ?
Elib2Ebook, а даже так, стаж у вас уже на уровне сеньора. Но вот к примеру если вы бы начали изучать полным новичком новый язык то, как бы вы начали свой путь?

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

Как всегда внезапно, появился неожиданный челлендж.
Один товарищ с очумелыми ручками расковырял свой андроид девайс и обнаружил, что все книги, которые он читает через приложение 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" и т.д.
И удача мне улыбнулась. Я нашел вот это:

Как все продолжилось

Успех, достигнутый на предыдущем этапе, не давал мне покоя и хотелось сделать что то еще. На тот момент я уже имел некоторый опыт в разработке telegram ботов и мне пришла в голову идея сделать бота, который бы по ссылке скачивал книгу из https://author.today/
C# для этого использовать мне не хотелось, поэтому выбор пал на Python, который обладает прекрасной библиотекой aiogram и кучей туториалов в сети.
Сказано! Сделано!
Несколько часов кодинга, покупка VPS, немного докеризации и @author_today_book_bot (ныне покойный) готов. 
Весь функционал до боли прост: кидаешь ссылку - получаешь epub файл с публичным контентом книги. В то время я считал, что прикрутить к боту авторизацию, чтобы бы позволить пользователям скачивать купленные ими книги, как то неправильно, потому бот обладал довольно ограниченным функционалом.
Но как сделать так, чтобы про бота хоть кто то узнал и начал им пользоваться? Что бы сделали вы? В то время я не знал ни про какие книжные чаты. Книжный чат, Цокольный этаж, RPF - все это было мне не знакомо. Все что у меня было - это небольшая программа и энтузиазм. Поэтому я не нашел ничего умнее чем сделать следующее:
Без твоего бота я бы выкинул свою электронку нахер
Уважаемый автор, а авторизацию к freedlit.space прикрутить сможете?
Александр Куркурин, Я не имею никакого отношения к этим ботам. Автор этого бота просто использует мою программу. Сейчас возможность авторизации прикручена к Elib2Ebook. Чтобы эта возможность появилась в боте, пишите его автору

С чего все начилось

Около двух лет назад один человек попросил меня помочь разобраться с тем, как ему скачать нескачиваемую книгу с сайта https://author.today
Фигня, подумал я. Опыт парсинга сайтов, к тому времени, был у меня довольно внушительным. План был примерно таков:
1) Пара/тройка запросов к сайту (а может и к REST API, если повезет)
2) Выдергивание текста из HTML
3) Формирование итогового файла.
Берем в руки сайт, запускаем https://www.telerik.com/fiddler и смотрим что там происходит.
Первые попытки получить контент привели в некоторое замешательство - в ответе от сайта приходят шифрованные данные.
Пример того, как это выглядит, можете посмотреть перейдя по ссылке https://author.today/reader/217578/chapter?id=1931261
Засада...
Но мы же видим текст в браузере, а не абракадабру из непонятных символов! Значит где то есть код, который расшифровывает абракадабру. Вариант здесь только один! JS!
Моему удивлению не было предела - нужный кусок кода нашелся буквально за пару минут. С одной стороны этот факт меня очень обрадовал, а с другой крайне удивил. Код занимает всего пару строчек и элементарно воспроизводится на любом языке программирования, что крайне удивительно для такой площадки, которая, как мне казалось, может позволить себе намного более серьезную защиту. 
А в данный момент появилась защита?🧐
Даниил Шахов, нет
Subscription levels1

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

$1.32 per month
Go up