Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/30: Рейтинг темы: голосов - 30, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 03.10.2011
Сообщений: 4

Защита программы и базы на С#

11.10.2011, 17:01. Показов 5716. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, профессионалы.

Пишу по работе программу на С# работающую с базой данных. Требуется защитить данные, чтобы их нельзя было просто вытащить из базы и привязать программу к определенному компьютеру, чтобы на другом она не работала. Я думал зашифровать базу на алгоритме DES или подобном, но по сути вытащив ключ шифрования из программы можно легко расшифровать всю базу. Я читал, что код C# легко декомилируется. Так ли это? И как от этого защищаться. Какие вообще существуют способы решения данных задач? Может кто-то сталкивался с подобным?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.10.2011, 17:01
Ответы с готовыми решениями:

Защита программы от НСД. Защита путем шифрования части программы на флеш-диске или флешке
Написать программу на любом известном Вам языке программирования. Программа должна выполнять функцию защиты программы от НСД. Защита...

Простейшая защита программы: где хранить число срабатываний программы?
День добрый! Написал одну небольшую программу, которая может быть интересна специализированной тусовке. Хочу распространять ее бесплатно,...

Защита базы
Вопрос ради спортивного интереса. Предположим имеется база 84.accdb (пусть даже только клиентская часть). Переименовали ее в 84.accdr(e)...

11
Злой няш
 Аватар для I2um1
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
11.10.2011, 17:30
Цитата Сообщение от InsertTrue Посмотреть сообщение
Я читал, что код C# легко декомилируется. Так ли это?
Очень даже легко - много ума не надо.
Цитата Сообщение от InsertTrue Посмотреть сообщение
И как от этого защищаться.
Например обфускация.
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
11.10.2011, 21:55
.NET Reactor упаковывает так, что ни рефлектор, ни ILDASM ни другие инструменты (ну за все не в курсе) не открывают программу, например можно упаковать без обфускации. Например эксешник WPF проекта сильно не защитишь, там нужно тонко настроить, чтобы после защиты прога вообще работала (видимо из-за XAML (или BAML?)), зато *.dll пакуются всеми способами зашиты . После защиты эксешника этой прогой, я открываю в рефлекторе программу и вижу красный восклицательный знак на значке эксешника и надпись: Invalid number of data directories in NT header. Он защищает нормально и WPF проекты под 4-ый фрэймворк. Я не в курсе, может есть способ распаковать как-то, но я не встречал такого. Думаю главное ключ не хранить в проге открытым текстом, а то с помощью какой-то проги (вроде бы какого-то диспетчера задач) можно глянуть все строковые переменные в процессе. Мало ли не в курсе, есть такая тема как SecureString.
1
0 / 0 / 0
Регистрация: 03.10.2011
Сообщений: 4
12.10.2011, 09:28  [ТС]
Про обфускацию и SecureString почитал. Спасибо. Попробую использовать. А как вообще надежно привязать программу к одному компьютеру? Я вроде нашел WMI или есть еще какие-нибудь более надежные способы?
0
2 / 2 / 0
Регистрация: 13.10.2011
Сообщений: 6
13.10.2011, 08:30
Обфускация дело хорошее, но часто ломают и с ней. Тут правда не совсем понятно, что вам конкретно требуется. Если дешево и сердито, то нужно копать в сторону WMI ( для привязки к оборудованию)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
            //Получение идентификаторов материнской платы
            ManagementObjectCollection mbsList = null;
            ManagementObjectSearcher mbs = new ManagementObjectSearcher("Select * From Win32_BaseBoard");
            mbsList = mbs.Get();
            foreach (ManagementObject mo in mbsList)
            {
                // Product номер материнской платы данный производителем
                // Version версии физических элементов
                // SerialNumber - серийный номер
                BBSN = mo["SerialNumber"].ToString(); 
                BBProduct = mo["Product"].ToString();
                BBVersion = mo["Version"].ToString();
}
таким же образом получаются параметры процессора и другого оборудования.

Если программный продукт предлагается продавать, то можно задуматься об использовании аппаратных ключей защиты. Недавно встречал на форуме тему об этом, там вроде как раз про защиту баз данных с примерами на C#, пояндекси "Урок 1. Основы Guardant API для защиты приложений".

Посмотри, попробуй и выбери для себя оптимальный вариант.
0
0 / 0 / 0
Регистрация: 03.10.2011
Сообщений: 4
13.10.2011, 10:27  [ТС]
Спасибо, большое. Да, программу на работе планируют продавать, правда цену надо уточнить у коммерческого отдела.
Посмотрел уроки по Guardant, в целом вроде все понятно и то что нужно. Но, как я понимаю, тут надо покупать ключи. Поэтому попробую сегодня у начальства уточнить про цену и возможные затраты.
Еще раз спасибо.
0
2 / 2 / 0
Регистрация: 13.10.2011
Сообщений: 6
13.10.2011, 11:58
Могу еще посоветовать подумать о контроле привязки программы через интернет, но это хорошо работает, если программа заточена под работу с интернетом.
1
 Аватар для AlexVal
1 / 1 / 0
Регистрация: 18.10.2011
Сообщений: 7
31.10.2011, 10:49
Самый оптимальный вариант, пожалуй, это вынесение части кода в отдельную нативную dll и уже защита не только С#, но и этой dll.
0
1 / 1 / 0
Регистрация: 01.11.2011
Сообщений: 4
01.11.2011, 23:09
Все верно. И велосипед даже изобретать не придется.
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
01.11.2011, 23:59
Цитата Сообщение от Ыц Посмотреть сообщение
Все верно. И велосипед даже изобретать не придется.
Я вот не понял, там речь о какой-то программе? Искал и так и не нашёл, что за прогу они там рекламируют.
0
0 / 0 / 0
Регистрация: 03.10.2011
Сообщений: 4
02.11.2011, 12:10  [ТС]
Цитата Сообщение от Casper-SC Посмотреть сообщение
Я вот не понял, там речь о какой-то программе? Искал и так и не нашёл, что за прогу они там рекламируют.
Речь идет об программе идущей в комплекте разработчика с ключом Guardant. Уже попробовал данный комплект с демо ключом на своем приложении, вроде все шоколадно. Надеюсь, что народ не будет настолько заморачиваться моей программой, и разбирать ее на винтики. Хотя мне кажется, что тут проще будет заново написать, чем со всем этим разобраться.
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
02.11.2011, 12:14
Так как программа называется? Что за комплект разработчика? Где её купить? У них на сайте я нашёл только описание и больше ничего. Может плохо искал.

Добавлено через 1 минуту
А всё нашёл, всё-таки плохо искал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.11.2011, 12:14
Помогаю со студенческими работами здесь

Защита базы данных
Здравствуйте. Давайте во первых обоснуем эту тему для известных нам способов защиты базы данных. Разные фишки которыми вы пользуетесь....

Защита базы данных
У меня еще один 'чайниковский' вопрос. Я защитила базу данных при помощи определения прав пользователей. Но это на моем компе. Сейчас база...

Защита базы данных
Здравствуйте! Подскажите пожалуйста, а что если с целью защиты базы данных (чтобы кроме версии файла для RunTime, пользователь также не...

Защита базы данных
Здравствуйте! Меня интересуют такие вопросы: 1. Возможно ли создать такую базу данных в которой для редактирования необходим пароль, а...

Защита от копирования базы
Всем привет. Вопрос, наверно, покажется для знатоков элементарным и глупым, но я- дилетант, поэтому мне позволительно -). По поиску в...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru