Как взломать программу?

Галина Девяткина
Галина Девяткина
1 октября 2014
6780
Оцените:
Как взломать программу?

Смотрите видео

Как взломать программу?

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

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

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

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

Сейчас вы узнаете о часто используемых способах взлома злоумышленниками, чтобы начать эффективно бороться с несанкционированным доступом к программам и усовершенствовать систему защиты. Статья 159.6 Уголовного кодекса Российской Федерации предусматривает максимальный срок наказания до 10 лет лишения свободы за мошенничество в сфере компьютерной информации.

Способы взлома

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

Примером такого сайта служит Espresso, предоставляющий бесплатный доступ без регистрации на 60 дней после установки. Надо отметить, что программы на .Net представляют собой код, написанный языком Delfi.NER, С#, F# или Visual Basic, и который компилирован в MSIL или IL. Поэтому неправильно в этом случае применять понятие декомпиляции программного обеспечения, так как прога находится в открытом доступе, а такие программы, как Reflector’ способны повысить читабельность кода, преобразуя MSIL согласно конструкции языков F#, C# и других.

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

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

  1. Находим место хранения даты инсталляции программы.
  2. Изменяем ее или удаляем.

На примере Espresso:

  1. С помощью Reflector просматриваем код.
  2. В конструкторе MainForm находим строчку this.ExpressoKey=@ «Software\\Ultrapico\\Expresso».
  3. Открыв редактор реестра, заходим в HKEY_CURRENT_USERSoftwareUltrapicoExpresso и ищем ключи, содержащие информацию о дате первого запуска программы.
  4. Удаляем их.

Теперь срок действия программы удалось продлить еще на 60 дней!

Написание keygen’а

  1. Открываем Reflector’ и ищем код, содержащий классы Registration или License. К примеру, код Expresso выглядит так: Public bool IsValid(string UserName, string RegistrationCode)
  2. При вводе UserName и Соde, по имени происходит вычисление хеш, который в последующем сравнивается с кодом. Public string ComputeCode (string UserName). Этот хеш использует префиксы и DES.
  3. Открываем IDE, копируем все необходимые элементы-коды.

Выяснив значения у Prefix, Suffix, параметры реализации MyDES, можно в конечном итоге сгенерировать ключ под любое заданное имя.

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

Использование враппера служит третьим вариантом взлома. Так как проверка лицензии очень проблематична и занимает кучу времени, основатели программ проверяют лицензию всего 1 раз, а потом устанавливают флажок - валидна она или нет. Этот момент может использоваться при взломе, достаточно указать программному обеспечению, что проверка лицензии уже проводилась или что она валидна. Для взломщиков здесь существуют некоторые сложности, так как программное обеспечение декомпилируется в MSIL, а затем собирается обратно.

Для проведения процесса декомпиляции требуется утилита ildasm из SDK, а в качестве компилятора используется Framework ilasm. При данном способе оригинальная подпись заменяется на подпись взломщика, в результате чего могут возникнуть проблемы при работе с библиотеками, ведь их необходимо будет разбирать, а затем снова собирать. Но зато в итоге получаем бесплатную программу с собственным ключом.

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

Рекомендации

  1. На основании предложенной информации можно эффективно бороться с несанкционированным доступом и взломом программ злоумышленниками, создать более эффективную систему защиты.
  2. Делаем вывод, что программы на .NET очень просто взломать, если разработчик не был достаточно осторожен. Вопрос о целесообразности затрат времени и ресурсов на защиту программного обеспечения решать только создателям.
  3. В качестве альтернативного варианта стоит рассмотреть возможность создания web-системы или бесплатной версии программы с ограниченными функциями.
Подписывайтесь на наши группы в социальных сетях - смешные статьи, картинки и факты!