Ключ middot рмула чар для кольца все характеристики. Уважение. Зачаровывание middot Магический знак защиты от темной магии. Она и так вся в открытом виде лежит, а инструменты в виде Reflectorа занимаются тем, что приводят конструкции MSIL к соответствующим конструкциям C или другого языка, повышая читабельность кода. Перейдм, собственно, к взлому. Обнуление триала. Собственно, это даже не взлом, а полулегальный способ продлить срок использования неактивированной программы. Images/yandexmoney_logo.gif' alt='Ключ Для Ratemeup' title='Ключ Для Ratemeup' />Заключается он в том, что находится место, где хранится дата первого запуска и меняетсяуничтожается. После этого вс можно пользоваться программой до следующего срока. Посмотрим на нашего подопытного рефлектором Немного погуляв по коду, находим интересную строчку в конструкторе Main. Form. Открываем редактор реестра, идм в HKEY. Написание keygenа. Самый ужасный для разработчика вариант, и самый приятный для конечного злобного пользователя. Программа считает себя лицензионной, никаких страшных телодвижений не нужно делать. Открываем рефлектор и ищем код на предмет классов содержащих License или Registration, видим При вводе имени и кода по имени вычисляется некий хеш, который и сравнивается с кодом. Данный хеш использует DES и всякие префиксы. Ключ Для Ratemeup' title='Ключ Для Ratemeup' />Байты конвертятся в строку с помощью данного метода. Теперь вс выяснилось, открываем IDE и копируем все необходимые куски кода или сами реализовываем. Осталось только выяснить, какие значения у Prefix, Suffix и параметры реализации My. DES. Я их приводить не буду, это уже технические детали. В результате генерируем ключ на любое имя и видим Бинго Защита от кейгенов проста и очевида использовать в каком либо виде ассиметричное шифрование. Использование враппера. Проверка корректности лицензии, достаточно хлопотное дело, и небыстрое. Поэтому разработчики программ обычно проверяют лицензию один раз, и дальше используют полученный флажок валиднаневалидна как вариант насколько валидна, если допускается несколько типов лицензии, отличающихся возможностями. Тут можно на этом сыграть, использовав следующий алгоритм Указать программе, что лицензия уже проверена Указать программе, что лицензия корректна. Как это сделать Я уже упоминал о наличии метаданных в исполняемых файлах в начале, этим и воспользуемся. Посмотрим как запускается программа и как проверяется лицензия С запуском ничего интересного, а в проверке видно, что если уже программа зарегистрирована, то она считает, что вс хорошо и не делает дальнейшую работы по выяснению корректности лицензии. Воспользуемся этим Сделаем новый проект, добавим Reference на Expresso. Смотрим, что получилось Ну кто бы сомневался. В данном случае вс оказалось просто, но если бы автор программы заменил публичные свойства на приватные, то всего лишь пришлось бы использовать Reflection для доступа и вс бы свелось к исходной задаче. Думаю понятно, как можно пробовать защититься от этого проверять лицензию периодически, смотреть окружение из которого запущена программа, сделать невозможным установку нужной переменной. Но все эти защиты приведут к тому, что злоумышленник будет использовать. Физический взлом программы. Тут уже вс серьзно. Программа целиком декомилируется в MSIL а из него уже собирается обратно помните, я писал, что MSIL это такой же язык как и C. Ключ Для Ratemeup' title='Ключ Для Ratemeup' />Для декомпиляции нам понадобится утилита из SDK под названием ildasm, а для компиляции компилятор из. NET Framework ilasm. Запускаем ildasm, открываем Expresso. Находим уже рассмотренный метод Is. Registered и добавляем немножко своего кода без меток Потом берм ilasm и собираем вс назад не забыв подключить ресурсы. Что делает данный код устанавливает нужное имя для регистрации не обязательно, и возвращает статус, что вс хорошо. Чтобы было понятнее, так это выглядит в рефлекторе, в CТ. Пожалуйста, в примечании к платежу обязательно указывайте свой email. На него будет выслан лицензионный ключ. Email будет использован только. Торговец в Полуостров Адского Пламени middot Кожевничество middot кованный в пламени ключ. Ключ middot Рецепт большой эликсир ловкости. Скачать можно тут http Программа умеет накручивать такие счетчики Выберите Вашу версию скрипта 2. Введите в поле имя домена например domain. Нажмите кнопку Генерировать 4. Скопируйте. Ну и обратно установить значение переменной тем, что лежит в стеке. Чтобы лучше понять работу всего этого рекомендую простой прим пишите маленькую программу на привычном языке, компилируете, смотрите что получилось в MSILe и разбираетесь в конструкциях языка. При этом некоторые вещи в MSIL можно сделать очень красиво, например поменять две переменные местами 4 симпатичных строчки на C меньше, но некрасиво. Чем жертвует злоумышленник подписью программы, теперь она уже не автора, а его. В некоторых случаях это проблема, если в программе используется множество библиотек. Тогда злобному хакеру придтся разбирать их все и собирать их заново, но если он с этим справится, то у него будет своя версия программы подписанная его ключом. Защиты от всего этого безобразия собственно немного проводить обфускацию или выносить часть логикипроверки защиты в нативный код. Заключение. Думаю я рассказал, как просто вс можно разломать на. NET, если создатель не приложил усилий для защиты своей программы. А вы уж решайте, стоит ли делать защиту и тратить на это время и ресурсы. А может просто сделать web систему, или же бесплатную ограниченную версию. Решать разработчикам.