0 / 0 / 0
Регистрация: 20.05.2015
Сообщений: 35
|
|
1 | |
Ограничение работы программы при изменении/удалении данных в коде25.03.2018, 15:56. Показов 2076. Ответов 13
Метки нет (Все метки)
Коллеги, здравствуйте. Поставили передо мной задачу такого плана: необходимо написать программу, там должен выводиться значок ©. Если строку закодить в программе, то после компиляции строку можно найти и ИЗМЕНИТЬ в исполняемом файле(допустим, блокнот). Надо программу написать так, чтобы при изменении проги таким образом (удалении/изменении копирайта), она выводила при запуске информацию о том, что работает в демо-режиме, либо как-то еще дает понять, что обхитрить ее не выйдет.
Вывести значок не составит особо труда (неоднократные уроки по "Hello word" не прошли даром), а вот создать ограничение работы программы (демо - режим) ввел меня в ступор. Гугль особо не помог, поэтому прошу Вашей помощи здесь. P.S. Язык не обязательно C#: проще, думаю, реализовать это в консоли под C++ или паскаль, но вот вопрос как? Заранее спасибо!
0
|
25.03.2018, 15:56 | |
Ответы с готовыми решениями:
13
Можно ли сохранить последний результат работы программы непосредственно в коде программы Ошибка при удалении данных из программы Ошибка на кнопках при добавлении изменении удалении Ошибка при выборе, изменении, удалении и обновлении записей в БД |
134 / 130 / 107
Регистрация: 17.03.2009
Сообщений: 364
|
|
25.03.2018, 20:49 | 2 |
А что вам мешает зашифровать строку копирайта и дешифровать ее перед выводом.
В конце концов, вы можете защитить сборку, подписав ее с паролем.
0
|
0 / 0 / 0
Регистрация: 20.05.2015
Сообщений: 35
|
|
25.03.2018, 20:54 [ТС] | 3 |
mishau, тут имеется в виду, что есть, скажем, некий экзешник, который при изменении его (допустим, добавили символ в инпуте через блокнот), при запуске выдал сообщение в консоли, что программа была изменена и запущена в демо - режиме.
Я прекрасно понимаю, что существуют множество обходных путей, но по заданию мне необходимо реализовать то, что я описал в шапке. Просто у меня нет представления, как это сделать, первый раз сталкиваюсь с этим.
0
|
189 / 166 / 101
Регистрация: 14.03.2018
Сообщений: 426
|
|
25.03.2018, 21:58 | 4 |
Может быть тут имеет смысл хэш-функции применить?
0
|
35 / 34 / 25
Регистрация: 11.04.2015
Сообщений: 129
|
|
25.03.2018, 22:12 | 6 |
Т.е есть exe-шник и какой то текстовый документ как я понял..
Если документ был изменен, то программа должна работать в тестовом режиме. Что если брать текст из этого документа и хранить его в коде программы, если текст в документе не соответствует тому, что было сохранено в экзешнике, то вывод о тестовом режиме.. Ну или проверить дату изменения файла, если она не соответствует дате выпуска экзешника.. Или у вас изменяется сам экзешник..
0
|
0 / 0 / 0
Регистрация: 20.05.2015
Сообщений: 35
|
||||||
25.03.2018, 22:24 [ТС] | 7 | |||||
Harold, без отдельного файла. Вот код программы, в качестве примера
Думаю как - то так.
0
|
134 / 130 / 107
Регистрация: 17.03.2009
Сообщений: 364
|
|
25.03.2018, 22:31 | 8 |
0
|
189 / 166 / 101
Регистрация: 14.03.2018
Сообщений: 426
|
|
25.03.2018, 22:53 | 10 |
Что если весь защищаемый код вынести в .dll, а в основной программе проверять её хэш?
0
|
134 / 130 / 107
Регистрация: 17.03.2009
Сообщений: 364
|
||||||
25.03.2018, 23:04 | 11 | |||||
Сообщение было отмечено Hyrax как решение
Решение
Можно через файл ресурсов:
1
|
0 / 0 / 0
Регистрация: 20.05.2015
Сообщений: 35
|
||||||
27.03.2018, 00:09 [ТС] | 12 | |||||
mishau, не могли бы Вы ещё прокомментировать, пожалуйста, так как я ещё не разбираюсь в хешировании. Прочитал несколько статей по данной теме, прокоммнтировал код, создал ресурсный файл, но не моуг понять принцип работы программы.
Код с комментариями, если они, конечно, правильные
0
|
134 / 130 / 107
Регистрация: 17.03.2009
Сообщений: 364
|
|
27.03.2018, 09:03 | 13 |
Есть такой алгоритм шифрования MD5
Вы можете зашифровать строку в online, есть очень много сайтов для этого: https://yandex.ru/search/?text=md5%20online Зашифрованная строка (или просто зашифрованный массив байтов) называется MD5-хэшем или просто хэшем. В online можно также получить хэш вашей сборки, например здесь. Загрузите вашу сборку (dll или exe) и получите MD5 хэш. Для файла такой хэш называется контрольной суммой файла (MD5 Checksum). Алгоритм md5 поддерживается в PHP, Javascript (jQuery MD5 Plugin), C# и т.д. В C# алгоритм md5 реализован в классе System.Security.Cryptography.MD5, который имеет фабричный метод Create для создания объектов, обеспечивающих шифрование байтовых данных. Для этого используется метод CumputeHash. Класс MD5 наследуется от HashAlgorithm. Для символа © хэш-строка равна 'a541ecda3d4c67f1151cad5075633423'. Ее можно получить любым из мной указанных md5-генераторов. Ну а далее, все как вы описали в комментариях. Метод ToString("x") объекта byte переводит байт в строку в 16-ричном формате со строчными буквами.
0
|
OwenGlendower
|
27.03.2018, 15:12
Ограничение работы программы при изменении/удалении данных в коде
#14
|
0
|
27.03.2018, 15:12 | |
Событие для dataGridView при изменении, удалении и добавлении строк Права доступа на директории при чтении, изменении и удалении файлов Реализовать триггер, обеспечивающий при удалении ограничение целостности Ограничение передвижения мыши при изменении разрешения экрана Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |