Лицензионный ключ программы или игры. Лицензионный ключ программы или игры Физический взлом программы

Различные генераторы (паролей, ник-неймов, случайных чисел и кодов) пользуются большой популярностью, так как они широко применяются администраторами пабликов, владельцами организаций и рядовыми пользователями с разными целями.

Генератор промокодов – специфический сервис, который может быть использован владельцами организаций и торговых предприятий для проведения акций и розыгрышей.

Например , по промокоду могут предоставляться скидки, действовать подарочные сертификаты в магазинах, на других сервисах с их помощью может быть предоставлен доступ к более широкому спектру услуг.

Выбор

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

Такие сервисы реализуются как в виде приложений для социальных сетей (что особенно удобно при проведении акций среди подписчиков паблика, например), так и в режиме онлайн и в виде программ, устанавливаемых на компьютер (что в большинстве случаев совсем неудобно).

Они отличаются по настройкам и списку возможностей.

Правильно выбранный генератор способен значительно упростить процесс работы по организации акций и спецпредложений, а также розыгрышей.

Основные характеристики

Все популярные (и не очень) генераторы отличаются друг от друга по целому ряду параметров.

Среди них такие показатели как число знаков в коде, наличие префикса и постфикса (что упрощает классификацию и деление кодов на группы), используемые в и т. д.

Кроме того, разные сервисы предлагают разное количество кодов для одновременной (нажатием одной кнопки) генерации.

Основные технические характеристики рассмотренных ниже сервисов приведены в таблице.

Таблица 1. Сравнительные характеристики различных сервисов по генерации промокодов
Название Лицензия Префикс, постфикс Выбор используемых символов Выбор числа символов Быстрая генерация нескольких кодов
GetEasyCode.ru Условно бесплатная, платная расширенная Да Да Да Да
Randomize Бесплатная Нет Да Да Да
TakeTheCode Бесплатная Только префикс Да Да Да
Academy Бесплатная Нет Нет Нет Нет
Генератор ukrbio.com Бесплатная Нет Ограниченный Да Да
Studio F1 Бесплатная Нет Ограниченный Да Да
Inglobal Бесплатная Только префикс Ограниченный Да Да

Основываясь на этих характеристиках проще сделать правильный выбор.

GetEasyCode.ru

Это постой и быстро загружающийся одностраничный сайт с генератором, который работает быстро и стабильно.

Бывает доступен почти всегда.

Основная отличительная черта сервиса – максимальная функциональность и высокая скорость работы.

Меню простое и интуитивно понятное, дизайн приятный и не отвлекает от рабы.

  • Позволяет создать префикс и постфикс;
  • Можно генерировать сразу несколько кодов (от 1 до 100 штук);
  • Пользователь сам может выбрать, какие символы использовать в коде.
  • Неудобное переключение количества кодов;
  • Платное предоставление от 100 до 999 кодов – стоимость 299 рублей (на момент написания статьи);
  • Платное предоставление от 1000 кодов – стоимость 999 рублей (также на момент написания статьи);
  • Необходимо постоянно нажимать на кнопку «Я не робот».

Вот что говорят пользователи, которые уже использовали данный генератор: «Удобный, многофункциональный сервис», «Достаточно высокие цены на генерацию», «Удобно использовать этот генератор – применяю только его».

Randomize

Этот сайт предназначен для генерации случайным образом различный паролей, промокодов, чисел и т. д.

Он многофункционален и удобен для тех, кто проводит различные розыгрыши или использует множество паролей.

Этот генератор позиционируется как премиум-сервис для интернет-магазинов.

Это не самый простой в использовании, но действительно многофункциональный и бесплатный сервис.

Основная особенность сервиса в наличии, так называемого «индивидуального» режима построения кода.

В этом режиме можно прописать существующий код, указав, что изменять нужно только определенные символы.

  • Возможность прописать префикс;
  • Возможность прописать вручную используемые символы;
  • Наличие «индивидуального» режима настроек генерирования;
  • Можно сгенерировать до 10 миллионов кодов и скачать их в том или ином формате;
  • Указание вероятности подбора для кодов разного типа.
  • Отсутствие возможности прописать постфикс;
  • Ограниченное небольшое число символов (от 4 до 16);
  • Генерируется не менее 1000 кодов.

