Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Запретить вызов DLL-функций  (Прочитано 400 раз)
0 Пользователей и 1 Гость смотрят эту тему.
..::SCRIBE::..
Помогающий

ua
Offline Offline
Пол: Мужской
не путайте банальность с ленью=)


« : 05-04-2017 10:38 » 

Привет.

Вопрос вот в чем, как можно организовать защиту вызова функции своей dll не из своей программы?
Не важно само скрытие алгоритма в ней, тупо вызов, необходимо чтобы пользоватся ею смогла только одна приложение.

Спасибо.
Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #1 : 06-04-2017 05:04 » 

не оно?
Записан

I Have Nine Lives You Have One Only
THINK!
..::SCRIBE::..
Помогающий

ua
Offline Offline
Пол: Мужской
не путайте банальность с ленью=)


« Ответ #2 : 07-04-2017 07:07 » 

Да, спасибо, я уже похожее накопал http://stackoverflow.com/questions/27493025/get-dll-caller-info-in-delphi

А разве нельзя назвать файл программы так же?)
Записан
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 07-04-2017 07:49 » 

..::SCRIBE::.., вопрос - для чего тебе такая защита ?  Самое простое - пусть твоя программа передаст один раз в функцию некий ключ (массив байтов), по которому функция либо будет работать, либо заблокируется

наверняка это можно будет обойти, но для этого нужны либо твои исходники, либо наверняка какой-то хук можно на длл повесить, чтобы подглядеть этот ключ

от простых юзеров это поможет, от сложных не поможет ничто Улыбаюсь Тут надо задаться вопросом - какой степени защита требуется и сколько энергии ты готов на это потратить. Если прям очень надо, то, возможно, в сторону HASP попробовать смотреть
« Последнее редактирование: 07-04-2017 07:51 от Алексей++ » Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 07-04-2017 07:57 » 

От HASP отучить программу не очень сложно. Мне удалось это простой заменой в один байт, типа замены jnz на jmp. Да, пришлось поползать по дизассемблеру, но времени ушло меньше, чем на постановку защиты.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #5 : 07-04-2017 08:11 » 

RXL, так и я о том же

правда, это в случае, когда в самом устройстве нет каких-то данных, которые программа должна сначала считать для своей работы. Тут тоже придётся подглядывать как-то
Записан

..::SCRIBE::..
Помогающий

ua
Offline Offline
Пол: Мужской
не путайте банальность с ленью=)


« Ответ #6 : 07-04-2017 08:20 » new

В библиотеке будет производится генерация некоего ключа, на эту логику планируется навесить платный протектор.
Сам клиент на .NET, который ее использует, вот и проблема, чтобы обезопасить как-то вызов, логикой займется протектор.

Вообще есть идея проверять хэш программы что ее дергает, внутри самой библиотеки.
« Последнее редактирование: 07-04-2017 08:23 от ..::SCRIBE::.. » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines