Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.65/26: Рейтинг темы: голосов - 26, средняя оценка - 4.65
 Аватар для irineyxxx
151 / 53 / 11
Регистрация: 18.09.2011
Сообщений: 730

Запрет использования .dll третьими лицами

29.01.2012, 02:53. Показов 5196. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот имеется программа, которая использует определенный .dll библиотеку, как можно запретить его использовать другим лицам - программистам ?! (если данная библиотека очень важна для личного использования)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.01.2012, 02:53
Ответы с готовыми решениями:

Запрет использования запроса
Есть допустим сайт www.site.ru, авторизовашись на сайте и пройдя по любой ссылке в строке браузера останется запрос. Что-то вроде этого,...

Запрет использования микрофона
Как организовать запрет использования микрофона. У меня есть приложение, в нем есть видеозапись, я не хочу, чтобы ее можно было записать...

Запрет на использования буфера обмена
Задача такова: нужно запустить 4 блокнота (процесса) с запретом использования для них буфера обмена . То есть , напечатали текст , а буфер...

26
 Аватар для Mikant
1322 / 995 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
29.01.2012, 03:35
Лучший ответ Сообщение было отмечено как решение

Решение

никак, сожалею...

зы. всё (возможное) дальнейшее обсуждение сабжа будет сведено к первому слову моего поста
1
 Аватар для irineyxxx
151 / 53 / 11
Регистрация: 18.09.2011
Сообщений: 730
29.01.2012, 04:00  [ТС]
Всё равно как-то делают ведь, либо зашифровать как-нибудь, либо доступ запретить
0
 Аватар для Mikant
1322 / 995 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
29.01.2012, 04:07
Цитата Сообщение от irineyxxx Посмотреть сообщение
зашифровать как-нибудь
чётко... и как этим пользоваться из "программа, которая использует определенный .dll"?))
Цитата Сообщение от irineyxxx Посмотреть сообщение
либо доступ запретить
точно! только как?=))))) (возвращаемся к первому посту)
0
 Аватар для irineyxxx
151 / 53 / 11
Регистрация: 18.09.2011
Сообщений: 730
29.01.2012, 04:50  [ТС]
Mikant, да нее не реально ))) нету ничего не возможного - всё равно найду способ
0
 Аватар для Mikant
1322 / 995 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
29.01.2012, 04:56
Цитата Сообщение от irineyxxx Посмотреть сообщение
Mikant, да нее не реально ))) нету ничего не возможного - всё равно найду способ
полностью упаковать эту либу на флешку/хардверный ключ) с хитрым шифрованием) да, сработает, только просто "пользоваться" ей не будет больше возможности))
0
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
 Аватар для magirus
28049 / 15785 / 983
Регистрация: 15.09.2009
Сообщений: 67,752
Записей в блоге: 78
29.01.2012, 05:12
не выносить в либу код. использовать только в
Цитата Сообщение от irineyxxx Посмотреть сообщение
программа, которая использует определенный
теперь уже в программе код... а внутри программы можешь хоть обшифроваться, расшифровав перед применением.
0
 Аватар для ibmpc
80 / 78 / 10
Регистрация: 29.12.2011
Сообщений: 183
29.01.2012, 16:32
Спрятать библиотеку в ресурсах и до момента использования кода хранящегося в ней вытащить наружу. Еще изменить модификаторы доступа к коду на самые защишенные по возможности private -> protected internal. Пройтись по коду обфуксатором. Хранить библиотеку в хранилище с ограниченным доступом. При изменении пути к библиотеке использовать ЭТИ знания для сохранения работоспособности. Закинуть библиотеку в шифрованный контейнер по типу тех, что используются при сжатии исполняемых файлов (exe, dll) - к сожалению название архиватора забыл (он специализированный именно для этого). При упаковке он создает в "начале" исполняемого файла вкрапление своего кода, который занимается распаковкой.
P.S. Думаю найдется еще несколько десятков вариации решения данной задачи. Google - ищи готовые решения.
1
 Аватар для sau
2773 / 2073 / 386
Регистрация: 22.07.2011
Сообщений: 7,820
29.01.2012, 18:43
Я бы еще в сторону CAS посмотрел
http://msdn.microsoft.com/ru-r... s.90).aspx
http://msdn.microsoft.com/ru-r... s.90).aspx


C#
1
2
3
4
5
6
7
8
9
10
//класс в твоей защищенной сборке
[PrincipalPermission(System.Security.Permissions.SecurityAction.Demand, Name = "sau", Role = "My", Authenticated = true)]
    public class Class1
    {
        public void Test()
        {
            int x = 0;
            x++;
        }
    }
- запретит пользовать класс всем кроме "sau" с ролью "my", таким образом можно определять какие методы или классы может использовать тот или иной юзер, после чего делаем обфуськацию и ваши коллеги смогут вызывать только те методы которые вы разрешили.
, примерно так же можно делать проверку имеет ли вызывающая сборка определенное строгое имя или цифровой ключ , скажем все свои приложения вы сопровождаете цифровой подписью, если это чужое приложение то ваша сборка определит отсутствие нужной подписи и запретит вызывать код. (получат исключение)
0
 Аватар для Mikant
1322 / 995 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
30.01.2012, 00:48
ibmpc,
Цитата Сообщение от ibmpc Посмотреть сообщение
Спрятать библиотеку в ресурсах и до момента использования кода хранящегося в ней вытащить наружу
ага, а пользоваться библиотекой, находящей в ресурсах другой библиотеки, так же просто, как и просто к ней линкануться? этим будет невозможно пользоваться
Цитата Сообщение от ibmpc Посмотреть сообщение
Еще изменить модификаторы доступа к коду на самые защишенные по возможности private -> protected internal
ага или сразу на public - какая разница-то. для смены всех модификаторов любой сборки потребуется минута. и да, я вижу ты не в курсе, что значит "protected internal" - почитай хоть)
Цитата Сообщение от ibmpc Посмотреть сообщение
Пройтись по коду обфуксатором
И использовать потом в своей работе обфусцированный код)
Цитата Сообщение от ibmpc Посмотреть сообщение
Хранить библиотеку в хранилище с ограниченным доступом
гениально, только есть одно "но", а если ей должен пользоваться кто-то ещё, то он не будет иметь полный доступ к её внутренностям?) красота)
Цитата Сообщение от ibmpc Посмотреть сообщение
При изменении пути к библиотеке использовать ЭТИ знания для сохранения работоспособности
это, я извиняюсь, о чём? спрятать файлик в системе, "чтобы никто не нашел"? оригинально: "один сломал, другой потерял". почитай лучше сам сабж, на который кинут линк. хотя бы, о чем там речь идёт
Цитата Сообщение от ibmpc Посмотреть сообщение
Закинуть библиотеку в шифрованный контейнер по типу тех, что используются при сжатии исполняемых файлов (exe, dll) - к сожалению название архиватора забыл (он специализированный именно для этого). При упаковке он создает в "начале" исполняемого файла вкрапление своего кода, который занимается распаковкой.
прямо для "этого"?) возвращаемся к п.1. как же это решение сможет помочь? а никак.
Цитата Сообщение от ibmpc Посмотреть сообщение
P.S. Думаю найдется еще несколько десятков вариации решения данной задачи. Google - ищи готовые решения.
флаг в зубы. хотя бы одно...

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

единственный правильный вариант сокрытия - тот, который предложил magirus - упаковать всё воедино и зашифровать "по самый небайлуй". при этом, правда, также не решается заданный вопрос. этим пользоваться станет невозможно для программиста
1
30.01.2012, 02:49

Не по теме:

так как снести аттрибуты, ровно как и сменить все модификаторы - дело одной минуты
- ну если речь о взломе то это понятно, хотя после работы хорошего протектора максимум что ты получишь это IL код, который читается не намного проще чем ассемблер.
Что касается упаковать-зашифровать, все равно для работы с ней нужно будет ее распаковать и расшифровать, и тут появляется возможность ее вытащить.
Но как я понял вопрос немного в другом.

0
 Аватар для ibmpc
80 / 78 / 10
Регистрация: 29.12.2011
Сообщений: 183
30.01.2012, 23:25
Цитата Сообщение от Mikant Посмотреть сообщение
И использовать потом в своей работе обфусцированный код)
Кстати по моему широко употребляемый метод. В моем сообщений есть статья - софтина из списка стоймостью $5000 даст сверх достаточную защиту и возможность исполнения без Net Framework.
Цитата Сообщение от Mikant Посмотреть сообщение
вариант тоже не прокатит, так как снести аттрибуты, ровно как и сменить все модификаторы - дело одной минуты. тем более эти сильно бросаются в глаза. и никакой обфускатор их, естественно!, не спрячет
Встречный вопрос вы считаете, что вам удастся вскрыть результат работы VMWare ThinApp? Не то что даже собрать сборку заново... или изменить функционал, а хотя бы понять 60-70% смысла? (имеется в виду конечно ПО класса и сложности, которому защита за такие деньги рентабельна). Однозначно думается мне, что нет.

И да я понимаю, что многие мои предложения глупы... Это только мысли. Насчет запрятать куда-либо/зашифровать не вариант конечно если все равно придется вынимать на свет божий.
Цитата Сообщение от Mikant Посмотреть сообщение
упаковать всё воедино и зашифровать "по самый небайлуй".
Подробнее можно? Что именно шифровать? Исполняемый файл? Как он после будет выполнятся Framework?

Цитата Сообщение от Mikant Посмотреть сообщение
и никакой обфускатор их, естественно!, не спрячет
VMware ThinApp можно проверить в действии на Trial версии например. Подход как я понял упаковка в исполняемые файлы, которые видимо исполняются в собственной виртуальной машине как-бы.
0
 Аватар для Mikant
1322 / 995 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
31.01.2012, 05:12
ibmpc, Молодец!!
0
 Аватар для KarmaMaker
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
31.01.2012, 11:31
Лучший ответ Сообщение было отмечено как решение

Решение

Отсутствие документации + индусский стиль программирования даст вполне неплохую гарантию, что эту либу будут обходить за три версты. Так что дерзайте.
3
 Аватар для ibmpc
80 / 78 / 10
Регистрация: 29.12.2011
Сообщений: 183
31.01.2012, 18:34
Цитата Сообщение от KarmaMaker Посмотреть сообщение
Отсутствие документации + индусский стиль программирования даст вполне неплохую гарантию, что эту либу будут обходить за три версты. Так что дерзайте.
А если это не либа, а полноценное ПО для которого необходимо скрыть внутреннюю реализацию функционала? Банально бывает проверка лицензии плохо реализована. Какой-то важный алгоритм нужно защитить?
P.S. И дело даже не в том, что нереально полностью защитить что-либо... Можно просто сделать вскрытие и анализ ПО нерентабельным, хотя бы на необходимый период времени (как с RSA).
0
5 / 5 / 1
Регистрация: 26.10.2010
Сообщений: 126
31.01.2012, 19:14
Речь идёт о невозможности использовать или получить исходник?
Если о втором, то открытым оставляется только интерфейс. Остальное без дизассемблирования недоступно.

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

например:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// метод в библиотеке
using yourNameSpace
void metod(object sender, int otherArgs)
{
    if(sender is YourClass)
    {
       // Первый уровень проверок пройден
       if(YourClass.secretField == currentDate*1234)
       {
             // Второй уровень пройден
       }
    }
    else
    {
       // Подсовываем фейк
    }
}
 
// Ваш код
namespace YourNamespace
{
    class yourClass
     {
         int secretField;
         yourClass()
         {
              secretField = currentDate*1234;
         }
     }
      
}
Но ИМХО проще поделиться исходником - нехорошо зажимать. Либо просто не работать с теми, кто ваш исходник присвоит или тому подобное
0
 Аватар для KarmaMaker
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
31.01.2012, 19:58
Можно просто сделать вскрытие и анализ ПО нерентабельным, хотя бы на необходимый период времени (как с RSA).
Не буду строить из себя специалиста но судя по тому, что с торентов можно скачать все что угодно, - таки нельзя.
0
 Аватар для ibmpc
80 / 78 / 10
Регистрация: 29.12.2011
Сообщений: 183
03.02.2012, 22:39
Цитата Сообщение от KarmaMaker Посмотреть сообщение
Не буду строить из себя специалиста но судя по тому, что с торентов можно скачать все что угодно, - таки нельзя.
Таки можно. вы судите по тому, что можете в сети найти распространенное ПО любых крупных производителей - их минус ПО слишком важно для большого числа пользователей, чем сильнее защита и известней продукт => тем престижней его взломать первым, в пользователях может оказаться опытный хакер с определенными взглядами, ну и выложив взломанное ПО в интернет можно заработать денег, славу и срок тюремного заключения.
А вот если брать узкоспециализированное ПО, ПО распространенное только в определенной области (географической, сфере деятельности и т.д), ПО работающее только внутри фирмы, разнообразные бухгалтерские программы не столь известные их взломанные версии есть только у тех кто в курсе их существования (даже исходники могут быть), а вот в интернете найти это почти нереально говорю по опыту. Но и в этом случае можно выйти на исходники и рабочие версии ПО разными способами - психология, доступ к системе с ПО, доступ к ПК разработчика (как прямая так и косвенная) и т.д.
Например для изменения прошивки на некоторых Android смартфонах нужно "разгадать" ключ RSA для получения root на телефоне если я не ошибаюсь (суть не в этом) аппаратное обеспечение не позволяет этого сделать прямым взломом, доступа к супер компьютерам ни у кого из заинтересованных ясное дело нет. И так во многих сферах касательно взлома RSA с большим ключом - для взлома не хватает аппаратных ресурсов(только если кто разболтает ключ).
0
5 / 5 / 1
Регистрация: 26.10.2010
Сообщений: 126
18.02.2012, 01:12
Цитата Сообщение от ibmpc Посмотреть сообщение
если кто разболтает ключ
- бугага, я представляю себе этот процесс )
1
 Аватар для Mikant
1322 / 995 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
18.02.2012, 09:00
ibmpc, ладно. спросим прямо, хоть одна программа на рынке есть? где достать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.02.2012, 09:00
Помогаю со студенческими работами здесь

Запрет использования Button пользователям
Есть таблица в БД с юзерами, имеющими логин и пароль. Так вот, в одной из форм мне нужно, чтобы кнопка удаление была видна только...

Запрет использования usb накопителей
Всем привет. Уважаемые опытные программисты, подскажите команду которая позволит запрещать использование usb накопителей (флешек и т.п), а...

Запрет использования dvd привода
Доброе утро! Кто нибудь подскажите надежный способ програмно запретить или разрешить исполбзование DVD привода? :) Своими силами такая...

Запрет использования символов в формах!
Привет всем! Нашёл в инете простой скрипт на запрет использования символов в форме, однако мне нужно рарешить использования некторых, таких...

Запрет использования символов в input field
Привет знающим ява скрипт )) использую вот этот скрипт, для запрета использования вода сиволов в форму ... он работает всё ок, но...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru