46 / 20 / 5
Регистрация: 29.12.2015
Сообщений: 1,814
|
|
1 | |
.NET 4.x Привязать программу к ПК03.08.2017, 21:24. Показов 4395. Ответов 24
Метки нет (Все метки)
Здравствуйте.
Появилась необходимость сделать прогу с хранением личных данных а сма программу привязать к двум пк точнее к пк и ноуту. Как такое сделать. С возможностью потом в коде изменить привязку. Например если будет произведено замена железа чтобы в коде можно было заменить железо. У кого есть идеи как это реализовать?
0
|
03.08.2017, 21:24 | |
Ответы с готовыми решениями:
24
Привязать программу к компьютеру Привязать программу к ПК по характеристикам ПК Как привязать программу к железу? Привязать программу к железу с хостингом |
03.08.2017, 22:27 | 2 |
не получится.
HWID генерируется абсолютно произвольно на основе любого придуманного алгоритма. сгенерировав ключи, с ПК и с ноутбука, вы воспользуетесь ими в своей программе. заменив на ПК одну из комплектующих (мат.плата, видеокарта и другое, смотря из чего генерируется HWID) изменится и сам ключ.
0
|
263 / 224 / 108
Регистрация: 09.12.2015
Сообщений: 652
|
|
04.08.2017, 16:54 | 3 |
Добавлено через 1 час 10 минут
Можно применить такой способ привязки к одному компу (на другом компе хрен взломаешь). Смысл такой: Упаковываешь весь свой код в библиотеки, включая формы. То есть оставляешь в самом .exe файле только несколько строк кода. Сжимаешь эти библиотеки в deflate формате (это не обязательно, но желательно, так приложение будет меньше весить). Шифруешь эти архивы при помощи ключа на основе данных о процессоре, материнки и прочего. Включаешь шифрованные сжатые библиотеки как бинарные ресурсы приложения. А в самой программе прописываешь код по расшифровке и распаковке библиотек из ресурсов и загрузки их в домен приложения. Причем, расшифровка на основе данных об среде выполнения (аппаратной).
0
|
12079 / 8388 / 1281
Регистрация: 21.01.2016
Сообщений: 31,601
|
|
04.08.2017, 19:17 | 4 |
0
|
263 / 224 / 108
Регистрация: 09.12.2015
Сообщений: 652
|
|
04.08.2017, 19:30 | 5 |
Про него самого! Ну, то есть взломать-то можно, конечно.
Но затраты на реверс-инжиниринг такой проги будут несоизмеримо большими.
0
|
263 / 224 / 108
Регистрация: 09.12.2015
Сообщений: 652
|
|
04.08.2017, 19:41 | 7 |
Причём тут метаданные сборки, если все используемые сборки находятся в ресурсах в зашифрованном виде?
И какой дамп памяти вы можете получить, не расшифровав эти сборки и не загрузив их в память?
0
|
04.08.2017, 19:48 | 10 |
Чистый, уже "расшифрованный" в память дамп (IL), кое-какие знания по организации сборок в NET, дадут мне понятие куда там и что. Если же вы пишете про некую эфемерную защиту исходников, то есть простейший путь - обфускация. Никаких паролей)) архиваторов и прочей ереси. Всё наглядно, всё запутано, всё в мусоре. Зато работает как положено.
0
|
263 / 224 / 108
Регистрация: 09.12.2015
Сообщений: 652
|
|
04.08.2017, 19:48 | 11 |
В памяти будет только то, что будет расшифрованно. А ключ для расшифровки берётся из данных о железе.
Если ключ неверный, то что будет расшифрованно? Будет расшифрован мусор. И приложение упадёт.
0
|
04.08.2017, 19:49 | 12 |
Единственное, что более-менее может спасти в данной ситуации-работать полностью через рефлексию, хотя при выполнении метода его код также будет в памяти. Но в плане удобства написания кода - это будет ад.
Добавлено через 1 минуту Смекаете? Только создали объект-его код уже в памяти.
0
|
263 / 224 / 108
Регистрация: 09.12.2015
Сообщений: 652
|
|
04.08.2017, 19:51 | 13 |
И куда вы их будете применять? Чтобы понять алгоритм шифрования? Допустим. Чтобы понять механизм расжатия? Допустим.
Но как вы их примените для самой расшифровки, не зная ключа? Методом брут форса? А это затратно.
0
|
04.08.2017, 19:51 | 14 |
там будет всё. Если же вы подразумевали просто воровство ноута вместе с любимым запароленым "калькулятором" (ибо если это что-то сложнее калькулятора, то можно забыть о таких словах как "поддерживаемое приложение"), то проще пароль на ноут поставить. В разы сложнее взломостойкость.
0
|
263 / 224 / 108
Регистрация: 09.12.2015
Сообщений: 652
|
|
04.08.2017, 19:54 | 16 |
Да не видать вам никакого IL - дампа в памяти раньше, чем будет использован верный ключ.
0
|
04.08.2017, 19:59 | 18 |
Я понял о чём вы, но это "защита даже от себя". В случае поломки железок потребуется уже квалифицированная помощь. А если есть исходники - не потребуется. А если перекомпилить - то всё хорошо. А если можно перекомпилить чтоб всё было хорошо, то нахрена морочиться с какими то там кодами, ресурсами и прочим, когда проще саму прогу в архив запихнуть и его уже запаролить? Где профит то?
0
|
263 / 224 / 108
Регистрация: 09.12.2015
Сообщений: 652
|
|
04.08.2017, 20:01 | 19 |
Не совсем так. Приложение упадёт на этапе создания объекта, потому что сборка, в которой он (этот объект) определён - не найдена. Далее через
AppDomain.CurrentDomain.AssemblyResolve начинаем расшифровывать - распаковывать нужную сборку из ресурсов. И, не зная ключа - облом.
0
|
04.08.2017, 20:04 | 20 |
Какой смысл защищать кодом то - что не отдаётся кому-то другому?
В случае топикстартерного вопроса: чем не устраивает шифрование Microsoft в виде пароля на комп? чем не устраивает запуск с флешки, которая тоже может быть тупо запоролена? Чем не устраивает "deflate" сжатый архивчик каким нить неведомым UHA exe-вида?
0
|
04.08.2017, 20:04 | |
04.08.2017, 20:04 | |
Помогаю со студенческими работами здесь
20
К чему лучше привязать программу? Как привязать программу с клавишами клавиатуры? Как привязать программу к жесткому диску? Как свою программу привязать к постороннему процессу? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |