Форум: "Потрепаться";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Вниззаписать свою функцию в стороннюю DLL... Найти похожие ветки
← →
mr. Faga (2004-04-10 12:56) [40]
> Digitman ©
это понятно, осталось тока понять с чего начинать :)))
можешь подсказать как зашифрованный кусок разворачивать и передавать ему управление?
← →
Digitman © (2004-04-10 13:26) [41]
> mr. Faga
ты все-таки определись для начала, свою ДЛЛ ты намерен защищать или чужую ... от этого многое зависит ...
кр.того, определись со способами загрузки ДЛЛ : статическая, динамическая, или и то и другое допустимо ... если динамическая, то возможен ли вызов твоим (или не только твоим ?) хост приложением LoadLibraryEx вместо LoadLibrary ..
← →
mr. Faga (2004-04-10 13:35) [42]
> Digitman ©
На сколько я понял свою ДЛЛ защищать проще, я прав?
Значит на этом пока и остановлюсь :)
Загрузка будет статическая.
Вот насчет последнего не знаю, скорее всего да, хотя не знаю нужно ли это.
← →
Digitman © (2004-04-10 13:41) [43]вообще говоря, при такой размытой постановке задачи определить конкретные пути ее решения весьма сложно - никак не определено конечное число вариантов использования защищаемого ПО
если же ограничиться защитой только своих библиотечных PE-модулей, то выкрутасы с шифрованием вообще могут и не понадобиться - твоя ДЛЛ в ходе инициализации просто запрашивает у затребовавшего ее загрузку хост-процесса некую конфид.инф-цию, и если таковая отсутствует, то модуль попросту не грузится системой (если при иниц-ции модуля он возвратит системе флаг DLL_INIT_FAILURE)
← →
Digitman © (2004-04-10 13:55) [44]library MyDLL;
...
var
DefaultDLLProc: Pointer;
...
procedure DLLProcHandler(Reason: Integer);
begin
case Reason of
DLL_PROCESS_ATTACH:
if not некое_условие then
Halt(1);
end;
end;
begin
DefaultDLLProc := DLLProc;
DLLProc:= @DLLProcHandler;
DLLProcHandler(DLL_PROCESS_ATTACH);
end.
вот и вся защита)
← →
Digitman © (2004-04-10 13:58) [45]можно и еще проще, если не нужны выкрутасы с Dllmain
library MyDLL;
..
begin
if not некое_условие then
Halt(1);
end.
← →
mr. Faga (2004-04-10 14:02) [46]
> Digitman ©
> вот и вся защита)
Спасибо!
Хотя хотелось бы понять как сделать вариант с шифровкой/расшифровкой, а то этого, как ты понимаешь, для диплома маловато будет :)))
← →
Digitman © (2004-04-10 14:09) [47]
> а то этого, как ты понимаешь, для диплома маловато будет
неужели ?) ... ну эт смотря что подразумевать под некое_условие)
к тому же нашута что-то шифровать/дешифровать, если задача и так решена ? библиотека при несоблюдении "некоего условия" попросту не будет загружена, а значит и использована быть не может ..
а это самое "некое условие" можно трактовать по-разному, в зависимости от четкости определения "несанкционированности использования"
← →
Digitman © (2004-04-10 14:18) [48]если же свет клином сошелся на "что-то шифровать/дешифровать", то могу предложить вариант c шифрованием/дешифрованием ресурсных данных DLL о привязке к конкретной машине ... после создания Dll некая программулина в составе инсталлятора дозаписывает в ресурсы этой Dll зашифрованную инф-цию о привязках к некоей машине ... при своей инициализации Dll по аналогичному алгоритму получает данные о машине, на которой она в дан.момент инициализируется, берет из ресурса шифрованые данные, расшифровывает их, сравнивает с только что полученными. Условие совпадения сравниваемых данных и есть некое_условие, при несоблюдении которого ты просто говоришь системе "гуд бай", тут же выполнив Halt(1)
и всех делов !)
а уж под это дело столько воды в дипломе налить можно !
только фантазией твоей ограничено)
Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.028 c