Пользователи отзываются о сервисе таким образом: «Удобно, что можно сгенерировать сразу очень много кодов», №не слишком удобное меню».

Academy

Этот генератор доступен для использования по ссылке https://academy.ru/personal/promo-gen/ .

Это многофункциональный сайт, среди множества его функций есть, в том числе, и генератор промокодов.

Достаточно сложный дизайн и множество страниц ведет к тому, что сервис достаточно долго грузится.

Важно понимать, что данный сайт – не специализированный генератор. Он может помочь для одноразовой генерации.

Но в массовых масштабах использовать его невозможно.

  • Быстрая генерация без лишних настроек;
  • Удобное копирование кода нажатием одной кнопки;
  • Готовая база неиспользованных промокодов.
  • Очень малое количество функций – нельзя выбрать количество или число одновременно генерируемых кодов и т. п.;
  • Нельзя прописать префикс или постфикс, дизайн кода также выбирается системой по умолчанию;
  • Достаточно много различных ссылок и дизайнерских усложнений на странице, что делает работу не слишком простой.

Пользователи отзываются о генераторе так: «Для получения одного промокода может и нормально, но как использовать его более широко – непонятно», «Очень неудобно и мало функций».

Генератор ukrbio.com

Это одностраничный генератор с простым меню и интуитивно понятным интерфейсом.

Имеет простой и приятный дизайн, благодаря которому страница быстро загружается.

Сервис работает стабильно и предоставляет достаточный набор функций.

Данный сервис позволяет генерировать комбинации только из цифр, только из букв, смешанные, включая или .

Также можно настроить регистр букв и вывести все коды в том или ином формате.

  • Простое меню и минималистичный дизайн страницы сайта;
  • Бесплатное создание очень большого количества кодов (от 1 до 9999 штук);
  • Достаточно широкие возможности в настройке формата и внешнего вида будущих кодов.
  • <Рис. 8 Studio F1>

    Этот многофункциональный сервис по генерации доступен по ссылке https://studiof1.ru/blog/developing/passgen/ .

    Cайт является многофункциональным ресурсом с сервисами для раскрутки сайтов и т. п.

    Ресурс имеет достаточно простой дизайн и использовать его удобно в тех случаях, когда пользователь, кроме промоакций, проводит розыгрыши и другие мероприятия для привлечения аудитории.

    Строго говоря, данный сервис называется генератором паролей, он способен создавать достаточно сложные и разнообразные комбинации, которые можно использовать как промо-коды.

    Ведь этот сервис позволяет использовать почти все те же настройки, которые предлагает генератор промо-кодов.

    • Возможность выбрать длину пароля и его состав (строчные и прописные буквы, цифры, знаки);
    • Возможность генерировать сразу несколько паролей-кодов;
    • На этом сайте «под рукой» находится множество вспомогательных, часто, необходимых функций.
    • Невозможность установить префикс и постфикс;
    • Невозможно ограничить или выбрать используемые символы;
    • Все коды прописываются одним словом без пробелов и имеют примерно одинаковый внешний вид, их невозможно скачать – только скопировать как обычный текст, что неудобно при большом их количестве.

Представим себе ситуацию, когда Вам пришлось «снести винду» (удалить операционную систему windows) и установить новую. Если с этим Вы справитесь, то может возникнуть такая проблема, как установка уже привычных для Вас программ и игр. Хорошо если они находятся в свободном доступе и бесплатные, но что делать когда Вы заплатили за программу (или игру), а при переустановке она от Вас требует лицензионный ключ (и это вполне нормальное явление)? Хорошо если Вы его где-то сохранили и записали, а что делать если потеряли или не оставили ключ? В таком случае есть два варианта решения.

