Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 13.10.2010
Сообщений: 3

Защита приложения...

13.10.2010, 17:14. Показов 1918. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно написать программку ,защита приложения с использованием установочного компакт диска..
Не знаю как и с чего начать...Запуск приложения должно осуществляться только при наличии установочного диска в приводе
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.10.2010, 17:14
Ответы с готовыми решениями:

Защита своего приложения в Delphi
Всем добрый вечер. Сегодня передо мной встал такой вопрос: Как скрыть происхождение программы (среда программирования, в которой она была...

Защита приложения программой ASProtect 32
Всем здравствуйте.пытаюсь защитить программу от копирования путем защиты. ASProtect .там есть защита путем привязки .Hardware ID.так вот...

Защита от некорректного ввода и перезапуск консольного приложения
Здравствуйте. Такой вопрос к вам, возможно ли ограничить вводимые символы в консольное приложение? Знаю как через case защитить edit, но...

13
 Аватар для Sergiuz
161 / 159 / 39
Регистрация: 10.10.2010
Сообщений: 461
13.10.2010, 17:44
Проверить наличие файла на диске:
Delphi
1
2
3
4
Procedure Form1.Form1Create ();
begin
If not Filexists (Filename) then Close;
end;
1
0 / 0 / 0
Регистрация: 13.10.2010
Сообщений: 3
13.10.2010, 22:54  [ТС]
Такой вариант не подойдет.....это надо каждый раз прописывать имя файла..
0
 Аватар для Sergiuz
161 / 159 / 39
Регистрация: 10.10.2010
Сообщений: 461
13.10.2010, 23:12
Цитата Сообщение от demon89 Посмотреть сообщение
Такой вариант не подойдет.....это надо каждый раз прописывать имя файла..
куда прописывать

FileName:=%CDRom%\Secret\thiisSecureDisk .txt

запиши на диск какой нить уникальный файл и проверяй есть ли он на месте или нет
0
 Аватар для STRATEG
1174 / 480 / 83
Регистрация: 04.03.2010
Сообщений: 1,019
13.10.2010, 23:25
Sergiuz Идея более менее нормальная для быстрого ответа. Как вариант можно. Но если demon89 вы собираетесь делать это с расчетом, что все будет как хотите, без диска все будут "просто гулять" , то ошибаетесь. Тут придется потрудиться, обходя стандартные методы решения задачи. Т.к. проверка файла для взломщика (или просто халявщика с мозгами) не устрашит. Файл найдут,заберут и прикрутят к обычной болванке которая станет "установочным диском". Более сложные последовательности проверок позволят хоть как то от обычных халявщиков спастись. Последовательная проверка пары, тройки файлов на наличие + определенные атрибуты + дата создания (имеется ввиду что 1файл создан раньше второго, 3 раньше 2 например). Все достаточно просто изменить и опять же получить доступ к программе. Но не для "простых смертных".
0
 Аватар для Sergiuz
161 / 159 / 39
Регистрация: 10.10.2010
Сообщений: 461
14.10.2010, 10:47
STRATEG, Ога нужно потом еще сделать защиту на копирование диска, к примеру какой нить StarForce.
0
Йошь-мыслитель
 Аватар для Xander Bass
126 / 120 / 26
Регистрация: 22.02.2009
Сообщений: 706
Записей в блоге: 5
14.10.2010, 11:23
Цитата Сообщение от demon89 Посмотреть сообщение
Запуск приложения должно осуществляться только при наличии установочного диска в приводе
Ну и прекрасно! Сделайте, чтобы приложение запускалось только с CD-ROM'а. Тот же алгоритм, что описывал Sergiuz, только проверять путь к самому приложению. Например так:

Delphi
1
2
3
4
5
if Application.Exename <> %CDRom%\AppName.exe then
begin
  MessageBox(Handle,'Пшёл нафиг, слонеГ!','АшиПкО',MB_ICONERROR+MB_OK);
  Application.Terminate
end
Самый брутальный способ

Добавлено через 57 секунд
Правда с учётом современных виртуалок это не поможет.
0
 Аватар для Sergiuz
161 / 159 / 39
Регистрация: 10.10.2010
Сообщений: 461
14.10.2010, 12:08
И еще я как то встречал CD диск со встроенным серийным номером, который не может с эмулировать большинство виртуалок, поищи этот способ в инете.
0
 Аватар для STRATEG
1174 / 480 / 83
Регистрация: 04.03.2010
Сообщений: 1,019
14.10.2010, 14:52
Xander_Bass не поможет в любом случае. Во первых не обязательно на компах одинаковые названия дисков будут, во-вторых проверив Disk:\File.exe вы тем самым ничего не проверили. Файл можно копировать в корень любого диска, флэхи. (проверка на тип носителя тоже не сделает погоды)
0
Йошь-мыслитель
 Аватар для Xander Bass
126 / 120 / 26
Регистрация: 22.02.2009
Сообщений: 706
Записей в блоге: 5
14.10.2010, 16:35
STRATEG, необязательно... Можно даже так.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function VerifyDrive: boolean;
var
  cd, vd: string;
  ld, c : dword;
  res   : boolean;
begin
  res:=FALSE;
  cd:=ExtractFileDrive(Application.ExeName);
  cd:=cd+'\';
  ld:= GetLogicalDrives;
  for c:=0 to 25 do
  begin
    if (ld and ($0001 shl c)) > 0 then
    begin
      vd:=Chr(Ord('A')+c)+':\';
      if (cd = vd) and ((GetDriveType(PChar(vd)) = DRIVE_CDROM) then res:=TRUE
    end
  end
end;
 
procedure TForm1.Form1Create(Sender: TObject);
begin
  if VerifyDrive then
  begin
    MessageBox(Handle,'ПшОл нафиг, слонеГ!','АшиПкО',MB_ICONERROR+MB_OK);
    Application.Terminate
  end
end;
Таким образом мы проверим тип текущего привода. Если он окажется не CDRom'ом, тогда приложение вырубится.
1
 Аватар для STRATEG
1174 / 480 / 83
Регистрация: 04.03.2010
Сообщений: 1,019
14.10.2010, 21:54
Xander_Bass Ты читал что я писал?
во-вторых проверив Disk:\File.exe вы тем самым ничего не проверили. Файл можно копировать в корень любого диска, флэхи. (проверка на тип носителя тоже не сделает погоды)
Я же вам написал, проверка типа не имеет смысла, что вы тем самым хотите получить? Защиту? А не думали о том, что все можно записать на другой диск, как не странно который будет иметь тип Cd-Rom.

function VerifyDrive: boolean;
var
cd, vd: string;
ld, c : dword;
res : boolean;
begin
res:=FALSE;
cd:=ExtractFileDrive(Application.ExeName );
cd:=cd+'\';
ld:= GetLogicalDrives;
for c:=0 to 25 do
begin
if (ld and ($0001 shl c)) > 0 then
begin
vd:=Chr(Ord('A')+c)+':\';
if (cd = vd) and ((GetDriveType(PChar(vd)) = DRIVE_CDROM) then res:=TRUE
end
end
end;
Эта самая непонятна зачем созданная и не имеющая смысла функция. Зачем бежать по 26 девайсам и проверять (наш ли девайс) и (Cd-Rom ли это). Нельзя взять и проверить сразу тип ExtractFileDrive(Application.ExeName)??? Подумай что тебе даст твой код.
0
 Аватар для Sergiuz
161 / 159 / 39
Регистрация: 10.10.2010
Сообщений: 461
14.10.2010, 23:52
STRATEG, есть идея получше выполнить изначально поставленную задачу?
0
 Аватар для STRATEG
1174 / 480 / 83
Регистрация: 04.03.2010
Сообщений: 1,019
15.10.2010, 08:11
Некогда заморачиваться с неоплачиваемыми вопросами. Вообще в начале темы я писал как можно сделать.
Несколько файлов, определенные атрибуты, дата создания каждого файла по коэффициенту связанна с датой другого, и прочие таких хирости. Этого хватит спастись хотябы от простого юзера.


P.S. Это не есть полное решение задачи, а небольшое предложение набросанное за пару минут.
0
Йошь-мыслитель
 Аватар для Xander Bass
126 / 120 / 26
Регистрация: 22.02.2009
Сообщений: 706
Записей в блоге: 5
15.10.2010, 09:18
Цитата Сообщение от STRATEG Посмотреть сообщение
Я же вам написал, проверка типа не имеет смысла, что вы тем самым хотите получить? Защиту? А не думали о том, что все можно записать на другой диск, как не странно который будет иметь тип Cd-Rom.
Идеальной защиты не существует вообще. А пугнуть обычного пользователя может и вышеприведённый метод. Есть куча алгоритмов. Но у ВСЕХ этих алгоритмов есть один существенный недостаток - их всегда можно обойти.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.10.2010, 09:18
Помогаю со студенческими работами здесь

Покупка приложения или отмена работы приложения
Приветствую. Допустим я создам свою программу для небольшой компании. Они возьмут ее на пару недель тестировать, проверять все ли так...

Как узнать результат функции приложения A из приложения В
Приложение А работает и вернула значение функции True или False. Как узнать об этом из приложения B? (Оба приложения работают в оконном...

Запуск приложения через батник из приложения
Суть такая, у меня есть батник который выполняет некую команду записывая результат в файл и после запуская саму программу. Суть в том...

Защита приложения
Давай пользователю в работу приложение возможно ли сделать так чтобы он не видел - дерево таблицы-запросы-формы-отчеты (слева в access) ...

Защита приложения C#
Есть программа - менеджер, которая подгружает С++ длл-ки. Каждая обрабатывает пакет и передает на следующую длл-ку дальше для обработки. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru