Я буду помогать упростить курс, который использует лицензированное программное обеспечение. Программное обеспечение является несколько дорогим и позволяет только ограниченное количество параллельных установок, поэтому что я сделаю, должен установить один экземпляр на зашифрованном Виртуальном диске с Ubuntu (или некоторая другая разновидность Linux) установленный. Только для уменьшения шанса любого ненужного ограбления от появления я намереваюсь запланировать (использование крона) самоликвидироваться сценарий для выполнения сразу после прошлого дня курса. (Или самое позднее, во время первой инстанции загружаются после прошлого дня.)
Так, как я люблю бесплатное программное обеспечение и проекты с открытым исходным кодом (и краудсорсинг в целом), я также испытываю здоровое уважение к коммерческому программному обеспечению и время и усилия, которые разработчики приложили к предложению хорошего продукта - я не хочу заканчивать тем непреднамеренно, что способствовал пиратству их крови, пота и слез.
Ценил бы любую идею о том, как реализовать, это сам разрушает сценарий на машине Linux.
Как упомянуто несколько раз, удаление зашифрованного изображения должно быть более чем достаточно. Другой подход должен был бы установить приложение на своем собственном разделе и вытереть его впоследствии dd.
dd if=/dev/zero of=/dev/TARGETPARTITION bs=1M
Это перезапишет все с нулем, которого является достаточно для удаления данных вне восстановления.
Уничтожать все, кажется, немного излишества, как насчет просто удалить/не остановить Вашу программу.
rm -rf /path/to/your/program/
Или как насчет Вас реализуют нормальный сервер лицензий, с которым должна связаться программа, прежде чем она сможет запуститься?
Обновление: Как нерешенный вопрос, Вы планируете уничтожить пользовательские данные, а также Вашу программу? Или пользовательские данные хранятся в другом месте?
И возможно пользователь должен получить некоторое уведомление nagware, которое Вы планируете, уничтожают все! Что-то как
- "Это программное обеспечение будет сам разрушать, если Вы не заплатите больше денег, Вы имеете X дней в запасе".
Как пользователь я был бы действительно расстроен, если бы Вы просто уничтожили что-то в моем компьютере, даже не говоря мне, что это собиралось произойти (таким образом, я, по крайней мере, получил некоторый шанс влияния на результат).
Это довольно плохо для Вашей компании, если бы все Ваши платящие костюмеры закончили бы тем, что ненавидели Вас.
Я не знаю, какова Ваша установка, но если можно потребовать, чтобы пользователи были онлайн, затем Вы могли бы хотеть взять другую тактику - пытаются загрузить программное обеспечение по сетевому соединению каждый раз, когда они выполняют его. Это только жизнеспособно, и это зависит от Вас способность выпустить некоторый идентификатор отдельным пользователям. У Вас был бы тупик на VM, и тупик автосмонтирует удаленный сервер и выполнит двоичный файл оттуда. Ничто, что они не могли обойти с небольшим количеством работы, но это, по крайней мере, будет более твердо, чем обходить авторазрушение.
Поочередно, у Вас мог быть удаленный сервер, отвечают ключами и сохраняют зашифрованную версию программы на диске - тупик запрашивает сервер для ключей, дешифрует и запускает программу, удаляя дешифрованный двоичный файл как соответствующий. Это также было бы более трудно обойти, но снова требует уникальных идентификаторов пользователей (который не может быть возможен для Вас).
Немного старый, но хорошо. Согласно той установке, я действительно просто зашифровал бы файловую систему VM, и во время сессий (предполагающий, что они объединяются в сеть), Вы удаленно вошли бы в систему. Если бы они скопировали бы VM, у них был бы к "в лоб" пароль, едва что должны быть готовыми Ваши пользователи :)
т.е. если Вы не делаете, обратите внимание, может зашифровать точку монтирования:Примечание: эта система защиты недопустима, по-видимому, в некоторых странах/состояниях? (хорошо в США, но Вы, кажется, из Англии?):
dd if=/dev/urandom of=/home/user/virtualfolder bs=16065b count=100
modprobe loop
modprobe cryptoloop
modprobe aes
losetup -e aes /dev/loop1 ./virtualfolder
password: <enter your password here which you don't show to the users>
mkreiserfs /dev/loop1
mkdir /theprogram
mount -o loop,encryption=aes,acl ./virtualdrive /theprogram
password:<enter the same passy>
(Каждый раз Вы хотите получить доступ к/theprogram, снова делают):
mount -o loop,encryption=aes,acl ./virtualdrive /theprogram
password:<enter the same passy>
umount /theprogram
losetup -d /dev/loop1
rmmod aes
rmmod cryptoloop
rmmod loop
При выполнении заставьте папку программного обеспечения быть похожей просто на файл случайных байтов.
Можно также удостовериться учетные записи пользователей, которые они используют во время сессии VM, не имеют su
права в случае, если они копируют целую вещь.