1) Написать в поддержку этой программы и объяснить ситуацию. Если разработчики нормальные и Вы им докажете что действительно купили их продукт, то они Вам помогут.
2) Воспользоваться одной бесплатной программой, про которую будет текст ниже.

Итак, программа называется Belarc Advisor - Free Personal PC Audit

Процесс установки обычный.
Вначале соглашаемся с информационным сообщением о том, что есть у них версия и для Android

Затем соглашаемся с лицензионным соглашением


Далее жмём кнопку Install (программа не спрашивает куда установиться) и соглашаемся с анализом системы на поиск ключей:


Ждем завершения


И в конечном итоге откроется окно (такой вид отчёта) с разнообразной информацией (операционная система, все комплектующие, пользователи, сети и т.д.). Здесь ищем внизу пункт Software Licenses и видим всё, что нашла программа:

У меня не так много, т.к. пользуюсь в основном бесплатными решениями, но смысл понятен.

Таким образом с помощью этой программы можно узнать лицензионные ключи не только на операционную систему и программы, а так же узнать подробную статистику про Ваш компьютер (вплоть до последних подключаемых флешек). Поэтому я думаю эта программа Вам пригодиться и стоит про неё знать.

Disclaimer: всё ниженаписанное написано исключительно с просветительскими и исследовательскими целями, а также понимания механизмов защиты от взлома. Автор ни в коем случае не рекомендует использовать данную информацию для взлома программ.

В данной статье я хочу рассказать про три с половиной основных способа взлома программ на.NET, цель, которую я преследую - помочь разработчикам лучше понять механизмы защиты своих программ, т.е. выяснить наиболее очевидные угрозы и предпринять соответствующие меры (или не принимать).

Я не буду углубляться в детали и использовать сложные инструменты для взлома. Всё будет расписано «для чайников», т.е. все инструменты будут простыми, легкодоступными и бесплатными. А основным будет Reflector , декомпилятор программ под.NET

В качестве подопытного кролика я выбрал Expresso - анализатор регулярных выражений. Данная программа бесплатная, в лицензии вроде бы ничего не указано про взлом, но при этом без регистрации она будет работать всего 60 дней. Другими словами, вред от взлома данной программы минимальный, к тому же внутреннее её устройство очень уж хорошо подходит для тренировки. Буду надеяться, что автор данной программы не обидится на меня.


Для начала краткий ликбез по структуре.NET программы, для тех кто не знаком с разработкой под данный Framework: весь код, написанный на любом.NET языке (C#, Visual Basic, F#, Delphi.NET) компилируется в особый Intermediate Language, называемый обычно IL или MSIL . Это что-то типа ассемблера, только весьма умного и обладающего весьма мощными инструкциями. И это, в принципе, такой же равноправный язык как и C#, только синтаксис похуже (а возможности больше). Кроме того, в программе на.NET активно используются метаданные, т.е. вся информация о классах, метода, пропертях, атрибутах и всём остальном сохранена в исполняемом файле.
Т.е. на самом деле, декомпиляция программы не очень верное понятие в данном случае. Она и так вся в открытом виде лежит, а инструменты в виде Reflector"а занимаются тем, что приводят конструкции MSIL к соответствующим конструкциям C# или другого языка, повышая читабельность кода.

Перейдём, собственно, к взлому.

0. Обнуление триала

Собственно, это даже не взлом, а полулегальный способ продлить срок использования неактивированной программы. Заключается он в том, что находится место, где хранится дата первого запуска и меняется/уничтожается. После этого всё можно пользоваться программой до следующего срока.

Посмотрим на нашего подопытного рефлектором:
Немного погуляв по коду, находим интересную строчку в конструкторе MainForm


Открываем редактор реестра, идём в HKEY_CURRENT_USER\Software\Ultrapico\Expresso и видим следующие ключи:


Удаляем их и получаем ещё 60 дней работы.

Данный вариант, конечно, прост и очевиден, но если он даже был бы сложнее - потребовалось бы чуть больше времени провести в рефлекторе, чтобы выяснить все места, куда пишется информация и зачистить их.

Совет разработчикам, которые будут пытаться записать данные в потаённое место: пишите аккуратнее, а то всё может обернуться проблемами обычным пользователям, у которых почему-то не окажется данного места, или не хватит на него прав.

1. Написание keygen"а

Самый ужасный для разработчика вариант, и самый приятный для конечного злобного пользователя. Программа считает себя лицензионной, никаких страшных телодвижений не нужно делать.

Открываем рефлектор и ищем код на предмет классов содержащих License или Registration, видим:

При вводе имени и кода по имени вычисляется некий хеш, который и сравнивается с кодом.


Данный хеш использует DES и всякие префиксы


Байты конвертятся в строку с помощью данного метода.

Теперь всё выяснилось, открываем IDE и копируем все необходимые куски кода (или сами реализовываем). Осталось только выяснить, какие значения у Prefix, Suffix и параметры реализации MyDES. Я их приводить не буду, это уже технические детали.

В результате генерируем ключ на любое имя и видим:


Бинго!

Защита от кейгенов проста и очевида: использовать в каком либо виде ассиметричное шифрование. Т.е. сделать так, чтобы без знания приватного ключа сгенерировать код было бы невозможно, а данный ключ находится только в одном месте - у автора программы.

2. Использование враппера

Проверка корректности лицензии, достаточно хлопотное дело, и небыстрое. Поэтому разработчики программ обычно проверяют лицензию один раз, и дальше используют полученный флажок - валидна/невалидна (как вариант насколько валидна, если допускается несколько типов лицензии, отличающихся возможностями). Тут можно на этом сыграть, использовав следующий алгоритм:
  1. Указать программе, что лицензия уже проверена
  2. Указать программе, что лицензия корректна
Как это сделать? Я уже упоминал о наличии метаданных в исполняемых файлах в начале, этим и воспользуемся. Посмотрим как запускается программа и как проверяется лицензия:


С запуском ничего интересного, а в проверке видно, что если уже программа зарегистрирована, то она считает, что всё хорошо и не делает дальнейшую работы по выяснению корректности лицензии.

Воспользуемся этим:
Сделаем новый проект, добавим Reference на Expresso.exe и запустим его через себя:


Смотрим, что получилось:


Ну кто бы сомневался.

В данном случае всё оказалось просто, но если бы автор программы заменил публичные свойства на приватные, то всего-лишь пришлось бы использовать Reflection для доступа и всё бы свелось к исходной задаче.

Думаю понятно, как можно пробовать защититься от этого - проверять лицензию периодически, смотреть окружение из которого запущена программа, сделать невозможным установку нужной переменной.

Но все эти защиты приведут к тому, что злоумышленник будет использовать

3. Физический взлом программы

Тут уже всё серьёзно. Программа целиком декомилируется в MSIL а из него уже собирается обратно (помните, я писал, что MSIL это такой же язык как и C#?). Для декомпиляции нам понадобится утилита из SDK под названием ildasm , а для компиляции компилятор из.NET Framework ilasm .

Запускаем ildasm, открываем Expresso.exe и сохраняем дамп в.il файл. Находим уже рассмотренный метод IsRegistered и добавляем немножко своего кода (без меток):

Потом берём ilasm и собираем всё назад (не забыв подключить ресурсы).

Что делает данный код: устанавливает нужное имя для регистрации (не обязательно), и возвращает статус, что всё хорошо.
Чтобы было понятнее, так это выглядит в рефлекторе, в C#

Т.е. вполне очевидно, что теперь всё будет хорошо:

Немного про код в MSIL: это стековая машина, у которой нет регистров, все операции имеют вид: засунуть в стек нужное количество параметров, выполнить функцию, которая заберёт нужное количество параметров и положит результат. Ну и обратно: установить значение переменной тем, что лежит в стеке. Чтобы лучше понять работу всего этого рекомендую простой приём: пишите маленькую программу на привычном языке, компилируете, смотрите что получилось в MSILe и разбираетесь в конструкциях языка.
При этом некоторые вещи в MSIL можно сделать очень красиво, например поменять две переменные местами - 4 симпатичных строчки (на C# меньше, но некрасиво).

Чем жертвует злоумышленник: подписью программы, теперь она уже не автора, а его. В некоторых случаях это проблема, если в программе используется множество библиотек. Тогда злобному хакеру придётся разбирать их все и собирать их заново, но если он с этим справится, то у него будет «своя» версия программы подписанная его ключом.

Защиты от всего этого безобразия собственно немного: проводить обфускацию или выносить часть логики/проверки защиты в нативный код.

Заключение

Думаю я рассказал, как просто всё можно разломать на.NET, если создатель не приложил усилий для защиты своей программы. А вы уж решайте, стоит ли делать защиту и тратить на это время и ресурсы. А может просто сделать web-систему, или же бесплатную ограниченную версию. Решать разработчикам.

При подборе пароля никто не гарантирует успех данного предприятия). Однако существуют некоторые правила, которые способны значительно повысить Ваши шансы на благоприятный исход этого дела.

С чего начать

  1. Зачастую требуется не только пароль, но и логин. Если Вы пытаетесь подобрать логин, например, для проникновения в компьютер Вашего коллеги, используйте его имя. Если оно не подошло, посмотрите как этот человек называет сам себе в социальных сетях (Twitter, Facebook, Vkontakte и пр.) — зачастую это работает 100%.
  2. Посмотрите, есть ли ограничения на длину вводимого пароля или используемые символы. Зачастую пароль должен состоять из не менее чем шести символов и содержать минимум одну цифру. Если Вы не знаете, есть и такие ограничения, попробуйте завести свой собственный аккаунт, например на сайте, подбор пароля к которого Вы осуществляете — при регистрации Вам будет сказано о требованиях к паролям.
  3. Запросите вопрос-подсказку. Зачастую страницы ввода паролей имеют такую функцию. Как правило, в качестве вопросов-подсказок используют такие вопросы, как «Девичья фамилия матери?», «Как зовут Вашего домашнего питомца?», «В каком городе Вы родились?» и пр. Это позволит значительно сузить возможные варианты слов, особенно если Вы хоть что-то знаете о человеке!

Используйте уловки

  1. Просто угадайте пароль . Чаще всего люди пользуются одними и теми же стандартными паролями. Их список уже давно известен и постоянно пополняется). Ниже Вы найдете 25 самых распространенных паролей (по версии Splash Data):
    password
    123456
    12345678
    abc123
    qwerty
    monkey
    letmein
    dragon
    111111
    baseball
    iloveyou
    trustno1
    1234567
    sunshine
    master
    123123
    welcome
    shadow
    ashley
    football
    jesus
    michael
    ninja
    mustang
    password1

    А вот некоторая статистика:
    4,7% пользователей используют пароль password;
    8,5% пользователей выбирают один из двух вариантов: password или 123456;
    9,8% пользователей выбирают один из трёх вариантов: password, 123456 или 12345678;
    14% пользователей выбирают один из 10 самых популярных паролей;
    40% пользователей выбирают один из 100 самых популярных паролей;
    79% пользователей выбирают один из 500 самых популярных паролей;
    91% пользователей выбирает один из 1 000 самых популярных паролей.

  2. Применяйте известные правила подбора . Опытным путем установлено, что если пароль имеет в своем составе цифры, то это будет цифра 1 или 2, и она будет находиться в конце него. Также, если пароль имеет заглавную букву, то она будет в самом начале слова, а за ней будет идти гласная.
  3. Пол человека может дать подсказку . Известно, что женщины в качестве паролей предпочитают использовать личные имена (имя мужа либо любовника), а мужчины — свои хобби и интересы (название любимой спортивной команды, марки автомобиля и пр.).

Используйте информацию, относящуюся к человеку

  1. Имена собственные: имена супругов, членов семьи, домашних питомцев, спортсменов, детские клички и пр.
  2. Хобби и интересы: названия любимых передач, героев фильмов, профессий, кулинарные блюда и пр.
  3. Важные числа и даты: день рождения, адрес, номер телефона и т.д.