Классический форум-трекер
canvas not supported
Нас вместе: 4 232 516

Под чёрным флагом пост, или Как я не выложил видеокурс на трекер


Страницы:   Пред.  1, 2, 3, 4, 5, 6 
 
RSS
Начать новую тему   Ответить на тему    Торрент-трекер NNM-Club -> Поговорим -> Новости P2P, Копирайт, Блокировки
Автор Сообщение
Maximus ®
Вольный стрелок
Uploader 100+
Стаж: 17 лет 6 мес.
Сообщений: 5092
Ratio: 25.179
Поблагодарили: 13237
100%
nnm-club.gif
В трудное время мы живем, не находите? Люди эгоистичны, не признают ценность чужих трудов, любят приходить сразу на все готовое. Интеллектуальная собственность для многих вообще выглядит не более чем бюрократической шуткой: «Как же это так, информация должна быть свободной, ведь это ИН-ФОР-МА-ЦИЯ!!!11». Согласен, в идеале это так. Эти ваши анархии, мятежнические настроения и философии андерграундных хакеров/пиратов, стоящих на страже прав простого люда, мне не чужды. Но парадокс в том, что истинная справедливость – это еще и отплачивать всем за их труд и заслуги, поэтому в большинстве случаев пиратство – антагонистическое предприятие. Но вот политика предоставления услуг по защите интеллектуальной собственности, предлагаемая таким замечательным вендором, как ИнфоПротектор, вызвал у меня праведный гнев.

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

ДИСКЛЕЙМЕР. Все нижеизложенное опубликовано в исследовательских целях и призвано выполнить исключительно образовательную функцию. Автор не несет ответственности за неправомерное использование информации из данного поста и ни в коем случае не призывает воспринимать его как «инструкцию к действию».

Как все было

Выдались свободные выходные, и решил я выложить честно заработанные XXXX р. на 5-и часовой видеокурс. Назовем его «Курсом повышения квалификации для работника общепита», чтобы не возникло никаких параллелей. Вообще, я не сторонник восприятия информации через видеоуроки (о-о-очень контрпродуктивно), но здесь прямо не удержался – пал жертвой красочных рекламных баннеров.

Оплатил, на почту прилетело письмо, содержащее ссылки на загрузку материалов, придуманные (ссылки) рандомайзером ИнфоПротектора и выплюнутые на близлежащий CDN. В теле письма – благодарности автора за приобретение и регистрационный ключ, которым предлагалось активировать покупку.

Скачиваю архив. В архиве папка. В папке исполняемый файл. В исполняемом файле яйцо. Запускаю exe'шник – здесь-то мне и выложили всю правду, которая в свободном пересказе звучит примерно так (читать гнусавым голосом):
    К данному видеокурсу применен механизм защиты цифровой информации компании «ИнфоПротектор»; для первого запуска (читать «активации продукта») необходим доступ в Интернет; просмотр видеороликов возможен только из нашей программы, из нашего плеера; установка видеокурса возможна только на двух компьютерах (видеокурс привязывается к конфигурации окружения ОС / железа, как выяснится позже).

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

«Так не пойдет», – решил я и начал серию экспериментов.

Ограничения, налагаемые ИнфоПротектором

Чтобы не тратить время зря, для начала я обратился ко всемирной паутине, чтобы узнать, что уже люди накопали о механизме защиты этих ребят (все тонкости работы защиты, разумеется, не раскрываются).

Что удалось узнать:

