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

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

А теперь подробнее:

Предыстория

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

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

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

В целом изучить файл - это не такая сложная задача. Вы создаете схему, сохраняете файл, затем делаете минимальное изменение в редакторе и сохраняете еще один файл. Затем изучаете разницу в этих файлах, таким образом восстанавливая их структуру.

Во втором файле я изменил ширину схемы с 10 на 11 крестиков. Таким образом нашел место в файле, отвечающее за этот размер. Также в 010 Editor есть мощная система шаблонов с которой удобно строить структуру файла, но это тема отдельной статьи.
Во втором файле я изменил ширину схемы с 10 на 11 крестиков. Таким образом нашел место в файле, отвечающее за этот размер. Также в 010 Editor есть мощная система шаблонов с которой удобно строить структуру файла, но это тема отдельной статьи.

Это все работает до тех пор, пока данные записаны напрямую в файл. Если данные запакованы, зашифрованы или еще что-то, то тут нам надо уже смотреть сам код. Благо статья 1280 ГК РФ нам это позволяет:

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

Вооружаемся любимым дизассемблером и ищем как же именно данные записываются в файл.

Тут чтение данных из файла зависит от версии программы, в которой они были созданы.
Тут чтение данных из файла зависит от версии программы, в которой они были созданы.

Таким образом я изучил форматы схем двух самых популярных у дизайнеров программ и на этом остановился.

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

Завязка

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

Я был готов снова провести пару недель в HEX редакторе и отладчике, однако все оказалось куда проще:

Открываем файл в редакторе и видим заголовок ZIP архива "PK"

Первый взгляд на файл
Первый взгляд на файл

Распаковываем как ZIP, получаем список файлов и снова смотрим на один из них в HEX редакторе

Файлы в архиве
Файлы в архиве
Очень похоже, что закодировано Base64
Очень похоже, что закодировано Base64

Пробуем декодировать в онлайн декодере:

Декодированный Base64
Декодированный Base64

Уже похоже на какие-то данные, но зашифрованные. Тут нам уже надо будет заглянуть в бинарный файл программы.

Я изучаю версию для Android, так как apk файл можно скачать с сайта приложения. Приложение мультиплатформенное, значит ядро будет написано на чем-то вроде С++ и лишь небольшая часть на java.

Поскроллив немного дизассемблированный код нативной библиотеки, я натыкаюсь на такой псевдокод:

Подозрительный псевдокод
Подозрительный псевдокод

Значит в Java коде есть некая функция Decode, куда передаются 2 строки, очень похожие на некий ключ.

Переходим в Android Studio и смотрим байткод этого класса, видим здесь декодирование Base64, а затем стандартное шифрование AES.

Байткод функции расшифровки
Байткод функции расшифровки

Гуглим работу в Java с

Base64.decode
SecretKeySpec
IvParameterSpec
Cipher

Быстро набрасываем код и смотрим результат в отладчике:

Расшифрованные данные
Расшифрованные данные

Дальше уже проанализировать XML не составило никакого труда. Формат был добавлен, пользователи счастливы. Дата 14 февраля 2022 года.

Кульминация

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

2 Мая 2023 - приложение было заблокировано без уведомлений, на мой запрос в Рустор я получил ответ:

Приложение было заблокировано по требованию правообладателей приложения Cross Stitch Saga. Представители сообщили, что вы добавили проприетарный формат их приложения .saga и разрешили его чтение без разрешения правообладателя. 

Тогда Рустор приняли мои доводы о том, что формат файла не является объектом авторского права и его чтение не является нарушением, восстановили приложение, ответили:

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

12 Мая 2023 поступило письмо:

Настоящим сообщаем, что на наш адрес поступила претензия в связи с незаконным использованием в рамках приложения Cross Stitch Paradise формата SAGA, исключительные права на который по утверждению заявителя принадлежат ему.
Контакты заявителя: email адрес. В связи с поступлением претензии просим Вас в течение 5 (пяти) рабочих дней устранить нарушение или связаться с заявителем для урегулирования спора.При наличии законных оснований использования формата SAGA предоставить соответствующие доказательства, например: согласие правообладателя на использование формата SAGA, лицензионный договор на использование формата SAGA или иные доказательства.В случае непредоставления подтверждения устранения нарушения, урегулирования спора с заявителем или документов, подтверждающих законность использования формата SAGA в рамках приложения Cross Stitch Paradise, мы будем вынуждены заблокировать приложение Cross Stitch Paradise в RuStore. 

