Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.07.2008, 11:54   #21
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Чтобы вытащить Ring0Sn из-под стола напишу:..........
Stilet, боюсь, что Ring0Sn так под столом и останется. Вряд ли его так поразила сама эта конструкция. Скорее: а) Вход в систему осуществляется вовсе не по факту проверки пароля, а по нажатию на кнопку. Все мы знаем, как "нажать" кнопку, даже если её "нет". б) Пароль хранится в открытом виде. в) валидность пароля можно проверить не входя в систему - это подарок для взломщика. И, скорее всего - и так далее. Вообще, некоторые хорошо известные соображения:

1. Пароль в чистом виде хранится только его если есть возможность обеспечить серьёзное его шифрование И если это действительно необходимо. В подавляющем числе случаев хранятся дайджесты, причём список алгоритмов невелик - даже известный MD5 очень давно для этого не рекомендуется.
2. Никогда, ни в коем случае, нельзя давать возможность понять является ли пароль верным до входа в охраняемую систему. Наоборот:
3. Проверку пароля на валидность надо стараться максимально запутать так, чтобы даже в случае верного пароля программа проходила долгий и нудный путь. Разных протовоотладочных способов много, очень сильно мешает отладке, например, использование диспетчерских механизмов ОС, скажем простой PostMessage случайного, автоматически согласованного, сообщения неопределённому окну, так, чтобы сообщение обрабатывалось не конкретным окном, а неизвестным заранее потоком, может так усложнить трассировку, что ломать программу будет просто невыгодно.
B_N вне форума Ответить с цитированием
Старый 11.07.2008, 12:00   #22
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Полностю поддерживаю B_N.
Хочу только добавить, что никаких сообщений выводить не надо, если пароль неверный. Лучше, чтобы при неверном пароле программа просто закрывалась.
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 11.07.2008, 12:12   #23
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Лучше, чтобы при неверном пароле программа просто закрывалась.
Это тоже легко ломается.

Я когда занимался проблемой аккаунтирования пользователей вместо того чтоб напрягать их принудительно вводить пароль просто брал их аккаунт из сетевого логина. т.е. вошел пользак в винду под своим паролем, я получаю его логин и соответственно организовываю ему личное рабпространство. ТАким образом пользунки не напрягаясь сразу попадали "к себе в кабинет", да и заломать такую штуку уж немного посложнее. Ведь согласитесь, зачем дважды вводить один и тот же аккаунт )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.07.2008, 20:15   #24
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Если кому на досуге нечего делать - вот, набросал простенькое крякми по теме. Задача - снять защиту и заставить запуститься вторую форму, пароль узнать невозможно, т.к. захеширован. ДеДе распаковывает без проблем - лень было динамически всё создавать


Цитата:
GenAcid, да мне не надо супер защиут делать) Ее все равно никто не сможет у нас в селе сломать). Я для программу для школы делаю, а там мозгов ни у кого не хватит сломать защиту.
а вот на это никогда нельзя полагаться )))

_
Вложения
Тип файла: rar IndianCode.rar (278.5 Кб, 61 просмотров)
пыщь

Последний раз редактировалось JTG; 11.07.2008 в 21:02.
JTG вне форума Ответить с цитированием
Старый 12.07.2008, 10:13   #25
Oleg Romanchuk
Ghost
Форумчанин
 
Аватар для Oleg Romanchuk
 
Регистрация: 16.08.2007
Сообщений: 143
Смех

В данном случае, могу предложить это, если нужно чтобы прога работала на одном компе)
Создаешь отдельное приложение примерный исходник:
Код:
procedure TMainForm.Pass_EditChange(Sender: TObject);
begin
  if Pass_Edit.Text='1988' then
    begin
      StatusBar1.Panels[1].Text:='пароль верный';
      Crack_BitBtn.Enabled:=true;
      Crack_BitBtn.SetFocus;
    end
    else
    StatusBar1.Panels[1].Text:='пароль верный';
   // Crack_BitBtn.Enabled:=false;
    //Pass_Edit.SetFocus;
end;

procedure TMainForm.Crack_BitBtnClick(Sender: TObject);
var
  Reg:TRegIniFile;
begin
  Reg:=TRegIniFile.Create;
  Reg.RootKey:=HKEY_LOCAL_MACHINE;

  try

    if Reg.OpenKey('SOFTWARE\MICROSOFT\DiskBasa\Option',false) = true then
      begin
        MessageBox(Handle, 'Внимание прога уже активирована!', 'Сообщение', MB_Ok+MB_Iconinformation);
        Application.Terminate;
        exit;
      end
      else
         Reg.OpenKey('SOFTWARE\MICROSOFT\DiskBasa\Option', true);
         MessageBox(Handle, 'Поздравляем, вы успешно активировали свою прогу', 'Внимание!', MB_Ok+MB_IconInformation);
         Application.Terminate;

  except
      Reg.CloseKey;
      Reg.Free;
  end;

  end;
В самой проге на событие OnShow пишешь примерно следующее:
Код:
procedure TMain_Form.LoadProgParm;
var
  Reg:TRegIniFile;
begin
  
  Application.OnHint:=ShowHintSB;
    if Table1.Active=false then
      MessageBox(Handle, 'Не могу найти базу данных', 'Ошибка', MB_OK+MB_ICONINFORMATION);
  Reg:=TRegIniFile.Create;
  Reg.RootKey:=HKEY_LOCAL_MACHINE;
    try
  if Reg.OpenKey('SOFTWARE\MICROSOFT\DiskBasa\Option', false) = false  then
    begin
    MessageBox(Handle, 'Программа не активирована, следует выполнить активаци... ', 'Ошибка', mb_Ok+MB_ICONERROR);
    MainMenuPanel.Enabled:=false;
    DBGrid1.Visible:=false;
    InformationAdrPanel1.Visible:=true;
    Editing_Menu.Enabled:=false;
    Main_Form.Caption:='Моя прога - The program is not registered is a demo the version';
    Abaut_Form.Ver_Label.Caption:='ver: Not registry';
    Abaut_Form.Ver_Label.Color:=clRed;
    end;
    finally
   end;

end;

Получается что ты создаешь как бы отделную прогу (крэк) к своей программе! Этот крэк добовляет в реестр нужную информацию, а сама программа проверяет есть ли информация, и если есть она работает

Пример оч. простой, но в полне подайдет против обычных пользователей!
Oleg Romanchuk вне форума Ответить с цитированием
Старый 15.07.2008, 11:34   #26
Ring0Sn
Форумчанин
 
Аватар для Ring0Sn
 
Регистрация: 06.09.2007
Сообщений: 239
По умолчанию

Stilet, если вам только это
Код:
If (Edit1.Text=S) And (Edit2.Text=P) Then
Begin
Button1.Enabled:=True;
End
Else
Begin
Button1.Enabled:=False;
End;
показалось удивительным в коде предложенным выше, то сочувствую...
B_N, +, это точно не защитой наз-ся.
Ring0Sn вне форума Ответить с цитированием
Старый 15.07.2008, 13:03   #27
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Неужели Индусское Крякми никто не вскрыл ?
Хех.. Надо призовой фонд организовать =)
пыщь
JTG вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пароль Terran Общие вопросы Delphi 2 12.02.2008 22:32
Пароль Михаил Юрьевич Общие вопросы Delphi 3 06.02.2008 16:44
Пароль в BDE sander БД в Delphi 4 28.10.2007 11:16
программа пароль ruslan21 Общие вопросы Delphi 3 21.06.2007 17:27
Про пароль icq! sis Безопасность, Шифрование 2 03.05.2007 20:55