Элементарный разбор mp3 flash player'ов

    Раздел 1. Ознакомление с проблемой

    Иногда возникает необходимость ознакомить человека со звуковым материалом на своей домашней странице, однако хотелось бы не оставлять такой возможности как скачивание. Некоторые люди уверенно думают, что если нет кнопки «скачать», то закачка невозможна. Это совсем не так.
    Хотелось бы показать как идет элементарный разбор mp3 flash плеера...

    1.1 Плееры с прямой ссылкой на *.mp3 файл/ы

    Есть много разных online плееров, но все они по большей части проигрывают только одну песню и при этом содержат ссылку на нее в открытом виде.
    Embedded MP3 Audio Player
    Embedded MP3 Audio Player
    http://www.macloo.com/examples/audio_player/

    Код плеера:
    <script language="JavaScript" src="http://www.fakedomain.com/myname/audio/audio-player.js">
    </script>
    <object type="application/x-shockwave-flash" data="http://www.fakedomain.com/myname/audio/player.swf" id="audioplayer1" height="24" width="290">
    <param name="movie" value="http://www.fakedomain.com/myname/audio/player.swf">
    <param name="FlashVars" value="playerID=audioplayer1&soundFile=http://www.fakedomain.com/myname/audio/music.mp3>
    <param name="quality" value="high">
    <param name="menu" value="false">
    <param name="wmode" value="transparent">
    </object>
    

    В коде плеера довольно просто заметить ссылку на файл: www.fakedomain.com/myname/audio/music.mp3

    1.2 Плееры с ссылкой на файл плэйлиста

    Портал poqbum.com предоставляет возможность создавать mp3 flash player для вашего сайта через веб-интерфейс. После прохождения регистрации вам предоставляется возможность выбрать дизайн плеера, на втором шаге вы составляете трэклист, в который прописываете ссылки на .mp3 файлы и их название. В результате мы получаем код нашего плеера, который можно с легкостью вставить на свою страницу.

    Сам плеер вот:
    mp3player.poqbum.com
    mp3player.poqbum.com

    А код моего плеера выглядит так:
    <embed src="http://mp3player.poqbum.com/swf/08cc0e4f7f4a6ml8h99hefbeeci71ci6/mp3play..." menu="false" quality="high" width="280" height="320" name="poqbum-dot-com" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="playlist=http%3A%2F%2Fmp3player.poqbum.com%2Fswf%2F08cc0e4f7f4a6ml8h99hefbeeci71ci6%2Fmp3player.xml" wmode="transparent"></embed>
    

    Посмотрев в код мы не видим явных ссылок на файлы формата *.mp3, но это не значит, что нет никаких способов их выковырять.
    Вперед!

    Раздел 2. Вскрытие ссылок

    На скорую руку нашлось 2 способа.

    2.1 Способ #1

    Плеер с портала mp3player.poqbum.com имеет такой вид, что изначально кажется, что узнать местонахождение исходных материалов невозможно, но это лишь для неопытных глаз.

    Приглядевшись в код плеера можно заметить параметр:
    flashvars="playlist=http%3A%2F%2Fmp3player.poqbum.com%2Fswf%2Fa9ba8fe06dlligy5ic84023ec4fb576f%2Fmp3player.xml"

    Давайте розберемся:
    flashvars — flash — это сам флэш,vars — это переменная/ые. Если в сумме, то это какая/ие-то переменная/ые flash'а, а точнее нашего плеера.
    Идем дальше…

    Разбираем строку:
    "playlist=http%3A%2F%2Fmp3player.poqbum.com%2Fswf%2Fa9ba8fe06dlligy5ic84023ec4fb576f%2Fmp3player.xml"

    playlist — список песен
    http%3A%2F%2Fmp3player.poqbum.com%2Fswf%2Fa9ba8fe06dlligy5ic84023ec4fb576f%2Fmp3player.xml — вся эта штука интуитивно похожа на ссылку, только если мы вставим ее в адресную строку браузера, то он будет ругаться на нас.
    Что же делать?
    Глядим…
    %3A — это символ ":"
    %2F — это символ "/"

    Заменяем и таким образом получаем ссылку нормального вида:
    http://player.myspace-player.com/swf/01d6d973def57aoa78eg9flch95fmfd5/mp3player.xml

    Переходим по ней и видим код файла mp3player.xml:
    <player showDisplay="yes" showPlaylist="yes" autoStart="no">
    <song path="http://www.lavrinovich.org.ua/ra/fedya_-_nazakate.mp3" title="fedya - Na zakate"/>
    <song path="http://www.lavrinovich.org.ua/ra/fedya_-_romantika.mp3" title="fedya - Romantic"/>
    <song path="http://www.lavrinovich.org.ua/ra/fedya_-_list.mp3" title="fedya - List (feat. Liya)"/>
    <song path="http://www.lavrinovich.org.ua/ra/fedya_-_nebo.mp3" title="fedya - Nebo (feat. Liya)"/>
    <song path="http://www.lavrinovich.org.ua/ra/fedya_-_lubovzla.mp3" title="fedya - Lubov zla"/>
    <song path="http://www.lavrinovich.org.ua/ra/fedya_-_gorodmoi.mp3" title="fedya - Gorod moy (feat. Lex_P)"/>
    <song path="http://www.lavrinovich.org.ua/ra/fedya_-_letniyvecher_skit.mp3" title="fedya - Letniy vecher (skit)"/>
    <song path="http://www.lavrinovich.org.ua/ra/fedya_-_letniyvecher.mp3" title="fedya - Letniy vecher (feat. Liya)"/>
    <song path="http://www.lavrinovich.org.ua/ra/fedya_-_misleypojar.mp3" title="fedya - Misley pojar (feat. Vova LC)"/>
    <song path="http://www.lavrinovich.org.ua/ra/fedya_-_nebopoteryalokraski.mp3" title="fedya - Nebo poteryalo kraski"/>
    <song path="http://www.lavrinovich.org.ua/ra/fedya_-_neznakomke.mp3" title="fedya - Prekrasnoy neznakomke"/>
    <song path="http://www.lavrinovich.org.ua/ra/fedya_-_romantika2.mp3" title="fedya - Gde ti, Romantika?"/>
    <song path="http://www.lavrinovich.org.ua/ra/fedya_-_namagaemos.mp3" title="fedya - Namagaemos (ua ver)"/>
    <song path="http://mp3player.poqbum.com/poqbum.mp3" title="Player Generated By: POQbum.com"/>
    </player>
    

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

    2.2 Способ #2

    Заходим на страницу с плеером. Кликаем по плееру, чтобы началось воспроизведение.
    image

    После прогрузки первой звуковой дорожки сведения о ней попадают в кэш. На примере браузера Opera можно просмотреть кэш у увидеть запись об источнике.
    image
    Вот и все…

    Раздел 3. Развеивание мифа о безопасности Uppod

    Услышал о таком чуде как Uppod и вот такие возможности плеера меня заинтересовали:
    Основные возможности:
    * поддержка плейлистов различных конфигураций;
    * возможность скрывать прямые ссылки на файлы с помощью кодирования;
    * мультиязычный интерфейс;
    * возможность выбирать состав панели управления
    * (более 20 кнопок и индикаторов можно установить в любой последовательности);
    * пользовательские подсказки…

    После прохождения регистрации и несложных процедур можем получить заветный код своего плеера:
    uppod

    Мой выглядит так:
    <object id="audioplayer324" type="application/x-shockwave-flash" data="/flashmp3player/pl/uppod.swf" width="300" height="90">
    <param name="allowScriptAccess" value="always" />
    <param name="wmode" value="transparent" />
    <param name="movie" value="/flashmp3player/pl/uppod.swf" />
    <param name="flashvars" value="uid=audioplayer324&st=41AEEAG89Gv5W7xOoBiuYn6dQyIFW5XHms5fp2UhTKd0JAswtTYsNXQW5r4&pl=82AEEAGh89v5c1JaoiuYn6ZdQIFWscYsMX6sNQXHm5XHm5fp2UhTzd0JAswtYsNXQW5r5&m=audio" />
    </object>
    

    После того как я окинул его своим взглядом, мне показалось все культурным и на совесть сделанным, но скептик внутри меня решил проверить.
    Создал файл index.html, как и полагается уместив все необходимое внутрь:
    <html>
    <head>
    <title>pl</title>
    </head>
    <body>
    <object id="audioplayer324" type="application/x-shockwave-flash" data="/flashmp3player/pl/uppod.swf" width="300" height="90">
    <param name="allowScriptAccess" value="always" />
    <param name="wmode" value="transparent" />
    <param name="movie" value="/flashmp3player/pl/uppod.swf" />
    <param name="flashvars" value="uid=audioplayer324&st=41AEEAG89Gv5W7xOoBiuYn6dQyIFW5XHms5fp2UhTKd0JAswtTYsNXQW5r4&pl=82AEEAGh89v5c1JaoiuYn6ZdQIFWscYsMX6sNQXHm5XHm5fp2UhTzd0JAswtYsNXQW5r5&m=audio" />
    </object>
    </html>
    

    Залил его на хостинг, там он попросил в указанные ранее каталоги поместить файл стиля и плэйлист.
    Сделал как просили. Получилося следующий плеер
    Ну, что же? Раз уж в коде, как я убедился, ничего внятного не видно, то проверим кэш!
    Установил чистую Opera 11.10. Зашел к своему плееру.
    my player

    И проверил кэш:
    opera:cache
    И то, что я увидел, крайне меня разочаровало. Ссылки то попрятали, но лазейки как ни как есть, а от того безопасность не стала выше.

    Выводы:

    Мы посмотрели защиту mp3 flash player'ов, точнее ее отсутствие.
    Для уверенного скрытия файлов плеер должен быть написан специально под ваши требования, а именно: файлы должны быть зашифрованы и находится в базе данных, к которой плеер по ключу может подключиться, а затем расшифровывая на лету воспроизводить.
    Все представленные веб-сервисы для легкого создания mp3 flash player'ов вскрываются.
    Будьте бдительны и не будьте наивны.
    Если, кто-то найдет что-нибудь интересное по данной теме, то буду рад взглянуть.
    Примечание:
    В топике рассмотрены найденные на скорую руку самые типичные варианты. Их масса, но все они уж очень похожи.

    Благодарности:

    • Композитору Погорелову Алексею Викторовичу
    • Бабич Богдану Александровичу
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 40

      +2
      А что вы собственно хотели? Логично что весь проигрываемый контент падает в кэш браузеров. Просто далеко не каждый юзер знает как его оттуда выдрать, да и в чем смысл? Зайдите на сложноплеер и хоть закачайтесь своей любимой музыкой.
        +2
        Речь идет об авторской музыке, есть достаточное кол-во композиторов, которые не хотели бы, чтобы их песни скачивали, но они все же берут и пользуются этими типичными плеерами, по причине незнания, они доверяют, тому, что говорят: «Ссылки шифруют — это надежно!».
          +1
          Конечно и 95% их слушателей вряд ли вообще представляют такие понятия как кэш браузера, html-код и пр. А в остальном, цель сокрытия ссылок — прежде всего спрятать mp3 от поисковиков.

          Поверьте мне, большинство разработчиков и так знает об этом. Цель этих слоганов и громких слов про шифрование — убедить заказчиков, что все в порядке, их контент защищен. Но мы то знаем правду)
            0
            У меня был случай, когда знакомый композитор Погорелов Алексей заверял, что плеер на его сайте невозможно разобрать — ссылок нет. Я стало быть и себе решил таким плеером попользоваться. Нашел я те все ссылки, а ведь он был так уверен. Материал, который он выкладывал в плеер стоил по 300$ за дэмку. Думаю, что есть люди у которых звуковой материал весит достаточную сумму, которая в сотни раз отличается от карманной мелочи. Именно для этих людей возможно будет полезной данная статья.
            А вообще, это интересный вопрос с точки зрения защиты авторских прав.
              0
              Да, только в такой ситуации это уже вряд ли будут mp3-ки. Это будут wav или flac файлы, спрятанные за паролями, авторизацией, системой оплаты. А в mp3 плеере будет размещено короткое привью максимум.
                0
                Из 15 секунд чистого вступления песни (без слов и битов), в итоге можно сделать два абсолютно непохожих трэка, а особенно в индустрии клубной музыки и рэпа — это я про короткое превью в mp3.
                Пароли, авторизация и система оплаты — это для тех, кто торгует массово и чаще всего это уровень сэмплов, как мне кажется.
                Я выше говорил об авторской музыке, уникальной, написанной под одного покупателя, который бы пришел прослушал, купил, вместе с авторским правом и больше этот лот уже не должен светиться нигде, а если есть такая предпрослушка, как показано в топике, то там и платить то я не знаю за что, расковырял и скачал. Зачем же я платить буду? )))
              • НЛО прилетело и опубликовало эту надпись здесь
                  –1
                  Тут я не поспорю! Если руки не кривые и на ухо слон не наступал, то все, что однажды услышано можно воспроизвести перенабрав мелодию.
                  Но! Как показывает мой опыт в создании музыки, то очень часто мелодию перенабрать можно, а вот подобрать весь тот набор эффектов и плагинов, которыми пользовались в оригинале и которые, по своей сути дают ту неповторимую атмосферу мелодии, подобрать нереально, если проект сложный. Бывали случаи, когда терялись исходники проектов, и тогда по mp3 мелодию перенабирали, а вот точь в точь уже не вышло. )
                  • НЛО прилетело и опубликовало эту надпись здесь
                      –1
                      А! Через рекордеры. С небольшой (а в случае дешевенькой звуковухи с большой) потерей качества, как вариант возможно. Когда то и сам пользовался. )
                0
                Всего этого, конечно, не нужно знать обычному пользователю. Само именование «пользователь» уже говорит об уровне понимания веб-технологий — пришел, попользовался, ушел.
                Разработчики знают, обманывают и зарабатывают.
                А так как я не зарабатываю и знаю правду, то могу ею, безвозмездно, поделиться. :)
            • НЛО прилетело и опубликовало эту надпись здесь
                0
                Потому что Сложноплеер делался в противовес Простоплееру, ставшему платным и потерявшему доверие пользователей.
                • НЛО прилетело и опубликовало эту надпись здесь
                    0
                    Я то тут при чем? Скажу так, создатели Сложноплеера сделали его именно под влиянием негативных эмоций от ставшего платным простоплеера.
                    Кроме того, в обзоре своем они выкладывают только ссылки на бесплатные ресурсы.
                    • НЛО прилетело и опубликовало эту надпись здесь
                        0
                        И кому он теперь нужен со своими бесплатными 15-ю треками в день?
                          0
                          Слушать можно и в контакте сколько угодно, если кто-то не понял, то разговор идет о плеерах, которые встраиваются в сайты (пусть простоплеер удовлетворяет этому условию), и которые в своём функционале не имеют возможности скачивания материала, т.е. не имеют кнопки «скачать». Вот о чем топик!
                        0
                        Вы сами не считаете что хозяева простоплеера нас всех обманули? Они долго пиарили себя на Хабре, на Лепрозории и еще в куче мест, у них неоднократно проскакивали обещания быть бесплатными, они призывали нас всех заливать им музыку, вырабатывали у нас привычку пользоваться их сервисом. Дождавшись результата, бешеной посещаемости, они резко ограничили бесплатный функционал, плюнув в лицо большинству своих фанатов.
                        • НЛО прилетело и опубликовало эту надпись здесь
                            0
                            Думаю, что этот пост не в эту тему.
                              0
                              Прошу прощения.
                            +1
                            Если речь идет о простоплеере, то в чем, скажите мне пожалуйста, его отличие?
                            Вот ловим (пока я wireshark не закрыл показую на нем):
                            wireshark
                            Вот собрали ссылку и качаем по ней:
                            prostopleer.com/download/mcjv18mw0a3f19dcd0e22bcddf7cce0b5732e7f64
                            Тем более, что там есть кнопка «скачать»!!!
                            • НЛО прилетело и опубликовало эту надпись здесь
                                0
                                >>Иногда возникает необходимость ознакомить человека со звуковым материалом на своей домашней странице, однако хотелось бы не оставлять такой возможности как скачивание. Некоторые люди уверенно думают, что если нет кнопки «скачать», то закачка невозможна. Это совсем не так.
                                Это из топика
                                >>Речь идет об авторской музыке, есть достаточное кол-во композиторов, которые не хотели бы, чтобы их песни скачивали, но они все же берут и пользуются этими типичными плеерами, по причине незнания, они доверяют, тому, что говорят: «Ссылки шифруют — это надежно!».
                                Второй коммент
                      +8
                      Такую статью надо было писать вконтакте своим друзьям.
                        –1
                        Возможно, но друзья в контакте далеки от создания музыки и вопросов разбора кода, тут по крайней мере можно услышать аргументированную критику, за что и спасибо.
                        +4
                        Не совсем понятно, причём тут слово взлом. Ссылки на файлы чаще всего лежат в открытом виде. Нужно просто знать куда смотреть.
                          –1
                          Я и показал куда смотреть, возможно, каждый, кто тем или иным способом прошел на хабр это и знает, но не каждый знает из тех, кто читает хабр.
                          Я столкнулся с проблемой, зглянул на различные варианты, опробовал их, описал и сделал вывод, в надежде, что кому-то будет полезно.
                            0
                            Исправил название
                            0
                            есть удобная тулза — URLSnooper, снифает локальный трафик и выдергивает ссылки.
                            А дальше применяя фильтры (*.mp3, *.swf, *.mpg, ...) ищем нужный нам контент.
                              0
                              Интересная вещь, как инструмент должна быть удобной.
                              0
                              Кто ищет тот всегда найдет! Мой пример использование моста JS <=>: AS, т.е. непосредственно внутрь флешки передавать адрес сайта. Тогда его не будет в flashvars и в плейлистах.

                              Делал по примеру: javascript.ru/unsorted/bridge-to-flash
                                0
                                Простите за ошибку, конечно же адрес mp3
                                +5
                                Смею предположить, что автор не знаком с разделом «Сеть» в Firebug. Ибо все эти ковыряния в XML и декодирование flashvars абсолютно излишни.
                                  0
                                  От чего же? Знаком. Content-Location даст необходимый ответ. Не обязательно же навешивать на браузер плюшки, чтобы глянуть такие простые вещи.
                                  0
                                  А из пандоры сможете выдернуть полные файлы, а еще лучше ссылки на них?
                                    +1
                                    Как вариант — кодировать данные или передавать кусками. Только вот это никому не надо, Virtual Cable давно придумали (добавляет в систему устройства воспроизведения и записи, и все что приходит на «выход», пускает на «вход»)
                                      0
                                      Все пишут о том, что я уже и так описал в статье — как выдернуть. Способов понятное дело, что масса. Если такие примочки ставить, то можно и за соседом наблюдать, что он там слушает и смотрит.
                                      Вот таким образом, например:
                                      wireshark
                                      А как этого избежать? Есть идеи? Примеры? Собственный опыт?
                                        +2
                                        Единственный способ защитить аудио-контент от сохранения — урезать его. Выкладывать в низком качестве, обрезать, вставлять вотермарки (извините, не знаю определения аналога для аудио). На recordings.ru, ныне покойном в том виде в котором он был, использовались сразу все эти приемы.

                                        Обычные пользователи, которых подавляющее большинство не смогут скачать и без всякой защиты. Продвинутые пользователи заглянут в кэш или воспользуются сниффером/плагином браузера. Шифрование аудио (по моему, это вообще средствами флеша не сделать, хотя могу ошибаться), загрузка кусками в случае с продвинутыми пользователями поможет только в том случае, если пользователю лень заморачиваться. Если аудио-контент важен, большая часть продвинутых пользователей просто запишет аудио-поток.

                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                        Самое читаемое