В этой претензии не содержится:

  • контактных данных адресанта, только электронная почта, по которой нет никакой информации о заявителе

  • перечисления объектов авторского права с подтверждением авторства

  • ссылок на патенты

  • ссылок на лицензионный договор

После этого была переписка с кем-то по адресу, который был указан как контактный:

Файл SAGA является архивом с зашифрованными данными алгоритмом AES128 https://ru.wikipedia.org/wiki/AES_(стандарт_шифрования), для получения доступа к которым используются ключи шифрования, являющиеся частью исходного кода приложения Cross Stitch Saga (эти ключи хранятся исключительно в коде приложения Cross Stitch Saga и в свободный доступ не выкладывались). Получить эти ключи подбором данных между исходным файлом схемы и схемой в формате SAGA или иным подбором не представляется возможным без реверс-инжиниринга приложения Cross Stitch Saga. По подсчетам EETimes на подбор ключей для алгоритма AES128 уйдет миллиард лет с использованием суперкомпьютера https://www.eetimes.com/how-secure-is-aes-against-brute-force-attacks/ Возникает вопрос, требующий разъяснения: каким образом разработчик Cross Stitch Paradise получает данные из файлов SAGA не используя ключи шифрования, которые являются частью исходного кода приложения Cross Stitch Saga?

Мой ответ:

Ключи "i0dLlD..." и "00RW..." не содержат в себе какого-то кода или алгоритма и служат просто для расшифровки XML данных стандартным(!) методом шифрования "AES/CBC/PKCS7Padding". Эти данные были получены в результате исследования формата файла и того, как с ним взаимодействует приложение, что является абсолютно законным с точки зрения Гражданского кодекса, статья 1280: http://www.consultant.ru/document/cons_doc_LAW_64629/3cbc9e0590122df6ade6baf1d39f9ee34411c24a/

Ответ Сага:

Ключи шифрования хранятся  в скомпилированном коде приложения (написанном на С++), а не в открытом виде или в каком-то файле. Ключи шифрования также не содержатся в формате SAGA.  В данном тезисе разработчик Cross Stitch Paradise подтверждает факт реверс-инжиниринга приложения Cross Stitch Saga.

Рекомендуем разработчику Cross Stitch Paradise убрать из своего приложения использование этих ключей шифрования, применяемых для чтения файлов формата SAGA, а также воздержаться от распространения этих ключей шифрования третьим лицам или в свободный доступ.

Уже тут заявитель понял, что версия с "проприетарный формат" не сработает и переключился на "ключи шифрования"

Мой ответ:

Так как все данные получены законным путем, никакие авторские права не нарушены, то рекомендую прекратить все нападки на приложение Cross Stitch Paradise.

На этом этапе юристам RuStore уже должно быть понятно, что некий представитель Cross Stitch Saga пытается хоть как-то оправдать "уникальность" своего формата и уже переходит к рекомендациям, а не требованиям. 

В реальности же мы имеем:

  • архив ZIP - открытая спецификация

  • в нем файлы XML - вообще текстовая структура

  • кодированы алгоритмом Base64 - открытая спецификация

  • зашифрованы алгоритмом AES - открытый стандарт шифрования 

Весь код расшифровки - вызовы стандартных процедур из библиотеки Java

Никакого уникального алгоритма или изобретения, который можно было бы запатентовать - тут нет. 

Никакого взлома или глубокого реверс инжиниринга для получения ключей не нужно, их просто видно как строки. 

А пункт  3. статьи  1280 ГК РФ нам прямо говорит:

Пользователь вправе декомпилировать ПО, если это необходимо для достижения способности к взаимодействию независимо разработанной этим лицом программы для ЭВМ с другими программами, которые могут взаимодействовать с декомпилируемой программой.

То есть Закон РФ мне напрямую разрешает делать реверс-инжиниринг, чтобы взаимодействовать с файлами других программ! И никакое "Лицензионное соглашение" не вправе это запретить.

Со всеми этими обоснованиями согласился мой юрист. На этом я надеялся, что конфликт исчерпан полностью. Никаких других данных не было, 5 дней прошло.

30 мая 2023 - снова блокировка без уведомления:

