| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Самоуничтожение программы |
| Автор: tumanovalex 17.8.2007, 21:21 |
| Товарищ написал программу, теперь хочет ее защитить от некоторых недобросовестных пользователей. Можно сделать так, чтобы программа запускалась с любого носителя и потом сама себя стирала? Т.е. он хочет, чтобы запустили 1 раз с носителя, поработали с ней, оценили достоинства и недостатки, потом она бы стерлась. Можно ли это сделать? Может быть есть еще какие-нибудь эффективные способы защиты программы? |
| Автор: sentry 18.8.2007, 20:41 | ||
Например, "забыть" дать некую dll, реализующую какие-либо функции... А вообще, чтобы писать защиту, надо определить целевую аудиторию. Как уже сказал zkv, любую защиту снимут, если захотят. |
| Автор: jonie 18.8.2007, 23:06 | ||
Существуют критерии оценки надобности защиты... если вашу программу никто не бует ломать , то нужна ли она вообще?! По поводу защиты : делать версию демку, где физически нет функций - пусть пробуют. Для конечных юзеров кто купит прогу делать ее зашифрованной и ключ привязвать к железу... скажем, так поступают программы Cerber и им подобные....(http://www.securityprint.ru/cerber.html) ... правда в опред кругах взломанную ее найти можно... криптование там ГОСТ вроде...по крайней мере было 8) |
| Автор: evkwarrior 21.11.2007, 05:44 |
| Товарищи, но всё же!!! Скажите, как реализовать тот метод, который предлагал tumanovalex? Очень нужно! Exe-ник находится на жестком диске, права доступа администратора. |
| Автор: pompei 21.11.2007, 07:32 |
| Я помню делал так: экзешник "А" содержал бинарный ресурс другого экзешника "Б". "А" вытаскивал его в файл в оперативной памяти, запускал и выходил. "Б" при запуске пытался удалить "А" до тех пор, пока у него это не получалось (когда он полностью завершит работу и система освободит все его дескрипторы). После этого "Б" выполнял работу программы. В "А" можно поместить и другие файлы для "Б" и выгрузить их в виртуальные файлы в оперативной памяти. Есть недостаток этого метода: если "Б" большой, то нужно много ОЗУ, хотя свап спасает отлично. Кстати я тоже самое делал и в линуксе Я ещё делал так, чтобы можно было запускать несколько раз. Для этого в ресурсах "А" хранил целую переменную - количество оставшихся запусков. "Б" корректировал эту переменную, и если она становилась 0, то удалял "А". Потом ещё добавил такую фишку. Перед удалением "А" записывал в "А" одни нули, чтобы нальзя было потом анделетить. Потом хотел создать такую прогу, которая превращает какой-то нормальный экзешник в удаляемый, но до этого руки и не дошли. |
| Автор: evkwarrior 21.11.2007, 19:02 | ||||
Т.е. "Б" полностью содержался в виртуальной памяти. И после его завершения никаких файлов не оставалось? А можете привести пример, как создать бинарный ресурс с екзешником, и как потом его извлечь и запустить, пожалуйста?
А это что за штука, вкратце? |