Торренты: Могу ли я защитить свое программное обеспечение, отправляя неправильные байты?

937
Martijn Courteaux

Это тема, которая интересует всех. Как я могу защитить свое программное обеспечение от кражи, взлома, обратного инжиниринга?

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

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

Эта идея актуальна? Может быть, хорошие torrent-клиенты проверяют хэши от большего количества пиров, чтобы проверить, правильны ли пакеты (содержащие мои битые байты), которые я хочу заполнить, или нет?

15
Я читал, RIAA уже сделал это для музыкальных файлов. 13 лет назад 3
вы тратите свое время, вы не теряете денег от воров, по определению они никогда не купят ваше программное обеспечение с самого начала. Jarrod Roberson 13 лет назад 26
Это потерпит неудачу по причине, которую я приведу ниже. Я полагаю, что RIAA (или, скорее, MediaSentry) запустила случайные данные с именем популярной музыки (Мадонна?) - скрывая сигнал среди шума. graham.reeds 13 лет назад 0
Отбросив тот факт, что это не сработает из-за проверок CRC и т. Д., Я бы предположил, что это может быть плохой идеей по другой причине. Люди, которые крадут программное обеспечение, вероятно, в любом случае не будут платить за него, но если это не сработает, они могут сказать своим друзьям или боссам, что у вас плохое качество программного обеспечения, поэтому они тоже его не купят. ho1 13 лет назад 27
@fuzzy: Хотя это не так однозначно, как кажется, на самом деле такие люди с большей вероятностью не будут приобретать программное обеспечение. 13 лет назад 0
В большинстве случаев пиратская копия не является потерянной продажей. 13 лет назад 9
Что бы вы ни делали, убедитесь, что вам не мешает платить вашим клиентам за использование вашего программного обеспечения. user6863 13 лет назад 13
Я хотел бы предложить потратить время, чтобы убедиться, что программное обеспечение не будет легко работать при копировании. Paul Nathan 13 лет назад 0
Скорее всего, вы идете об этом все неправильно. Во-первых, действительно ли ваше программное обеспечение стоит пиратства? Если нет, то почему вы беспокоитесь? Если его еще нет в Бит-Торренте, возможно, оно не стоит пиратства. Если это так, вы опоздали. Warren P 13 лет назад 2
Смотрите эффект Стрейзанда (http://en.wikipedia.org/wiki/Streisand_effect). Быть хулиганом в своем программном обеспечении вызовет больше злой воли и плохой рекламы, чем когда-либо потерянные продажи. Fake Name 13 лет назад 2

6 ответов на вопрос

42
graham.reeds

Их торрент-приложение (пираты) просто отбросит байты, которые вы отправляете, как плохие из-за проверок CRC. Тогда этот IP забанит вас за повторное преступление.

Какой CRC использует бит торрент? Может ли быть создан пакет мусора с правильным CRC? Существуют приложения для этого для MD5, и я уверен, что настоящий CRC будет таким же простым. deft_code 13 лет назад 0
Это может быть сгенерировано, * в теории *; однако протокол BitTorrent использует хеширование SHA-1; в SHA-1 найти коллизии хешей (а это то, что нам нужно), чем в MD5. Практически, это неосуществимо в настоящее время. Piskvor 13 лет назад 16
@Caspin По сути, нет. В идеальных условиях, по-настоящему быстрому компьютеру (суперкомпьютеру) и команде криптографов потребуется хотя бы неделя, чтобы разбить хэш CRC для одного файла. Удачи с этим. Evan Plaice 13 лет назад 0
9

В. Могу ли я защитить свое программное обеспечение, отправив неправильные байты?
О. Нет, это может быть взломано в любом случае, особенно если кто-то получит в руки легальную копию.

В. Как я могу защитить свое программное обеспечение от кражи, взлома, реверс-инжиниринга?
A. Продайте его по справедливой цене, это подорвет попытки взлома.

См. Http://www.plagiarismtoday.com/2010/05/26/reflections-on-the-humble-indie-bundle-piracy/ для пункта 2. Пиратские пираты. Лучшее программное обеспечение не поможет вам. Paul Nathan 13 лет назад 0
@ Пол: Есть много людей, которые не пиратские. Есть много людей, которые отказываются платить. Но есть также некоторые люди, которые более готовы платить за что-то, если это предлагается по более низкой цене, чем более высокая. Это люди, которые будут затронуты более низкой ценой. (Хотя вы не хотите, чтобы цена была слишком низкой, я полагаю.) 13 лет назад 1
7

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

Но они сделают обратный инжиниринг и изменят свой уникальный код. Так они становятся анонимными, нет? Martijn Courteaux 13 лет назад 0
Только если они могут найти это. 13 лет назад 5
В САМОМ ДЕЛЕ!! Спасибо, просто поместите это где-нибудь в моем приложении. Но узнает ли компилятор C ++, что переменная не используется, и удалит ее? Martijn Courteaux 13 лет назад 0
@Developer Art: Если у них есть доступ к нескольким копиям программного обеспечения, они могут сделать двоичные сравнения, чтобы выяснить, насколько точно копии отличаются друг от друга и где они отличаются, поэтому, если вы не настроите путь для частей Идентификатор, который будет запутан случайным образом, может быть не так сложно выяснить. 13 лет назад 2
@JAB: Действительно, тоже правда ... * Я ненавижу компьютеры ... * Martijn Courteaux 13 лет назад 0
@Martijn - добавьте ключевое слово «volatile» в переменную. Это говорит компилятору, помимо прочего, не оптимизировать неиспользуемую переменную. Robert 13 лет назад 1
Это не сделано с одной переменной. Вы можете распространять информацию по всем модулям вашего приложения, делая вид, что действительно используете ее для каких-то целей. Это немного искусство, как сделать это ненавязчивым для любопытных глаз. Может быть, задать отдельный вопрос о методах достижения этого. Было бы интересно. 13 лет назад 2
@ Роберт: Спасибо, я постараюсь вспомнить. Martijn Courteaux 13 лет назад 0
Вы можете проверить различные сборки на предмет того, оптимизирована ли отметка или нет. Но так могут пользователи! На самом деле, ни один профессиональный взломщик не загружает материал без предварительного получения нескольких копий и сравнения их, потому что они хотят защитить свои источники. В конце концов, вы боретесь с ветряными мельницами; гораздо лучше потратить усилия на написание отличного программного обеспечения, которое поощряет пользователей платить вам, чем на прекращение копирования, которое просто побуждает их стараться не платить. 13 лет назад 18
Вы ведете тяжелую битву. Какой бы ни была ваша схема шифрования / пароля, скорее всего, организации-взломщики видели это и знают, как их взломать. У них многолетний опыт и гораздо лучшие программисты, чем у вас. Сожалею. Evan Plaice 13 лет назад 2
7
Warren P

DRM работает? Нет. Работает ли настройка плохих вещей BitTorrent / EDonkey2000? Нет. Кто-нибудь заботится о пиратстве вашего маленького приложения? Нет. Никто никогда не слышал об этом.

«Никто никогда не слышал об этом». Это хорошая точка... 13 лет назад 0
Если кто-то хочет его пиратствовать, его стоит защитить. 13 лет назад 0
@ Ben313: лучшая фраза будет «Если кто-то готов купить его, то это стоит защищать». 13 лет назад 1
Если вы не написали что-то лучше, чем AutoCad, MS Word и т. Д., Ваше программное обеспечение стоит меньше защиты, чем другие люди (Microsoft, AutoDesk), которые работают на 100 человек умнее, чем вы (один разработчик), и все же они не построили DRM, который работает. Warren P 13 лет назад 1
4
cody

bittorent и большинство других хороших программ p2p защищает себя от подобных манипуляций, используя хэши файлов, например, md5.

Согласно Wikipedia: алгоритм хэширования - SHA-1: http://en.wikipedia.org/wiki/BitTorrent_(protocol)#Creating_and_publishing_torrents - немного безопаснее, чем MD5 Piskvor 13 лет назад 1
2
SigTerm

Это тема, которая интересует всех. Как я могу защитить свое программное обеспечение от кражи, взлома, обратного инжиниринга?

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

Хранение программного обеспечения на сервере не является полностью пуленепробиваемым. Вместо взлома программного обеспечения, кто-то начнет атаковать ваш сервер, чтобы взломать и получить программное обеспечение. И всегда есть «социальные инженерные» дыры в безопасности. «держать все на сервере» будет работать лучше всего, если ваше программное обеспечение не может быть запущено на обычном компьютере (то есть требуется суперкомпьютер или компьютерный кластер). Хорошим примером этого является EVE Online - в отличие от WOW и Lineage, я не знаю эмуляторов серверов, поскольку для работы сервера требуется кластер компьютеров.

Мой собственный торрент-софт должен затем заполнять неверные данные (байты). Конечно, это должно заполнить критические байты.

  1. Если вы попытаетесь «захватить» существующий торрент, любой здравомыслящий клиент сообщит об ошибках CRC и проигнорирует ваш клиент. Все программное обеспечение p2p использует хэши.
  2. Если вы загрузите «неправильный» торрент, другой пользователь сообщит о вашем торренте как о фальшивом, поэтому никто не будет его скачивать.

вор

«Пират», потому что это называется нарушением авторских прав.