Аннаката верна. На самом деле все, что вы можете сделать, - это сделать его более трудным (и дорогостоящим) для обратного инжиниринга программного обеспечения.
Моя компания определила несколько областей, в которых мы хотели максимально усложнить реверс-инжиниринг. Например, наши файлы представляют собой двоичный формат, который каждый объект в нашей иерархии отвечает за сохранение себя и считывание правильной версии. Это означает, что для человека, который будет читать наши файлы, он будет копировать всю нашу иерархию в коде, который он создает для чтения наших файлов. Кроме того, большая часть информации в файле Job полезна без соответствующего бита в файлах стандартов магазина. Таким образом, они должны выполнить работу дважды, чтобы понять, что говорится в файле задания.
Несколько критических областей (защита ключа, связь с нашими металлорежущими станками) находятся в Win32DLL. Это означает, что они должны знать сборку и как сделать DLL, которая реплицирует другие сигнатуры DLL, чтобы перепроектировать наше программное обеспечение. Плюс наш дизайн с нашим программным обеспечением CAM заключается в том, что он очень интерактивен с режущим станком (обмен информацией происходит постоянно)
Из тех немногих случаев, когда мы слышали о конкурентах, пытающихся разобраться с нашими машинами в одиночку, они заменили электронику своей собственной, чтобы закончить работу. Основные деньги, чтобы сделать это.
Часть предпринятых нами шагов была основана на нашем собственном опыте, связанном с попытками справиться с машинами и программным обеспечением конкурентов. Мы взяли этот опыт и узнали, как настроить нашу настройку. Конечно, у нас есть ограничения в том, что мы не собираемся жертвовать надежностью или обслуживанием только ради победы над реверс-инжинирингом.
В вашем случае вам нужно будет спросить себя, какая часть вашего программного обеспечения будет интересна вашим конкурентам, и действовать дальше. Если вы являетесь разработчиком вертикального рынка (управление машиной, специализированный учет и т. Д.), Я предлагаю использовать USB-ключ для управления программным обеспечением.
В противном случае используйте систему серийных номеров и признайте, что люди собираются пиратствовать ваше программное обеспечение и встраивать его в вашу бизнес-модель. Целью схемы серийных номеров является то, что она относительно ненавязчива и препятствует причинному копированию, а также дает вам удаленный шанс отследить, откуда пришла копия.