Приложение было заблокировано по требованию правообладателя. В случае несогласия вы можете обратиться напрямую к правообладателю для урегулирования спора: email адрес

Заключение

На этом моменте мой адекватный диалог с @RuStore остановился, на свои запросы об:

  • официальной претензии с контактами заявителя, а не просто электронной почтой

  • хоть каких-то доказательств наличия прав у заявителя

  • хоть каких-то доказательств нарушения законов моим приложением

Я не получил ответов, только "мы разблокируем ваше приложение, если правообладатель отзовёт претензию. Все ваши обращения будут закрыты." Естественно такой "правообладатель" добился блокировки конкурента и ничего не будет отзывать. При этом его самого нет в RuStore, а в Google Play никаких претензий нет.

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

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

Даже на предложение убрать чтение этого формата на время разбирательств я также получил отказ, вот тебе и отечественный магазин с поддержкой российского ПО. RuStore пошел навстречу и разрешил опубликовать билд без этого формата.

Комментарии (85)


  1. shasoftX
    02.06.2023 12:42

    Никакого взлома или глубокого реверс инжиниринга для получения ключей не нужно, их просто видно как строки

    С таким подходом можно любую защиту ломать под лозунгом "ведь код защиты видно как код".

    Как вариант, можно сделать отдельное приложение для конвертации того формата в ваш. Или даже ни как приложение, а как отдельный сервис в интернете.


    1. max_xt Автор
      02.06.2023 12:42
      +9

      Тут вопрос в том, что юридически такие претензии необоснованны. Зачем мне делать отдельный сервис, когда я могу это сделать в приложении. Или у OpenOffice есть отдельный конвертер doc файлов?


      1. shasoftX
        02.06.2023 12:42
        +2

        OpenOffice бесплатный, а у вас, как я понял, коммерческий проект. И doc файлы не шифруются. Я не юрист, но вероятно тут как раз вся "затыка" в том, что вы вставили их ключ для дешифровки в своё приложение. Там же сделали хитрее, они просят пользователя ввести аккаунт + это аккаунт пользователя и у вас уж точно на него прав нет.
        Ну и если вы считаете себя правым, то в суд и отсудить все материальные потери что вы понесли из-за блокировки.


        1. max_xt Автор
          02.06.2023 12:42
          +1

          Походу придется идти в суд на Рустор, потому что со стороны заявителя только email есть.


          1. shasoftX
            02.06.2023 12:42
            +4

            Найти контакты на кого в суд подавать, это отдельный квест.

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


            1. vikarti
              02.06.2023 12:42
              +3

              А это — подать в суд на ВКонтакте не получится? И пусть они заявляют что они — ненадлежащий ответчик, но тогда придется ж сказать а кто надлежащий?
              Будет смешно если они сами юридически реквизитов конкурента этого не знают а просто по письму работали.


    1. forthuse
      02.06.2023 12:42
      +4

      А, как быть со всеми разными приложениями/программами, которые свободно читают/импортируют данные из сторонних программ сходной функциональности, но как правило сохраняют их уже в своём формате.
      Что они нарушают?


      1. shasoftX
        02.06.2023 12:42

        Уже писал, что я (а я не юрист) тут вижу "затык" в использовании ключа для дешифровки. Не знаю ро какие программы идет речь, но предположу что

        1. Там файл не шифруется

        2. Правообладателю формата пофиг

        p.s. И в данном случае возможно юристы RuStore и вообще не подключались. Есть жалоба, есть разработчик формата, вот и заблокировали.


        1. forthuse
          02.06.2023 12:42
          +1

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


          P.S. Российское законодательство в разрешении таких вопросов достаточно конкретно описывает правоприменимость возможности реверса ПО и в каких целях.


          1. freeExec
            02.06.2023 12:42

            Как раз содержимое файла является чьим-то контентом. Но в данном случае к содержимому нет претензий.


        1. max_xt Автор
          02.06.2023 12:42
          +2

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


          1. shasoftX
            02.06.2023 12:42
            +8

            А не пробовали на них пожаловаться? Ситуация то тогда зеркальная.


            1. max_xt Автор
              02.06.2023 12:42

              Это было еще в версии 4.3, а вот в последней 4.4 они все тщательно подчистили в коде, типа белые и пушистые.


              1. shasoftX
                02.06.2023 12:42

                "Устранили нарушения", а значит их это всё-таки "смущало".

                Судя о всему они заранее подумали о зеркальном ответе. А значит их юрист сказал им что они правы.


                1. max_xt Автор
                  02.06.2023 12:42

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


                  1. shasoftX
                    02.06.2023 12:42
                    +2

                    Лишние траты и всегда есть шанс проиграть. Суд, это такое дело что фиг знает как он решит. Юристы всегда уверены в победе, в реальности всё неясно.

                    Я вот уже приводил пример своего случая с нападением собак. В суде хозяин собак сказал что да, виноват, он признает что его собаки напали, но он оплатил сумму лечения (после того как я уже потратился на юриста и составил заявление в суд и сделал он это через 2 месяца после происшествия). И суд такой - в иске отказать. Все ваши материальные потери от нападения, это чисто ваши проблемы. Апелляционный суд сказал тоже самое. Хотя мой юрист тоже был уверен что мы выиграем.


    1. freeExec
      02.06.2023 12:42
      +3

      В данном случае пользователь работает с файлом, которым он законно обладает. Это не тоже самое что пиратка с торрента.


      1. shasoftX
        02.06.2023 12:42
        +1

        Так ведь претензии не к пользователю, а к разработчику, который использует чужой ключ шифрования.


  1. vilgeforce
    02.06.2023 12:42

    Судя по тому, что вы показали - ключи там представляют собой текстовые строки, предполагаю алфавит 0-9A-Za-z и тогда сроки подбора значительно меньше.

    По поводу секретности IV можете их вообще слать лесом: расшифровка с некорректным IV портит только первый блок (8 байт в вашем случае), остальные данные корректны. Имея представление об исходных данных восстановить IV - не проблема. Или вы можете в своем приложении использовать некорректный IV и переписывать первые 8 байт данных так, чтобы XML-парсер работал как нужно ;-) Удачи в борьбе с чудилами!


    1. max_xt Автор
      02.06.2023 12:42

      Да я бы и готов слать всех лесом, но пока только меня шлет лесом Рустор


      1. vilgeforce
        02.06.2023 12:42

        Ну ответьте им про секретность IV и явное введение в заблуждение со стороны тех товарищей по срокам перебора :-)


        1. max_xt Автор
          02.06.2023 12:42
          +1

          На все мои обращения, они меня отфутболивают "обращайтесь к правообладателю". Теперь вообще сказали отвечать больше не будут.


          1. forthuse
            02.06.2023 12:42
            +2

            Оформите документом на своё имя формат сохранения использованный в их программе и предъявите встречную претензию. :)


            1. vilgeforce
              02.06.2023 12:42
              +1

              Да еще и максимально расплывчато! Или XML-схему на себя оформить...


      1. vilgeforce
        02.06.2023 12:42
        +2

        У меня родилась дурная идея: поскольку для корректной расшифровки нужен и ключ, и IV, вы спрашивайте IV у пользователя ;-) Если пользователю "повезет" - ура, если нет - переходите в режим "совместимости", чините некорректные данные и выводите соответствующее предупреждение ;-)


    1. vasyakolobok77
      02.06.2023 12:42

      расшифровка с некорректным IV портит только первый блок

      Неверно, если используется IV, значит используется режим связи блоков (cbc, ofb, cfb), а значит расшифровка влияет на все блоки (https://ru.wikipedia.org/wiki/Режим_шифрования).

      IV не является секретом, это верно, обычно для каждого сообщения генерируют новый IV и кладут его с шифротекстом.


  1. LordDarklight
    02.06.2023 12:42
    +1

    Замените в тексте приложение (и файлы хранения) про "вышивание" на приложение про просмотр медиаконтента с защитой DRM (или на любой иной соф с защитой любых ресурсов - где всё тоже самое архив + шифрование) - и по сути ничего не изменится - но только это уже более явно будет напоминать хакинг и получение доступа к информации, защищаемой цифровым ключом чужого владельца. Простой пример - защищённые книги в PDF или EPUB - подобная история с коимпание Adode уже была лет так 20 назад - точно так же один программист провёл реверс инжиниринг её защищённого PDF формата - и выложил ПО для его чтения - потом был суд, который выиграла Adobe - что там с программистом потом стало уже не помню....

    В общем, Вам нужно либо договариваться с автором на получение лицензии к формату, либо нелегально распространять своё ПО, да хоть через 4PDA но с монетизацией будут уже проблемы (хотя в даркнете всё продаётся - но это уже совсем иной рынок и явно не те доходы для подобного софта).

    Есть ещё третий вариант - эдакий компромисс (но он тоже не сладкий) - убрать чтение данного формата файлов из данного ПО (Заменив его другим) - после чего повторно подать заявку на размещение в магазине приложений, а отдельно уже разместить где-то (наврядли в RUSTORE) плагин для открытия данного формата (или ПО для его переконвертации в другой формат).

    В основное ПО можете встроить поиск плагинов в интернете - позволяющий упросить поиск и установку данного плагина, распространяемого уже вне данного ПО.

    Можно даже заморочиться и сделать поддержку поиска и скачивания плагинов через торрент сервис

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


    1. max_xt Автор
      02.06.2023 12:42

      Только в DRM тут никакого отношения нет. Кто угодно может конвертировать любую схему в этот формат через приложение. Никаких проверок на "копирайт" там нет, вы можете открыть этот файл на любом устройстве.


    1. rsashka
      02.06.2023 12:42
      +1

      Принципиальная разница вашего примера от текущей ситуации в том, что "потом был суд". А тут нет судебного разбирательства, так как нет ни реальных контактов правообладателя, ни оснований для его блокировки (ссылок на патенты, и пр.) В этом отношении GoogePlay поступает удобнее и честнее, сперва тебя блокируют, а если ты не согласен, то бан снимается, а заявитель подается на тебя в суд.


    1. inkelyad
      02.06.2023 12:42

      Но, ИМХО, лучше договориться с автором формата - может он захочет их продавать!

      Ой, сомневаюсь... Это товарищи, занимающиеся машинами для вышивки - они даже задокументировать свои форматы нормально не могут.

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


      1. max_xt Автор
        02.06.2023 12:42

        Нет, эти товарищи вообще не связаны с созданием схем, их приложение конвертирует уже файл из редактора схем в свой формат.


  1. Urub
    02.06.2023 12:42
    +2

    Получить эти ключи подбором данных между исходным файлом схемы и схемой в
    формате SAGA или иным подбором не представляется возможным без
    реверс-инжиниринга

    а что скажет команда: strings that_saga_app ?


    1. max_xt Автор
      02.06.2023 12:42
      +2

      Так нельзя, вы должны миллиард лет подбирать ключ перебором!


      1. dreesh
        02.06.2023 12:42

        Не нужно хранить ключ в приложении, генерируйте его (тот же sha256 подходящий можно найти достаточно быстро шум->sha256)


      1. vvzvlad
        02.06.2023 12:42

        Подобрать такой seed для рандом-генератора для подбора ключа, который в первых циклах находит нужный ключ, и все. Мы ключ не храним, мы храним seed, случайно выбрали, а что он быстро находит ключ — ну, так совпало.


  1. ultrinfaern
    02.06.2023 12:42

    Как понимаю, проблема только с к лючами. Вынесите их в конфигурацию и назовите персональным паролем. ;)


    1. max_xt Автор
      02.06.2023 12:42
      +2

      Проблема в том, что непонятно в чем проблема. Ни Рустор не может объяснить что именно нарушило приложение кроме "лицензии авторского права", email заявителя вообще не отвечает.


      1. ultrinfaern
        02.06.2023 12:42

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


        1. max_xt Автор
          02.06.2023 12:42
          +1

          Вот что я нашел

          Однако недавно было высказано предположение, что Dolphin может быть исключением, поскольку он включает криптографический ключ Wii Common Key, используемый для расшифровки игры. Вероятно, Nintendo ссылалась на этот факт, утверждая, что использование Wii Common Key в эмуляторе означает, что эмулятор активно обходит меры защиты от пиратства.

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


          1. ultrinfaern
            02.06.2023 12:42

            Почитайте про "незаконное число".Пароль, который вы надебажили, именно им и является.


            1. max_xt Автор
              02.06.2023 12:42
              +1

              Почитал https://ru.wikipedia.org/wiki/Незаконное_число и получается мне достаточно сделать XOR со своим ключем и хранить в приложении два таких включа, вместо одного "оригинального"


              1. ultrinfaern
                02.06.2023 12:42

                Я думаю с XOR позиция слабая, так как вы в результате все равно приходите к незаконному числу. А вот ввод от пользователя котрый вы не контролируете, может и "совпасть". Благо, это действительно персональный пароль для AES.


  1. Viacheslav01
    02.06.2023 12:42
    +4

    У меня возник вопрос, чем руководствуется Rustore при принятии этой жалобы к рассмотрению и удалению приложения?

    Если это гугл плей то они рассматривают жалобы в рамках dmca и по нему же и разруливают.

    Но Rustore же на 100% импортозамещающий, а значит ни в коем случае не должен руководствоваться законами из за границы.

    Тогда на чем основано их решение?


    1. max_xt Автор
      02.06.2023 12:42

      Они ссылаются на пункты 4.8 и 9.3 https://help.rustore.ru/rustore/legal_info/developers_agreement Непонятно как они определяют обоснованность этих претензий.


      1. Viacheslav01
        02.06.2023 12:42
        +2

        Ну 4.8 вообще тут не при делах. А вот 9.3 написан очень интересно, по факту он позволяет ВК зарубить любое приложение по любой жалобе. ВК не возлагает на себя обязательств по проверке обоснованности жалобы. Так же не определен механизм решения проблемы с жалобщиком. Все строится вокруг наличия жалобы, но нет механизмов ее разрешения. Что позволяет любому выкидывать любые приложения из маркетплейса и не позволять их возващать ни при каких условиях.

        Единственный вариант подать в суд и через этот механизм заставить их раскрыть реальный процесс принятия претензий и их урегулирование.


        1. max_xt Автор
          02.06.2023 12:42
          +5

          Да, именно прозрачности в этом процессе хотелось, я очень надеюсь этой публикацией повлиять на @RuStore в лучшую для разработчиков сторону.


  1. max_xt Автор
    02.06.2023 12:42
    +2

    RuStore пошел навстречу и разрешил опубликовать билд без этого формата.


    1. maikuss
      02.06.2023 12:42
      +1

      Сделать поддержку всех форматов, включая и этот спорный, в виде плагинов, которые распространяются не через Rustore ? Или в виде вебсервиса, который определяет формат присланного вашей программой файла и присылает обратно файл "нормализованный", т. е. транслированный в ваш формат? Или они запрещают такую модель?


      1. max_xt Автор
        02.06.2023 12:42
        +2

        Мне проще говорить пользователям обновиться до полноценной версии в Google Play, после покупки в Русторе. Для остальных, в группе приложения будет ссылка на полноценный apk. Но это не решение спора, а так - костыль.


    1. YegorP
      02.06.2023 12:42

      А где тут "навстречу"-то?


      1. max_xt Автор
        02.06.2023 12:42
        +2

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


  1. yar3333
    02.06.2023 12:42
    -1

    По ходу у RuStore нет толком политики разруливания таких ситуаций. А в РФ по ходу в судах дел на тему прав касательно ПО, вероятно, кот наплакал. Моё мнение, что читать чужие форматы всё же нельзя. Ведь они вкладывались в рекламу своего формата - прямо или косвенно. У них могут доходы быть завязаны на то, что другие программы не будут их формат читать.


    1. max_xt Автор
      02.06.2023 12:42
      +4

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


      1. yar3333
        02.06.2023 12:42

        А если фирма Abobe перестанет продавать ключи на Photoshop - будет ли это значить, что теперь Photoshop можно свободно пиратить? Вопрос в том, насколько строго соблюдать право собственности. Насколько я понимаю, в мелких вопросах в западном мире оно соблюдается максимально. В крупных - политика вмешивается (разделение корпораций на части, блокировка средств отдельных стран). В РФ с этим самым правом вообще всё не однозначно, так что может вы и правы :)


        1. max_xt Автор
          02.06.2023 12:42
          +5

          Но тут же вопрос не про пиратство фотошопа, а что делать с файлами формата psd после этого? Эти файлы создали авторы, они не принадлежат фотошопу. Почему авторы не могут открыть их в Gimp или другом редакторе, который открывает такие файлы?


          1. yar3333
            02.06.2023 12:42
            +1

            Потому что формат проприетарный. Вы спрашиваете зачем такие форматы вообще бывают? Зачем их защищают авторским правом? Нужно спрашивать у законодателей, я могу лишь пофантазировать на тему :)


            1. thevlad
              02.06.2023 12:42
              +4

              Есть Krita которая открывает psd, и их никто не засудил, проприетарность и возможность засудить это разные вещи. Там ниже уже давал ссылку, единственное, за что я считаю реально могут зацепиться, это патенты.

              То есть мы имеем достаточное количество софта которое открывает проприетарные форматы, и которых пока что ни кто не засудил. Это как минимум довольно странно.


    1. apro
      02.06.2023 12:42
      +4

      Моё мнение, что читать чужие форматы всё же нельзя

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


  1. merinoff
    02.06.2023 12:42

    Как бы вам прозрачно намекнуть… а с чего они взяли, что вы увели у него ключи, а не он у вас? Удачи!)


    1. Wendor
      02.06.2023 12:42

      на подбор ключей для алгоритма AES128 уйдет миллиард лет

      Это же все демагогия о вероятностях, лишь предположение, не доказательство. Автор с первого трая угадал. Такой вот клевый генератор рандомных строк у него. :-)


  1. Helltraitor
    02.06.2023 12:42
    +2

    Понравилась идея с плагинами, но удобство пользователей всегда на первом месте.

    К сожалению, я не могу принять сторону автора: использование открытых технологий для создания закрытого продукта (и формата) - это естественно.

    Сердцем болею за вас, сам пользуюсь Tachiyomi (легальное по для нелегальных вещей - с точки зрения правообладателя, конечно)


    1. max_xt Автор
      02.06.2023 12:42
      +1

      Я могу понять, когда закрытый формат используется закрыто внутри продукта. Но когда такой формат превращается в очередной документ, который пересылают, продают, скачивают, то это уже просто формат документа.


      1. Helltraitor
        02.06.2023 12:42

        Я в комментарии выше уже высказал свою точку зрения.

        Это неприятно, да и мне в целом авторское право не очень импонирует. Разумеется, когда в отношении твоего продукта работает право - это хорошо, в отношении оппонента - плохо.

        Но есть одно большое но: возможность передавать файл не делает сам формат открытым.

        Я попытался быть максимально корректным, но тут вы не правы.

        P.S. Отношение RuStore в регулировании подобных ситуаций - скотское. Как по мне, у вас должна быть возможность разобраться в суде


        1. max_xt Автор
          02.06.2023 12:42

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


        1. thevlad
          02.06.2023 12:42
          +3

          Это очень странно, что такое юридически "открытый формат файла"? Open Office тоже чтоли можно забанить за то, что он открывает doc и эксель?


          1. Helltraitor
            02.06.2023 12:42

            Я не юрист и данная тема требует разбирательств в соответствующих сферах.

            Если интересно мое мнение, то я могу сослаться на википедию: https://ru.m.wikipedia.org/wiki/Открытый_формат и https://ru.m.wikipedia.org/wiki/Office_Open_XML

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

            Таким образом, ставя пароль на файл правообладатель гарантирует, что его нельзя использовать не нарушив его права.

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

            @max_xt

            P.S. Надеюсь, что я понятно объяснил свою точку зрения, вы, конечно, в праве с ней не согласится


            1. thevlad
              02.06.2023 12:42
              +2

              Тоже не хочу душнить, но это тот случай когда в английской википедии написана немного другая точка зрения касательно "Открытый_формат". A doc и docx это разные вещи. Но я нашел немного другую точку зрения:

              https://forum.openoffice.org/en/forum/viewtopic.php?t=54427

              И там идет основной упор на патенты, с чем в принципе можно согласиться.


  1. thevlad
    02.06.2023 12:42
    +2

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

    https://dorotenko.pro/ru/reverse-and-law/

    1. Лицо, правомерно владеющее экземпляром программы для ЭВМ, вправе без согласия правообладателя и без выплаты дополнительного вознаграждения воспроизвести и преобразовать объектный код в исходный текст (декомпилировать программу для ЭВМ) или поручить иным лицам осуществить эти действия, если они необходимы для достижения способности к взаимодействию независимо разработанной этим лицом программы для ЭВМ с другими программами, которые могут взаимодействовать с декомпилируемой программой, при соблюдении следующих условий:

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


    1. Naves
      02.06.2023 12:42

      Вы почему-то так же как и автор статьи не цитируете следующий пункт.

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

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

      В России хоть и заявлено не прецедентное право, но все равно нужно искать правоприменительную практику по этой статье. Именно для случая чтения чужих форматов данных.


      1. max_xt Автор
        02.06.2023 12:42
        +2

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


  1. mishkin79
    02.06.2023 12:42
    +1

    Google Play vs RuStore в формате APK покажут откуда готовилось нападение) Ваша ситуация иронична и очень что-то напоминает. Скопировать(занимался вязанием, думаю этому искусству и методам записи алгоритмов столько же, сколько человечеству и претендовать на это, всё равно что копирайт на русский язык или любую лингву предъявлять), обвинить, запретить - профит. Хотя корень проблемы и суть в том что вы продаёте продукт в украденном магазине(его идее и экосистеме) и вас при этом обвиняют в воровстве и взломе даже на анекдот не налезает. Ох и отхвачу сейчас от этих "это всё не мы - это всё они".


  1. 402d
    02.06.2023 12:42

    Тут даже не знаешь чей принцип лучше. Рустора, который принимает претензии от авторов программы конкурента или Гугла, где отправляют судиться и прикладывать к претензии юридически значимые аргументы (типа идите в суд, с решением возврашайтесь)

    https://play.google.com/store/apps/details?id=com.noble.activity.printerperipage

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


    1. max_xt Автор
      02.06.2023 12:42

      Были полные перезаливы моих приложений со скриншотами, я писал жалобу - удаляли. но это было уже лет 5 назад.


  1. 402d
    02.06.2023 12:42

    Тут вопрос не в том, что вы формат реверснули. Скорее всего схемы = платный контент. А приложение конкурента это магазин готовых решений. А ваше приложение позволяет делать бесплатное их распространение. Любой онлайн кинотеатр или библиотека тоже не будут приветствовать альтернативных клиентов


    1. max_xt Автор
      02.06.2023 12:42
      +2

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


  1. Daddy_Cool
    02.06.2023 12:42
    +1

    Хм.
    1. Пусть моя программа сохраняет данные в таком формате - <название моей проги+какие-то данные> - и это всё обычный txt. Это проприетарный формат который нельзя использовать?
    2. Пусть моя программа сохраняет данные так же, но архивирует в zip.
    3. ... архивирует в zip с паролем в виде названия программы.
    ИМХО где-то в законах долно быть прописано, что если автор программы не хочет чтобы его файлы читала чужая программа - значит нельзя. А если не написано - начит можно. Ну или наоборот. Но видимо нужно вводить доппонятие - типа формат файла. Ну или создавать механизм патентования форматов - так-то это же тоже интеллектуальная собственность.


    1. ultrinfaern
      02.06.2023 12:42
      -2

      Сугубо личная точка зрения:

      zip + aes + xml (как в ориг нальной программе) - это все открытые технологии и на них или их комбинацию авторское право не распостраняется. Вы можете их читать. А вот сам пароль к AES (если он один на всех) - это данные программы и на это распостраняется авторское право. Вот если бы вместо открытых форматов был бы собственный бинарный - тогда и на него распостраняется авторское право и просто читать его нельзя.


      1. max_xt Автор
        02.06.2023 12:42
        +1

        Зачем тогда такие сложности, когда можно в любых случаях просто использовать zip с паролем? По-идее тогда это эквивалентная защита.


  1. ednersky
    02.06.2023 12:42
    +6

    RuStore пошел навстречу и разрешил опубликовать билд без этого формата.

    Гоп-стоп пошёл навстречу и оставил клиенту его жизнь, забрав только кошелёк!


    1. vvzvlad
      02.06.2023 12:42

      "а мог бы и заточкой пырнуть"


  1. Didimus
    02.06.2023 12:42
    +2

    До вашей статьи не знаю, что у рустора есть реальные пользователи. Думал, что это навроде поисковика спутник


    1. max_xt Автор
      02.06.2023 12:42

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


      1. Rasters
        02.06.2023 12:42

        Зачем такие сложности, Google Play разрешил оплату через сторонние биллинги для RU пользователей.


        1. max_xt Автор
          02.06.2023 12:42

          Вот бы еще кто-то сделал такой сторонний биллинг для приложений. У Рустора были такие планы, но, видимо, они передумали.


  1. Maxim_Q
    02.06.2023 12:42
    +2

    ...кто угодно у себя на сайте пишет, что только его приложение может открывать формат mp3, связывается с RuStore по email и требует заблокировать все плееры в магазине...

    Жду новую статью про блокировку плееров, наверное ситуация будет еще более абсурдная.