Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
46 / 20 / 5
Регистрация: 29.12.2015
Сообщений: 1,814
1
.NET 4.x

Привязать программу к ПК

03.08.2017, 21:24. Показов 4395. Ответов 24
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.
Появилась необходимость сделать прогу с хранением личных данных а сма программу привязать к двум пк точнее к пк и ноуту.
Как такое сделать. С возможностью потом в коде изменить привязку. Например если будет произведено замена железа чтобы в коде можно было заменить железо.
У кого есть идеи как это реализовать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.08.2017, 21:24
Ответы с готовыми решениями:

Привязать программу к компьютеру
Как сделать чтобы программа работала только на определённом компьютере ?

Привязать программу к ПК по характеристикам ПК
Привязать программу к ПК по характеристикам пк на c# ? По характеристикам ПК. 1.Количество кнопок...

Как привязать программу к железу?
Помогите пожалуйста. Подскажите как привязать программу на пк к железу (блок управления спаяный...

Привязать программу к железу с хостингом
Такой вопрос, как можно привязать программу к железу без windows form. Есть вот такой код для...

24
Эксперт С++
3574 / 2828 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 22
03.08.2017, 22:27 2
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Например если будет произведено замена железа чтобы в коде можно было заменить железо.
не получится.
HWID генерируется абсолютно произвольно на основе любого придуманного алгоритма.
сгенерировав ключи, с ПК и с ноутбука, вы воспользуетесь ими в своей программе.
заменив на ПК одну из комплектующих (мат.плата, видеокарта и другое, смотря из чего генерируется HWID) изменится и сам ключ.
0
263 / 224 / 108
Регистрация: 09.12.2015
Сообщений: 652
04.08.2017, 16:54 3
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Здравствуйте.
Появилась необходимость сделать прогу с хранением личных данных а сма программу привязать к двум пк точнее к пк и ноуту.
Как такое сделать. С возможностью потом в коде изменить привязку. Например если будет произведено замена железа чтобы в коде можно было заменить железо.
У кого есть идеи как это реализовать?
Добавлено через 1 час 10 минут
Можно применить такой способ привязки к одному компу (на другом компе хрен взломаешь).

Смысл такой:
Упаковываешь весь свой код в библиотеки, включая формы.
То есть оставляешь в самом .exe файле только несколько строк кода.
Сжимаешь эти библиотеки в deflate формате (это не обязательно, но желательно, так приложение будет меньше весить).
Шифруешь эти архивы при помощи ключа на основе данных о процессоре, материнки и прочего.
Включаешь шифрованные сжатые библиотеки как бинарные ресурсы приложения.
А в самой программе прописываешь код по расшифровке и распаковке библиотек из ресурсов и загрузки их в домен приложения.
Причем, расшифровка на основе данных об среде выполнения (аппаратной).
0
Эксперт .NET
12079 / 8388 / 1281
Регистрация: 21.01.2016
Сообщений: 31,601
04.08.2017, 19:17 4
Цитата Сообщение от Fleder Посмотреть сообщение
(на другом компе хрен взломаешь)
Это вы про C#?
0
263 / 224 / 108
Регистрация: 09.12.2015
Сообщений: 652
04.08.2017, 19:30 5
Цитата Сообщение от Usaga Посмотреть сообщение
Это вы про C#?
Про него самого! Ну, то есть взломать-то можно, конечно.
Но затраты на реверс-инжиниринг такой проги будут несоизмеримо большими.
0
294 / 234 / 58
Регистрация: 03.02.2011
Сообщений: 1,993
Записей в блоге: 1
04.08.2017, 19:37 6
Цитата Сообщение от Fleder Посмотреть сообщение
затраты на реверс-инжиниринг
Вам знакомы слова метаданные сборки и дамп памяти?
0
263 / 224 / 108
Регистрация: 09.12.2015
Сообщений: 652
04.08.2017, 19:41 7
Цитата Сообщение от skilllab Посмотреть сообщение
Вам знакомы слова метаданные сборки и дамп памяти?
Причём тут метаданные сборки, если все используемые сборки находятся в ресурсах в зашифрованном виде?
И какой дамп памяти вы можете получить, не расшифровав эти сборки и не загрузив их в память?
0
Эксперт .NET
5534 / 4298 / 1217
Регистрация: 12.10.2013
Сообщений: 12,332
Записей в блоге: 2
04.08.2017, 19:43 8
Цитата Сообщение от Fleder Посмотреть сообщение
какой дамп памяти вы можете получить, не расшифровав эти сборки и не загрузив их память?
После запуска приложения все в памяти будет в чистом виде. Бери и вытаскивай.
0
294 / 234 / 58
Регистрация: 03.02.2011
Сообщений: 1,993
Записей в блоге: 1
04.08.2017, 19:43 9
Цитата Сообщение от Fleder Посмотреть сообщение
А в самой программе прописываешь код по расшифровке и распаковке библиотек из ресурсов и загрузки их в домен приложения.
После этой операции я применяю знания о метаданных + знания о дампах. Так понятнее?
0
294 / 234 / 58
Регистрация: 03.02.2011
Сообщений: 1,993
Записей в блоге: 1
04.08.2017, 19:48 10
Чистый, уже "расшифрованный" в память дамп (IL), кое-какие знания по организации сборок в NET, дадут мне понятие куда там и что. Если же вы пишете про некую эфемерную защиту исходников, то есть простейший путь - обфускация. Никаких паролей)) архиваторов и прочей ереси. Всё наглядно, всё запутано, всё в мусоре. Зато работает как положено.
0
263 / 224 / 108
Регистрация: 09.12.2015
Сообщений: 652
04.08.2017, 19:48 11
Цитата Сообщение от insite2012 Посмотреть сообщение
После запуска приложения все в памяти будет в чистом виде. Бери и вытаскивай.
В памяти будет только то, что будет расшифрованно. А ключ для расшифровки берётся из данных о железе.
Если ключ неверный, то что будет расшифрованно? Будет расшифрован мусор. И приложение упадёт.
0
Эксперт .NET
5534 / 4298 / 1217
Регистрация: 12.10.2013
Сообщений: 12,332
Записей в блоге: 2
04.08.2017, 19:49 12
Единственное, что более-менее может спасти в данной ситуации-работать полностью через рефлексию, хотя при выполнении метода его код также будет в памяти. Но в плане удобства написания кода - это будет ад.

