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

Вниз

Защита приложения баз данных   Найти похожие ветки 

 
Денисыч   (2004-08-29 02:03) [0]

Добрый день.
  Хотел узнать , кто как защищает свои приложения.
Глупо написать какую-то общую базу данных ( Delphi + База данных ) и не поставить привязку к данному компу. Т.е. кто
угодно сможет воспользоваться твоим трудом.  
Я сделал так : привязал к серийнику винта + к системе , а всю
эту инфу храню в закодированном виде в файле. (стандартно - ничего особого я не придумывал)
Все бы ничего , да вот в ЕХЕ - шнике при дизассемблировании даже я смогу обойти вызов функции проверки или выход с приложения.  Что делать ?  Порекомендуйте хорошую литературу, личный опыт , FAQ по безопасности и т. д.

С уважением , Денисыч


 
DiamondShark ©   (2004-08-29 11:15) [1]

Защита имеет смысл только если затраты на систему защиты не превышают затрат на приложение.


 
Денисыч   (2004-08-29 14:58) [2]

Это понятно , а вот конкретнее


 
Vemer ©   (2004-08-29 18:03) [3]

Кейгенератором беру Volume_ID + Volume_Size, делаю из них хэш-винегрет, пишу в текстовый файл через IntToHex. На запуске проги проверяю соответствие. Мой заказчик сам сильно заинтересован в защите БД, поэтому кейгенератор у него.

Базу данных (IB/FB) защищаю так:
http://delphibase.endimus.com/?action=addfunc&topic=baseIB


 
VID ©   (2004-08-29 22:21) [4]

Vemer ©   (29.08.04 18:03) [3]
ну нифига себе линк ты дал... добавление функции в разделе Interbase :)


 
Vemer ©   (2004-08-30 00:22) [5]

Вот правильный линк.. Из 2-х функций выбор небольшой :).
http://delphibase.endimus.com/?action=viewtopic&topic=baseIB


 
Карелин Артем ©   (2004-08-30 09:50) [6]

Я беру несколько номеров из оборудования, делаю хэш из них, который надо сообщить мне.
На основе этого ключа хэшированием делается другой ключ, который надо ввести в программе.
На основе этих двух ключей получается путем хэширования третий ключ (ключ ответа), который будет паролем для расшифровки некоторых данных, без которых программа не запустится. Для повышения криптостойкости программы эти данные еще и сжаты.
Ну и выбор метода хэширования с методом раскодирования идет динамически, никаких проверок на правильность введенных данных нет, закриптованные данные фактически являются частью программы. Всего около 200 000 ассемблерных инструкций между получением ключа ответа и нормальной работы программы.
Чтобы всякие DeDe не помогали исследовать, есть всякие ухищрения типа отлинковки форм, изменения DPR-файла и т.д.


 
Денисыч   (2004-08-30 22:50) [7]


> Vemer


> Карелин Артем

Спасибо.  

> Чтобы всякие DeDe не помогали исследовать, есть всякие ухищрения
> типа отлинковки форм, изменения DPR-файла и т.д.

Я делал так : между инструкциями идетификации помещал пару инструкций инициализации , т.е при удалении блока кода приложение работать не будет.  Это типа такого или нет ?
Если нет , то где ты это вычитал - книга , ссылка и т.д.


 
3APA3A ©   (2004-08-30 23:32) [8]

Хм.. можно еще *.exe чем нибудь типа ASPack"а сжать - это сильно затруднит жизнь любителям дизассемблирования...


 
Карелин Артем ©   (2004-08-31 08:18) [9]

Денисыч   (30.08.04 22:50) [7]
Процедуры идентификации нет как таковой. Есть процедура расшифровки формы на основе введенных ключей.
Если форма в проект не прилинкована, DeDe не показывает методы формы.
В инете есть всякие статьи, но обычно они немного туповаты, как пресловутый AKM на
Если насильно заставить выводить формы на экран типа как в следующем коде
 Application.Initialize;
 Form12:=TForm12.Create(Application);
 Form12.ShowModal;
 Application.Run;

некоторым исследовательским программам сносит башню. Одна из версий DeDe давала AV на нем.
Насчет всяких паковщиков: есть на них распаковщики, так что после упаковки надо еще на них напускать утиль, который меняет код программы чтобы труднее было распаковать. Распаковать опытный человек может очень быстро.


 
Денисыч   (2004-09-02 00:28) [10]

DeDe - это конечно замечательно и сильно , но есть и другие дизассемблировщики.  Я имею ввиду последовательность ходов для
хорошей защиты.  


>  Всего около 200 000 ассемблерных инструкций между получением
> ключа ответа и нормальной работы программы.


А ключ ответа  все равно с чем-то сравнивается.
Т.е.  всегда есть место типа  

if  myKey <> RightKey then  { Приложение вырубается }  


> закриптованные данные фактически являются частью программы.
>

В них хранятся перременные или кусок самой проги (команды) ?  
Если кусок проги , то как это вообще возможно ?

Про это , если можно , поподробнее.  
И все- таки , какая есть литература по этому ?

Заранее спасибо за инфу.

Можете писать на мыло c_den@mail.ru


 
Карелин Артем ©   (2004-09-02 10:55) [11]

>>if  myKey <> RightKey then  { Приложение вырубается }  
Нету конечно такого. Самый простой способ: закриптовать форму, поместить ее в код и раскриптовывать. Если хэш от ключей правильный (раскриптованы данные правильно) форма может быть создана, если нет - будет исключительная ситуация.
Насчет этого можно почитать на Королевстве Дельфи в разделе АКМ. Хотя любой дурак догадается, что длинные последовательности команд типа DB в дизассемблированном коде должны быть обьектом пристального внимания. И изготовление класса с публично видимым методом раскриптовки в статьях про прятки форм является очень нехорошим приемом.
Есть желание общаться по данной теме - ICQ 3030315.



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

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

Наверх




Память: 0.5 MB
Время: 0.025 c
14-1095319510
VID
2004-09-16 11:25
2004.10.03
Зацените, плиз...


4-1093427216
beatles_bntu
2004-08-25 13:46
2004.10.03
Системный запуск приложения под XP


1-1095335590
gsk
2004-09-16 15:53
2004.10.03
TStringList


14-1094811290
DSKalugin
2004-09-10 14:14
2004.10.03
вчера вышл новая версия IBExpert !!!


4-1093414457
46_55_41_44
2004-08-25 10:14
2004.10.03
У кого есть Windows Messages с объяснениями?