Ключ активации генерируется случайным образом при оплате курса и используется для того, чтобы быть аутентифицированным сервером, который в случае успеха высылает клиенту AES-ключ для расшифрования видеоматериалов, доступных из-под кастомного плеера компании. Реверсить приложение долго и максимально трудоемко (т. е. нецелесообразно для такого рода задачи), поэтому этот путь я решил оставить.
Использование средств записи экрана безжалостно блокируется по целому ряду направлений: на одном хосте нельзя одновременно запустить плеер и любой screen capturer, т. к. программа детектит запущенные процессы с их метаданными: названия заголовков окон; описание исполняемых файлов; названия вендоров, вшитых в exe'шники приложений захвата; даже браузер, открытый на страничке, в названии которой есть слово «Fraps», к примеру, также является предметом для алерта и завершении работы плеера.
Песочницы, виртуальные машины и стриминг контента с удаленных подключений (rdesktop, RAdmin, TeamViewer) тоже не вариант – не по годам умный софт умеет определять и их, самоубиваясь при каждом удобном случае.

Но несмотря на последние два пункта самым реальным вектором атаки остается все же запись экрана, реализовать которую можно попробовать несколькими способами:

Найти программу для захвата, которая бы не содержала слов-маячков в своем названии/производителе/описании, которую не знает ИнфоПротектор, и на которую, следовательно, последний не будет триггериться. Минусы: долго, скучно и не факт, что в принципе выполнимо.
Найти опенсорс-продукт, обладающий нужным функционалом, и скомпилировать свою версию захватчика экрана, заменив в исходниках все, что защите ИнфоПротектора в теории может показаться подозрительным. Минусы: долго, скучно, трудоемко (обычно такие проекты довольно громоздки, состоят из сотен (?) файлов и имеют кучи зависимостей в исходниках, поэтому просто Ctrl-H не прокатит, это тебе не mimikatz править, чтобы Windows Defender не стриггерить).
Написать свое решение на чем-нибудь скриптовом, чтобы не рисковать со скомпилированным исполняемым файлом неизвестной природы (неизвестно, что на это скажет эта зараза), реализующее тривиальный функционал быстрого снятия скриншотов с выбранной области экрана (благо, ИнфоПротектор это позволяет), и отдельно записать звуковую дорожку, что тоже оказалось легитимным и максимально простым действом.

Минусов третьего пункта не обнаружилось, поэтому можно приступать.

Заскриншотить весь мир

Первое: разберемся, как автоматизировать процесс создания тучи скриншотов с помощью скрипта. Конечно, это: Python, и еще OpenCV, и еще MSS, и еще PIL.

Процесс предельно прост:

Выставим размер окна плеера, равным разрешению выходного видео, которое мы хотели бы иметь (логично учесть место для элементов управления скриптом – окно с терминалом, например, которое не должно попасть в область записи). Это можно сделать такой чудесной софтиной.
Расположим окно плеера в такой позиции, как найти которую было бы проще всего объяснить скрипту – правый нижний угол экрана (думаю, система отсчета, связанная с границами экрана — самый удобный вариант).
Натравим уже написанный скрипт (который будет чуть ниже) делать скриншоты этой области.
Не трогаем эту неуклюжую систему в процессе всего проигрывания видео.

Скрипт под спойлером:
Код: выделить все
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# Usage: python3 fckInfoprotector.py <WIDTH> <HEIGHT>

import sys

import numpy as np
import cv2
from mss.windows import MSS as mss
from PIL import Image

class Capturer:

  def __init__(self, w, h, resolution='1080p', fps=24.975):
    if resolution == '1080p':
      self.monitor = {
        'top': 1080 - h,
        'left': 1920 - w,
        'width': w,
        'height': h
      }

    elif resolution == '1440p':
      self.monitor = {
        'top': 1440 - h,
        'left': 2560 - w,
        'width': w,
        'height': h
      }

    else:
      raise ValueError('Unsupported monitor resolution')

    self.sct = mss()

    self.vid = cv2.VideoWriter(
      'output.avi',
      cv2.VideoWriter_fourcc(*'XVID'),
      fps=fps,
      frameSize=(
        self.monitor['width'],
        self.monitor['height']
      )
    )

  def mainloop(self):
    try:
      while True:
        sct_img = self.sct.grab(self.monitor)
        sct_img_size = (sct_img.width, sct_img.height)

        img = Image.frombytes(
          'RGB',
          sct_img_size,
          sct_img.rgb
        )

        frame = cv2.cvtColor(
          np.array(img),
          cv2.COLOR_BGR2RGB
        )

        self.vid.write(frame)

    except KeyboardInterrupt:
      cv2.destroyAllWindows()
      print('Interrupted')

if __name__ == '__main__':
  if len(sys.argv) != 3:
    print(f'Usage: {sys.argv[0]} <WIDTH> <HEIGHT>')
    sys.exit()

  w, h = (int(x) for x in sys.argv[1:3])
  capturer = Capturer(w, h, fps=50.0)
  capturer.mainloop()
Записать аудиодорожку

Ну здесь совсем элементарно: Windows позволяет сделать это встроенными средствами.

Для Windows 7: Пуск -> Панель управления -> Оборудование и звук -> Звук -> Запись -> Показать отключенные устройства и выбрать «Стерео микшер»



Теперь при начале записи к нашей и без того неуклюжей конструкции добавляется еще такая кнопка, на которую тоже нужно нажимать:



Объединить две половинки целого

После того, как видеоряд и звуковое сопровождение готовы, остается эту конструкцию склеить. Будем делать это в чудесном видеоредакторе под название VirtualDub.

Откроем видео:



Добавим аудиодорожку:



Изменим фреймрейт видео, т. к. в оригинальном плеере он оказался непостоянным. Поэтому, чтобы видео и аудио имели одну и ту же длину, снизим частоту кадров с 50 (мы специально взяли с запасом, когда записывали) до X, где X рассчитывается по формуле:

X=captured_video_duration×50÷original_video_duration


Да, при таком подходе могут быть незначительные рассинхроны голоса и картинки, но это вынужденные жертвы.

Добавим компрессию видео по желанию и F7! Получили ролик из видеокурса.

Под занавес

Почему этот пост наполнен таким негодованием? Постараюсь объяснить.

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

Во-вторых, мне непонятна логика друзей из ИнфоПротектора: зачем столько усилий и кривой софт (который жаловался даже на дрова NVIDIA, как на средство записи экрана!), если в конце концов, у злоумышленника, которому лень будет заниматься тем бредом, что описал здесь я, просто есть возможность сделать «экранку», поставив перед монитором камеру на штативе?

В-третьих, многие скажут: «Так ведь DVD-диски тоже были защищены от копирования!». Да, все так. Только вот диск я мог взять куда угодно, посмотреть его столько раз, сколько мне нужно (имею право), и он работал бы так же исправно, сколько компьютеров я бы не поменял.

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

Закон и великий Договор я не нарушил, материалы на просторы Интернета не выкладывал и не собираюсь, единственное мое преступление – любопытство.

Йо-хо, громче черти!

habr.com

_________________
«Если ты ненавидишь, значит тебя победили» – Конфуций
yinas
Стаж: 7 лет 4 мес.
Сообщений: 269
Ratio: 6.614
100%
shsw83 писал(а): Перейти к сообщению
Зато сейчас у меня полностью лицензионная 10.


Нафига?
viktorh71
Стаж: 8 лет 8 мес.
Сообщений: 619
Ratio: 30.471
Поблагодарили: 46
6.56%
ussr.gif
yinas писал(а): Перейти к сообщению
shsw83 писал(а): Перейти к сообщению
Зато сейчас у меня полностью лицензионная 10.


Нафига?


Чтобы все работало без проблем. Я, если что, IT-шник, так что можно мне не рассказывать, что нет никакой разницы между пираткой и лицензией. :D
Пуф
Только чтение
Стаж: 10 лет 10 мес.
Сообщений: 1498
Ratio: 3.381
Поблагодарили: 2
90.75%
Откуда: Смоленск
russia.gif
viktorh71 писал(а): Перейти к сообщению
Я, если что, IT-шник,так что можно мне не рассказывать, что нет никакой разницы между пираткой и лицензией.

Не делайте громких слов.IT-шник :D

Абсолютно ни какой разницы.Разница лишь в методе активации.

Взять тот же KMS или ключ, купленный у Пети Камушкина в интернете или Цифровую лицензию(официальную или же полученную методом обновления ОС до 10 или цифровую лицензию полученную скриптовыми утилитами)

KMS(стандартно на 180 дней) заставляет вас переактивировать ОСь или создавать задачу переактивации+иногда заносить некоторые файлы в исключения антивирусных решений.

Цифровая лицензия(которую можно сейчас спокойно получить буквально в 2 клика мышкой) или же опять же цифровая лицензия полученная при вводе ключа.

Всё лежит на поверхности.
Да хоть OEM ключ зашитый в Bios.
Ни чего не меняет и на работоспособность ОСи не влияет.
Всё зависит от пользователя.

_________________
Сбили с ног- сражайся на коленях, встать не можешь - лёжа наступай!
viktorh71
Стаж: 8 лет 8 мес.
Сообщений: 619
Ratio: 30.471
Поблагодарили: 46
6.56%
ussr.gif
Пуф писал(а): Перейти к сообщению
viktorh71 писал(а): Перейти к сообщению
Я, если что, IT-шник,так что можно мне не рассказывать, что нет никакой разницы между пираткой и лицензией.

Не делайте громких слов.IT-шник :D

Абсолютно ни какой разницы.Разница лишь в методе активации.



Причем здесь, метод активации?
Вы путаете активацию официальной версии, скачанной с сайта микрософта, со скачиванием сборки с торрента в которой "удалено всё ненужное и добавлено всё полезное". А потом вопросы, "почему у меня не работает".
Пуф
Только чтение
Стаж: 10 лет 10 мес.
Сообщений: 1498
Ratio: 3.381
Поблагодарили: 2
90.75%
Откуда: Смоленск
russia.gif
viktorh71
При чем тут сборки вообще? :D Разве о них речь шла? :D Это уже ваша фантазия и перевод диалога в другое русло.И поверьте,массовые сборки которые выложены именно на этом трекере,даже в софт-оболочках для специалистов, не так уж и страшны как вы их малюете.

Естественно всегда лучше скачать MSDN или VLSC образ и не важно чем он активирован,всё равно работа ОС будет зависеть от того кто её использует,хоть официально,хоть неофициально активированную.Все равно все настраивают ОС под себя,даже после чистой установки.
И под понятие "пиратка" можно за уши притянуть любой образ,да к примеру тот же MSDN и у вас нет подписки.
UPD.На ровном месте и ногу можно сломать умеючи и в новых,фирменных и дорогих кроссовках.

_________________
Сбили с ног- сражайся на коленях, встать не можешь - лёжа наступай!
savsoft
Стаж: 12 лет 11 мес.
Сообщений: 3089
Ratio: 1.165
37.48%
viktorh71 писал(а): Перейти к сообщению
Пуф писал(а): Перейти к сообщению
viktorh71 писал(а): Перейти к сообщению
Я, если что, IT-шник,так что можно мне не рассказывать, что нет никакой разницы между пираткой и лицензией.

Не делайте громких слов.IT-шник :D

Абсолютно ни какой разницы.Разница лишь в методе активации.



Причем здесь, метод активации?
Вы путаете активацию официальной версии, скачанной с сайта микрософта, со скачиванием сборки с торрента в которой "удалено всё ненужное и добавлено всё полезное". А потом вопросы, "почему у меня не работает".


Не использую сборки, а чистая пиратка отличается только наличием активатора. Если, например, поставить не пиратку, купленную OEM винду, на лишний комп и активировать ее активатором, то она станет пираткой.
Показать сообщения:   
Начать новую тему   Ответить на тему    Торрент-трекер NNM-Club -> Поговорим -> Новости P2P, Копирайт, Блокировки Часовой пояс: GMT + 3
Страницы:   Пред.  1, 2, 3, 4, 5, 6
Страница 6 из 6