Добавлено через 1 минуту
Цитата Сообщение от Fleder Посмотреть сообщение
В памяти будет только то, что будет расшифрованно.
Смекаете? Только создали объект-его код уже в памяти.
Цитата Сообщение от insite2012 Посмотреть сообщение
при выполнении метода его код также будет в памяти.
0
263 / 224 / 108
Регистрация: 09.12.2015
Сообщений: 652
04.08.2017, 19:51 13
Цитата Сообщение от skilllab Посмотреть сообщение
После этой операции я применяю знания о метаданных + знания о дампах. Так понятнее?
И куда вы их будете применять? Чтобы понять алгоритм шифрования? Допустим. Чтобы понять механизм расжатия? Допустим.
Но как вы их примените для самой расшифровки, не зная ключа?
Методом брут форса? А это затратно.
0
294 / 234 / 58
Регистрация: 03.02.2011
Сообщений: 1,993
Записей в блоге: 1
04.08.2017, 19:51 14
Цитата Сообщение от Fleder Посмотреть сообщение
В памяти будет только то, что будет расшифрованно.
там будет всё. Если же вы подразумевали просто воровство ноута вместе с любимым запароленым "калькулятором" (ибо если это что-то сложнее калькулятора, то можно забыть о таких словах как "поддерживаемое приложение"), то проще пароль на ноут поставить. В разы сложнее взломостойкость.
0
294 / 234 / 58
Регистрация: 03.02.2011
Сообщений: 1,993
Записей в блоге: 1
04.08.2017, 19:54 15
Цитата Сообщение от Fleder Посмотреть сообщение
Методом брут форса?
Ещё чего...заморачиваться... я кейген напишу)))))

