Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.04.15;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.005 c
3-46285
Sewix
2002-03-26 13:46
2002.04.15
поиск по БД (Access)


6-46461
Vlad__
2002-01-31 15:38
2002.04.15
ICS компоненты ( сокеты )


14-46492
VuDZ
2002-03-06 17:21
2002.04.15
2 Mike Goblin


1-46302
Дима2
2002-04-02 16:40
2002.04.15
PolyLine


1-46363
Gellalina
2002-04-04 13:30
2002.04.15
Передать значение переменной из Unit1 в Unit2





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский