Primo Chalice Ответов: 3

Как мне предотвратить мой VB.NET выходной файл (.exe) из копируемого файла?


Привет,


Я делаю приложение в Visual Studio 2017 (VB.NET) и я хочу написать код, который предотвратит копирование исполняемого файла.

Я действительно видел в Интернете решение, которое указывало на упоминание серийного номера жесткого диска системы и которое предотвратит установку приложения в других системах.


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


Пожалуйста помочь.

Что я уже пробовал:

До сих пор я ничего не пробовал.

3 Ответов

Рейтинг:
2

DanielBrownAU

Короткая версия: вы не можете (Ну не легко и не стоит тратить время)

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

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

-ДЕЦИБЕЛ


Рейтинг:
2

Patrice T

Цитата:
Как мне предотвратить мой VB.NET выходной файл (.exe) из копируемого файла?

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

Это не мешает установке, это предотвращает использование на другом компьютере.
Цитата:
так что эта идея не кажется уместной.

Это единственный путь.

В принципе, ваше приложение начинается так:
if license file not exist then
  ask for a valid license file
  stop app
endif
read license file
if not license file then
  ask for a valid license file
  stop app
endif
if license don't match then
  ask for a valid license file
  stop app
endif
// license checked
do stuff


Рейтинг:
1

Maciej Los

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

Базовая идея очень похожа на хорошо известные решения: каждая копия вашего приложения должна получить определенный серийный номер (SN). Затем вы должны создать установщик, который будет:
1) требовать от пользователя ввода SN
2) подключитесь к своей базе данных и проверьте, используется ли этот SN уже сейчас
3) в зависимости от результата в 2) разрешить/запретить дальнейший процесс установки.

Примечание: в процессе установки вы должны записать информацию (скрытую для пользователя), например SN, о том, что приложение было установлено правильно. Если SN не существует, исполняемый файл не будет запущен. Видеть: Где я должен хранить свои данные?[^]


Wendelius

Прекрасно объяснил!

Maciej Los

Спасибо, Мика.