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



Reply With Quote
Thanks
