Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.15;
Скачать: CL | DM;

Вниз

Защита   Найти похожие ветки 

 
Durak   (2002-04-02 17:23) [0]

Плиззз, срочно, все кто может, умоляю, подскажите как защетить прогу, чтою её могли читать только с дискеты, а на диск перекинуть не могли, ПЛИЗЗЗ


 
Alx2 ©   (2002-04-02 17:29) [1]

Прога - файл. Если можно прочитать с дискеты, то можно и записать куда-нибудь. Вопрос можно поставить по-другому: как сделать, чтобы прога запускалась только с дискеты, или, точнее, только с определенной дискеты. А тут решений множество, как и способов их обойти....


 
olookin ©   (2002-04-02 17:32) [2]

А мне в голову пришло такое решение. При старте программы проверять диск, с которого она запущена (Application.ExeName). И если диск не А, то выключать программу.


 
yaJohn ©   (2002-04-02 17:36) [3]

Так чтобы не смогли - нельзя. Смогут. Но крови попортить можно.
Напиши все в виде ДЛЛ. Сам EXE занимается только загрузкой ДЛЛ по фиксированному пути (например a:\mydll.dll) и запуском стартовой процедуры.
Можно файл ДЛЛ урезать до границы кластера + 1, а перед загрузкой - увеличивать до оригинального размера. Под ДОС это даже работало. Но это очень длинная тема.
Методов - масса и все ломаются.





 
Anatoly Podgoretsky ©   (2002-04-02 17:54) [4]

olookin © (02.04.02 17:32)
Это не препятствует "на диск перекинуть не могли"


 
olookin ©   (2002-04-02 17:56) [5]

Anatoly Podgoretsky

Да, но ведь и программа работать не будет. Задача, получается решена.


 
Reindeer Moss Eater   (2002-04-02 18:05) [6]

> olookin
subst A: C:\Folder With A Stolen Program
И имя диска у Application.ExeName будет как раз A:

:)


 
olookin ©   (2002-04-02 18:11) [7]

Reindeer Moss Eater

Ну тогда я согласен с yaJonh:

Так чтобы не смогли - нельзя. Смогут.


 
yaJohn ©   (2002-04-02 18:12) [8]

2 Reindeer Moss Eater
А это уже под силу только хакеру. :)


 
Chris ©   (2002-04-02 20:09) [9]

Есть еще вариант. Проверять серийный номер дискеты или жесткого диска.

http://delphi.mastak.ru/cgi-bin/faq.pl?look=1&id=988622197&n=15


 
Alexander Ionov   (2002-04-03 02:14) [10]

Куда вы все порулили? По-моему решается все достаточно просто.
1. Выковыриваем имя диска из Application.ExeName
2. Скармливаем его функции GetDriveType. Если она вернула DRIVE_REMOVABLE, то продолжаем работать (это будет либо обычный дисковод, либо Zip-drive), если же что-то другое - посылаем и выходим.
Блокировать переписывание файла программы с дискеты просто не имеет смысла.


 
Sat7 ©   (2002-04-03 09:57) [11]

По-моему тебе надо не просто с дискеты, а именно сопределенной дискеты. :)
У тебя есть exe-шник, который нужно защитить и куча дискет, куда ты его запишешь и откуда он должен работать.
Делается все на самом деле просто. Просто под каждый новый диск будет свой exe-шник. Дополнительно пишется небольшой патчер, который считывает серийный номер дискеты и патчит им тот файл(защищаемый exe-шник), который будет записан на дискету. В еxе-шнике такой кусок кода:
...
GetVolumeInformation(...,@res,...); // res - переменная DWORD, имя устройства "A:\" слэш в конце обязателен.
if res<> 122323455 then close;
...

Форматируешь дискету, запускаешь патчер, который берет с нее сер. номер и прописывает в exe-шник вместо 122323455. Потом копируешь пропатченный файл на дискету и ...все. Можно даже тип устройства не проверять GetDriveType().


 
Anatoly Podgoretsky ©   (2002-04-03 10:36) [12]

olookin © (02.04.02 17:56)
Задача работоспособности не ставалась, была задача о защите от копирования. Я не знаю зачем такая задача нужно, для меня и тот и другой диски и мне без разницы с какого я ее буду читать, кроме скорости конечно.

Sat7 © (03.04.02 09:57)
Существуют программы, которые при копировании не изменяют серийный номер, приходилось с этим бороться. Но если речь идет об защите, любой начинающий взломщик сделает необходимый серийный номер за несколько секунд, пользуясь только обычным инструментом.

А вот зачем Дураку это нужно, он не объясняет :-(


 
Sat7 ©   (2002-04-03 10:48) [13]

Anatoly Podgoretsky © (03.04.02 10:36)
Само собой, что все это ломается за несколько часов (минут :))), но в данной ситуации, по-моему, лучше вряд ли что-то можно придумать. Разве что только на диске дырки делать. Физические... Да и это скопируют. Вместе с серийным номером. Хотя от большинства узеров (и не только) спасет.

Durak (02.04.02 17:23)
Попробуй нестандартный формат, разные длины секторов, число секторов на дорожке поменяй. Это покруче будет.


 
Anatoly Podgoretsky ©   (2002-04-03 10:59) [14]

Sat7 © (03.04.02 10:48)
Зачем нам обсуждать посторонний вопрос, для этого надо создать отдельную ветвь.



Страницы: 1 вся ветка

Текущий архив: 2002.04.15;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.013 c
3-46263
Buh
2002-03-25 21:57
2002.04.15
События в Interbase


14-46513
Burmistroff
2002-03-06 14:17
2002.04.15
Как мне поступить? Что ответить?


3-46290
mik
2002-03-26 15:05
2002.04.15
Хочу узнать, нет ли в стандарте SQL


14-46496
Merlin
2002-03-07 12:36
2002.04.15
Дохлый осел (перевод с английского)


14-46498
Бомж
2002-03-06 20:20
2002.04.15
Надоело добираться полтора часа до работы!