R0 CREW

Neffarion :: 0xl2 :: .Net Cracking #1 - HTTP Authentication (Перевод: Prosper-H)

0xl2 :: .Net Cracking #1 - HTTP Authentication

Введение

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

Информация о цели

Имя… PwnBoxer.exe [ download ]
Разрабочик… PwnBoxer.com
Инструмент… OllyDbg

Adficio

Создатель PwnBoxer видимо тот же парень, который написал Mousecloner, миниатюрную программу, которая должна быть бесплатной, но на удивление это не так. Так же как и Mousecloner, эта программа, использует точно такую же online-регистрацию, которая является дешевой попыткой, связать людей, которые покупают эти программы, с аппаратным ключом, что бы предотвратить их повторное использование где-то еще. После того, как пользователь вводит серийный ключ, программа попытается проверить его online и, в конце концов, пользователю на компьютер, приходит ответ от сервера, который либо разрешает, либо запрещает использование последней.

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

Рисунок 1. Результат сканирования Exeinfo

2 - a. Запустите PwnBoxer.exe
b. В поле “Registration Key” введите любой текст
c. Нажмите REGISTER

Рисунок 2. Ошибка

Всякая система регистрации, в ответ на пользовательские данные, возвращает положительный или отрицательный результат. Поскольку есть много реверсеров, постольку есть много способов обойти подобную защиту. Например, меберы команд “FFF” или “DEViANCE” хотели бы разобрать алгоритм проверки этой программы, в то время как мемберы из команды “+ORC” и я предпочли бы подход дзен-взлома.

Есть только 2 ответа в жизни: Да или Нет. Дзен-крэкеров не беспокоит код, который отвечает за проверку данных, введенных пользователем, или значений, возвращаемых в ответах от сервера, вместо этого мы думаем лишь о той части кода, которая просто говорит Да или Нет.

3 - a. Загрузите PwnBoxer.exe в OllyDbg b. Клацните правой кнопкой мыши и выберите "Search for => All referenced text strings" c. Прокрутите в самый верх, появившегося окна, выберите первую строку, клацните правой кнопкой мыши и выберите "Search for text" c. В поле поиска введите "Wrong registration key"

Рисунок 3. Поиск ошибки

Рисунок 4. Результат поиска

Где-то тут мы видим два сообщения (по адресам):

  • 0x41CCED: Thank you for registering PwnBoxer
  • 0x41CD8D: Wrong registration key

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

5 - a. Клацните правой кнопкой мыши "на плохом сообщении" и нажмите "Follow in Disassembler" (или нажмите [ENTER])

Рисунок 5. Место вывода сообщения об ошибке

6 - a. Нажмите мышкой на 0x41CD86 и посмотрите в информационное окно:

Рисунок 6. Ссылка на сообщение об ошибке

Мы видим, что из адреса 0x41CD3F происходит прыжок на сообщение об ошибке.
Неупакованные программы очень легко взламываются, потому что нет искаженных или перемещенных функций. Все что вам нужно сделать, для взлома такой программы, это пропатчить джамп по адресу 0x41CD3F на переход по адресу у 0x41CD00, что находится одной строкой ниже сообщения “Thank you for registering PwnBoxer”, которая в свою очередь, является кодом, который выполняется, если введенные пользовательские данные действительны. Вы можете пойти еще дальше и использовать PE Editor для полного удаления окна регистрации и окна выводящего “Message of the Day (Сообщение Дня)”.

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

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

  • Создайте функцию, которая будет проверять есть ли соединение с доверенным хостом. Если соединения нет – просто закройте программу. Выводите результат этой функции (например: “1011” означает “успех”, а “0100” означает “неудачу”) в не вызывающий подозрений файл (например: “\windows\drivers\vgamon32p.drv”). Используя очень правдоподобное имя или, по крайней мере, что-то похожее на реальный системный файл, можно попытаться обмануть реверсера, выдав его за необходимый модуль.
  • Никогда не записывайте регистрационные данные в реестр, потому что в отладчике можно достаточно легко увидеть какие именно данные хранятся и читаются из реестра. В основном, такого рода информация, хранится в открытом виде.
  • Используйте строки юникода, для таких сообщений как “Wrong registration key” и задавайте их в символьной форме. Например: задайте каждую строку посимвольно, строка “hello” выглядела бы так “chr(104)+chr(101)+chr(108)+chr(108)+chr(111)”.
  • Всегда используйте упаковщик, либо создайте свой, либо используйте один из существующих (ASProtect, Yoda’s, UPX, etc). Хотя упаковщик не сделает вашу программу 100% защищенной от взлома – это доставит реверсеру некоторое неудобство, поскольку ему придется распаковать ее до того, как он сможет приблизиться к самой программе. Некоторые реверсеры даже не имеют хороших навыков распаковки, поэтому вы смогли бы просто помешать, некоторым, взломать вашу программу.

Ни какие программы никогда не будут защищены от взлома, даже мои. Существует 2 вида реверсеров: варез-взломщики и дзен-взломщики. Варез-взломщик может приложить настолько много усилий, что бы прорваться через вашу защиту, разложив ее на кусочки, что нет практически ничего, что могло бы остановить его. Дзэн-взломщик просто посмотрит на вашу программу и взломает ее, найдя ее ахиллесову пяту.

Человечество было создано с намерением быть несовершенным и варез и дзен-крэкеры знают это лучше чем кто-либо еще.

+Neffarion
http://www.0xNeff.eu

© Translated by Prosper-H from r0 Crew

Попробовал крякнуть программку при помощи этого гайда Mousecloner от создателя проги которая указана в примере, понял что способ кряка уже устарел и хотелось бы узнать как крякнуть теперь?

Прочитав еще пару раз тему я понял что за 3 года он усовершенствовал свои навыки и защита стала еще более закрученной как в моем случае