5.0 0.5 5 13

Как взломать код?

Галина Девяткина
Галина Девяткина
23 сентября 2014
1594
Оцените:
Как взломать код?

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

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

Принцип работы .Net программ

К .Net языкам программирования относятся: C#, Visual Basic, F#, Delphi.Net. Код софта, прописанный на данных языках, компилируется в MSIL или IL (Intermediate Language), который представляет собой стековый механизм без регистров. Процесс работы в нем выглядит так:

  1. В стек входит функция с определенным количеством переменных;
  2. Функция выполняется;
  3. На выходе получается результат.

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

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

Продление срока использования программы

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

  1. Для осуществления задуманного следует зайти в конструктор Main Form и найти ссылку на ключи в ExpressoKey.
  2. Далее нужно открыть редактор реестра по ссылке, где располагаются ключи. Удалив их, можно продлить срок работы программы.

Здесь совет разработчикам: есть возможность записать данные в "потаенное место". Главное, чтобы у пользователя они нашлись.

Как сделать софт лицензионным

Для того чтобы взломать и лицензировать программу, нужно:

  1. Зайти в рефлектор и найти место в тексте, отвечающее за License или Registration.
  2. Ввести имя и код, по которым рассчитывается хеш, и сравнить их.
  3. Теперь требуется открыть IDE и заполнить требуемый кусок в коде через копирование или путем дописывания. При этом нужно определиться с параметрами Prefix, Suffix и переменными реализации MyDES. Это все относится к техническим моментам.

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

Проверка правильности лицензии

Разработчики софта обычно просматривают лицензию единожды, а дальше просто применяют флажок: есть или нет.

Обойти этот момент можно двумя способами:

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

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

Физический взлом софта

Под физическим взломом подразумевается декомпиляция всей программы в MSIL с последующим обратным сбором. При этом нужно использовать утилиту SDK с названием ildasm и компилятор из .Net Framework ilasm. Процедура следующая:

  1. Загружается ildasm;
  2. Производится запуск Expresso.exe и сохраняется дамп в il. файле;
  3. Находится метод IsRegistered и меняется код (без меток);
  4. С помощью ilasm собирается все обратно.

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

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

Подписывайтесь на наши группы в социальных сетях - смешные статьи, картинки и факты!