Обернуть и защитить исполняемый файл - PullRequest
3 голосов
/ 04 ноября 2011

Я работаю над программным обеспечением для защиты от копирования и пытаюсь создать оболочку для любых исполняемых файлов (управляемых и неуправляемых). Эта обертка затем попытается выполнить упакованный исполняемый файл, не записывая его на диск, как обычно, и выполнит его с Process.Start().

Я использовал .Net 4.0 Assembly и Appdomain, чтобы заставить его работать, но, как я прочитал и протестировал, он будет работать только с исполняемыми файлами .Net. Как бы я обошел и выполнил любой вид исполняемого файла, не записав его «голым» на диск?

Могу ли я выполнить его, например, из зашифрованного сжатого файла? или MemoryMappedFile?

1 Ответ

13 голосов
/ 04 ноября 2011

На самом деле вы зря тратите время.Вы НЕ МОЖЕТЕ мешать кому-либо копировать ваш исполняемый файл, получать ваш код или что-либо еще.Даже если вы можете полностью защитить исполняемый файл на диске, в момент его запуска кто-то может использовать отладчик для создания дампа исполняемого файла, даже из файла с отображенной памятью.Вот как такие продукты, как Xenocode, .NET Reactor или любой другой упаковщик в этом отношении, терпят поражение.

Лучший вариант для вас - остановиться и подумать о том, чего вы действительно пытаетесь достичь,Вы обеспокоены тем, что люди нарушают лицензионное соглашение?Вы беспокоитесь о том, что ваше программное обеспечение появляется в The Pirate Bay?Если вы создаете полезное программное обеспечение, обе эти вещи являются возможностями, а не возможностями.Защитите свое программное обеспечение с помощью авторских прав, а ваши алгоритмы с помощью патентов, если это необходимо.Тогда у вас есть юридическое средство, чтобы преследовать нарушителей.

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

...