Цитата Сообщение от Fleder Посмотреть сообщение
А в самой программе прописываешь код по расшифровке и распаковке библиотек из ресурсов и загрузки их в домен приложения.
А так же не забыть жёсткую зашивку пароля туда-же, в ресурсы. Туда же - в метаданные
0
263 / 224 / 108
Регистрация: 09.12.2015
Сообщений: 652
04.08.2017, 19:54 16
Цитата Сообщение от skilllab Посмотреть сообщение
Чистый, уже "расшифрованный" в память дамп (IL), кое-какие знания по организации сборок в NET, дадут мне понятие куда там и что. Если же вы пишете про некую эфемерную защиту исходников, то есть простейший путь - обфускация. Никаких паролей)) архиваторов и прочей ереси. Всё наглядно, всё запутано, всё в мусоре. Зато работает как положено.
Да не видать вам никакого IL - дампа в памяти раньше, чем будет использован верный ключ.
0
Эксперт .NET
5534 / 4298 / 1217
Регистрация: 12.10.2013
Сообщений: 12,332
Записей в блоге: 2
04.08.2017, 19:57 17
Цитата Сообщение от Fleder Посмотреть сообщение
Да не видать вам никакого IL - дампа в памяти раньше, чем будет использован верный ключ.
Fleder, если вы так уверены-напишите простенькую реализацию и выложите сюда. Тогда и посмотрим, что там будет, а чего-нет.
0
294 / 234 / 58
Регистрация: 03.02.2011
Сообщений: 1,993
Записей в блоге: 1
04.08.2017, 19:59 18
Цитата Сообщение от Fleder Посмотреть сообщение
дампа в памяти раньше, чем будет использован верный ключ.
Я понял о чём вы, но это "защита даже от себя". В случае поломки железок потребуется уже квалифицированная помощь. А если есть исходники - не потребуется. А если перекомпилить - то всё хорошо. А если можно перекомпилить чтоб всё было хорошо, то нахрена морочиться с какими то там кодами, ресурсами и прочим, когда проще саму прогу в архив запихнуть и его уже запаролить? Где профит то?
0
263 / 224 / 108
Регистрация: 09.12.2015
Сообщений: 652
04.08.2017, 20:01 19
Цитата Сообщение от insite2012 Посмотреть сообщение
Смекаете? Только создали объект-его код уже в памяти.
Не совсем так. Приложение упадёт на этапе создания объекта, потому что сборка, в которой он (этот объект) определён - не найдена. Далее через AppDomain.CurrentDomain.AssemblyResolve начинаем расшифровывать - распаковывать нужную сборку из ресурсов. И, не зная ключа - облом.
0
294 / 234 / 58
Регистрация: 03.02.2011
Сообщений: 1,993
Записей в блоге: 1
04.08.2017, 20:04 20
Какой смысл защищать кодом то - что не отдаётся кому-то другому?
В случае топикстартерного вопроса: чем не устраивает шифрование Microsoft в виде пароля на комп? чем не устраивает запуск с флешки, которая тоже может быть тупо запоролена? Чем не устраивает "deflate" сжатый архивчик каким нить неведомым UHA exe-вида?
0
04.08.2017, 20:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.08.2017, 20:04
Помогаю со студенческими работами здесь

К чему лучше привязать программу?
Всем привет! К чему лучше привязывать мою программу? Возможно есть какие-то устройства, у которых...

Как привязать программу с клавишами клавиатуры?
Как реализовать так,чтобы когда я жму на клаве клавишу "1" и у меня в программе сработала кнопка с...

Как привязать программу к жесткому диску?
Как привязать программу к жесткому диску? Точнее надо сгенерировать код жесткого диска.

Как свою программу привязать к постороннему процессу?
Я нашел такую фишку в делфи, что свою прогу можно привязать к постороннему процессу и прога будет...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru