Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
withnofear
1 / 1 / 0
Регистрация: 21.11.2013
Сообщений: 65
1

Логин для доступа в программу

01.03.2015, 20:31. Просмотров 909. Ответов 6
Метки нет (Все метки)

Хотелось бы услышать насколько надежна такая проверка при входе в программу, если нет - то что посоветуете? Насколько просто такое взломать имея exe программы? Какие еще способы защиты посоветуете?
Идея в том, что перед запуском самой программы показывается форма для логина и идет проверка пароля, при неверном пароле - программа закрывается:
Delphi
1
2
3
4
5
6
  if md5(maskedit1.Text) = '6BE802F41E49091DDWFB751B32F8A387' then
   begin
    form2.Visible:=false;
    application.ShowMainForm:= true;
    form1.Visible:=true;
   end else application.Terminate;
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2015, 20:31
Ответы с готовыми решениями:

Как на программу поставить логин/пароль?
как на програму поставить пороль подскажити я просто первый раз на делфи пороль...

Разработать программное приложение, которое формирует и печатает уникальный логин для каждого ученика
Может кто нибудь сделать задание по делфи: Исходные данные:количество...

Составить программу для определения указанных ниже параметров треугольника. Выполнить программу для конкретных значений
Заданы сторона треугольника и два прилежащих к ней угла. Найти углы и стороны.(...

Передать серверу логин и пароль для авторитизации, но пароль нужно передать в md5
Нужно передать серверу логин и пароль для авторитизации, но пароль нужно...

Загвоздка с созданной вручную процедурой ShowTime для доступа к компонентам формы напрямую
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes,...

6
krapotkin
3443 / 3046 / 1051
Регистрация: 14.04.2014
Сообщений: 14,765
Записей в блоге: 15
01.03.2015, 23:04 2
в коде программы неважно с чем сравнивать - со сложным паролем или нет
заменить проверку на 0 0 0
и оно само дальше пойдет

Добавлено через 3 минуты
алгоритмы хорошей защиты должны раскидывать данные по всей программе
а потом таймерами, контрольными суммами и много чем еще случайно приводить к неработоспособности кода
эти алгоритмы, как сигналки на машину, надо придумывать в индивидуальном порядке

ну и большие программы существенно легче защищать чем малые
1
withnofear
1 / 1 / 0
Регистрация: 21.11.2013
Сообщений: 65
02.03.2015, 18:18  [ТС] 3
Насколько просто сделать такую замену в exe? Как можно улучшить защиту?
Мне не надо уровень Пентагона, но хотя бы что-то такое, что не смог бы взломать школьник... Какие еще идеи возможны при условии что будет доступ к exe.
0
vlados2441
2 / 2 / 4
Регистрация: 11.01.2015
Сообщений: 110
03.03.2015, 22:28 4
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TForm1.FormActivate(Sender: TObject);
var
  pas: string;
begin
   pas:= InputBox('Password', 'Пожалуйста, введите пароль','');
   if pas='123' then
   begin
     pas:= InputBox('Password', 'Пожалуйста, введите пароль','');
   end
   else
   begin
    repeat
     MessageDlg('Пароль неверный',mtError,[mbok],0);
        pas:= InputBox('Password', 'Пожалуйста, введите пароль','');
    until pas='123';
   end;
end;
1
withnofear
1 / 1 / 0
Регистрация: 21.11.2013
Сообщений: 65
04.03.2015, 18:05  [ТС] 5
И чем такой вариант лучще?
0
krapotkin
3443 / 3046 / 1051
Регистрация: 14.04.2014
Сообщений: 14,765
Записей в блоге: 15
05.03.2015, 00:53 6
Лучший ответ Сообщение было отмечено withnofear как решение

Решение

ничем
для прямо защиты-защиты просто проверки в коде - это баловство
1. хранить пароль внутри программы - странно, можно хранить md5(пароль+некий секретный набор символов) в INI
2. при вводе шифровать введенный ответ тем же способом и сравнивать с записанным
3. если пароль подошел, снять растяжки в разных местах программы, если нас просто вскрыли, пропустив проверку пароля, секретики сработают позже, непонятно с чего.

постановка растяжек - разбей полученный от пароля md5 на части по 4 байта получишь 4 32-бит числа, первое например 6BE802F4
к каждому из этих чисел добавь XOR к-нить 4 32-бит константы например для 1-го: 17EF1405
получим 6BE802F4 xor 17EF1405 = 7C0716F1
это число храним в одном юните
остальные так же в еще в разных местах
по таймеру случайно через 5-7 минут собираем пароль еще раз и сравниваем с сохраненным
если не подошел, зануляем несколько удобных переменных в программе
она вылетит с криком Access Violation
чем сложнее и чаще будут проверки пароля, тем меньше желающих добьет вашу защиту до конца
1
northener
пофигист широкого профиля
3427 / 2326 / 631
Регистрация: 15.07.2013
Сообщений: 13,779
05.03.2015, 02:09 7
Цитата Сообщение от withnofear Посмотреть сообщение
но хотя бы что-то такое, что не смог бы взломать школьник
Школьник школьнику рознь. Школьник твоего уровня взломать твою защиту не сможет. Гарантирую.
0
05.03.2015, 02:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2015, 02:09

Не станет ли приведенный код работы с файлом препятствием для доступа к нему из других приложений
Добрый день. Обрабатываю на Delphi данные выгружаемые сторонней программой в...

Запомнить логин
Функциональность, загнавшая меня в тупик, как не очень опытного программиста...

Логин Пароль
Доброго времени суток помогите плз ато голову сломал (или мож фантазии не...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru