+ Reply to Thread
Results 1 to 1 of 1

Thread: Neffarion :: 0xl3 :: .Net Cracking #2 - Classes (Перевод: Prosper-H)

  1. #1
    Prosper-H's Avatar

    Default Neffarion :: 0xl3 :: .Net Cracking #2 - Classes (Перевод: Prosper-H)

    0xl3 :: .Net Cracking #2 - Classes


    Введение

    Большинство современных языков программирования поставляются с встроенными криптографическими библиотеками. Эти библиотеки основаны на публичных алгоритмах таких как: MD5, DES, BASE64, etc. Хоть такие библиотеки и предоставляют возможность программистам, которые не достаточно разбираются в криптографии, использовать некоторые из этих алгоритмов, это все же не является хорошей идеей, что бы переходить на эти функции. В этом уроке мы рассмотрим .NET программы, с проверкой серийного ключа, которые используют подобные функции.

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

    Имя................. keygenme2.exe [ download ]
    Разработчик..... Rendari AKA
    Инструменты.... Reflector [ download ], Visual C# 2008 [ download ]

    Adficio

    Безопасная система не должна разрабатываться ни на каком .NET языке, ввиду дизайна .NET . В отличие от программ "старой школы" – исходный код .NET программ может быть восстановлен в буквальном смысле этого слова. Отличной программой, для анализа .NET приложений, является "Reflector".

    1 - a. Загрузите keygenme2.exe в Reflector
    b. Клацните правой кнопкой мыши на "Form1" и выберите "Disassemble"


    Рисунок 1. keygenme2.exe в Reflector

    Reflector - может предоставить очень детальную информацию о .NET приложении. Давайте посмотрим как далеко, в конечном итоге, мы сможем зайти :)


    Рисунок 2. Разворачивание Методов


    Рисунок 3. Развернутые методы (события)

    На Рис. 3 вы можете видеть "события" (так же называемые "Методами") которые происходят в Form 1. По содержанию этого изображения ясно видно, что Button 1 это кнопка, которая проверяет введенные пользователем данные. Нам не нужно идти дальше, потому что мы уже нашли то, что искали. Дзэн-реверсер ищет только то, что имеет непосредственно отношение, к тому, что бы обойти защиту. Все остальное – не имеет значения.

    Класс EncryptTripleDES берет текст из TextBox1 (передается как параметр) и возвращает результат в строку "sRight". Немного проанализировав код программы, становится ясно, что в ней производится конвертация имени в хэш TribleDES, после чего, с помощью полученного хэша, осуществляется проверка на соответствие введено пользователем ключа. Зная это мы может начать разработку кейгена :)

    4 - a. Запустите Visual C# 2008 и создайте новый проект "Windows Form Application"


    Рисунок 4. Создание кейгена

    5 - a. На форме размещается: два текстовых поля и одна управляющая кнопка (дизайне не важен, размещайте их как хотите)


    Рисунок 5. Дизайн кейгена

    Красота реверсирования .NET приложений заключается в том, что вы можете комфортно импортировать классы, используя для этого Reflector. Так как у нас уже есть проект (кейгена), мы просто скопипастим класс EncryptTripleDES :)

    6 - a. В Reflector’e клацните мышкой на EncryptTripleDES (в методе кнопки Button1)


    Рисунок 6. Вход в класс


    Рисунок 7. Содержимое функции EncryptTripleDES

    Прежде чем мы сможем использовать этот класс, нам в первую очередь нужно связать его с нашим обработчиком в кейгене. К счастью для .NET программ это очень просто: нажмите на TripleDESCryptoServiceProvider в классе EncryptTripleDES (Рис. 7) и вы переместитесь в соответствующий модуль. Затем посмотрите в нижнее левое окно, где вы увидите модуль, который содержит этот класс.


    Рисунок 8. Модуль класса EncryptTripleDES

    9 - a. Объявите этот модуль в вашем кейгене как:


    Рисунок 9. Объявление модуля

    10 - a. Скопируйте класс EncryptTripleDES в ваш keygen как:


    Рисунок 10. Добавление класса в кейген

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

    11 - a. Объявите класс в коде управляющей кнопки и передайте в параметр "sIN" текст первого поля, а возвращенный результат выведите во второе текстовое поле.


    Рисунок 11. Использование класса

    Поздравляю! Вы успешно отреверсировали программную защиту .NET приложения и написали кейген для нее ;)


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

    © Translated by Prosper-H from r0 Crew
    Дорогу осилит идущий. (К. Касперски)

    Двери есть везде. Просто нужно знать, как в них войти. ("Хроники Амбера", персонаж: Корвин)

  2. 2 пользователя(ей) сказали cпасибо:
    Heroin (22-10-2011) ximera (23-10-2011)
+ Reply to Thread

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
All times are GMT. The time now is 01:35
vBulletin® Copyright ©2000 - 2018
www.reverse4you.org