Продолжим иследовать программы при помощи IDA Pro и мегаполезного мануала от Рикардо Нарваха который можно посмотреть на русском тут. Сегодня займемся главой 16 где рассматривается вычисление серийника на основе имени пользователя. В принципе я уже рассматривал такой случай в предыдущей статье под названием "Разбираем crackme - XYZ_KeygenMe20110405". Этот же пример будет гораздо проще, так как там используются стандартное Win API, а не извращенства от китайского друга :)
Итак берем crackme из 1 Главы по ссылке.
Открываем его в IDA Pro и смотрим снова, что мы там можем сделать.
28 мая 2012 г.
23 мая 2012 г.
Разбираем crackme - XYZ_KeygenMe20110405
От скуки зашел на сайт http://crackmes.de, тыкнул на угад в поисках чтоб поломать и выпал мне crackme от китайского товарища по имени Xia Yuanzhong. Ну чтож, написанно что очень легкое, вот и потренируемся в ломании и написании генератора ключей.
21 мая 2012 г.
Введение в реверс инженеринг используя IDA - Глава 4
14 мая 2012 г.
Введение в реверс инженеринг используя IDA - Глава 3
Сегодня займемся разборкой следующей главы Рикардо Нарваха под номерм 14, которая рассматривает еще один вид жестко прописанного серийника в коде программы, но реальный серийник будет вычилятся. Посмотреть эту статью на русском можно на сайте wasm.ru например тут.
12 мая 2012 г.
Исключения в Windows.
А сегодня поковыряемся в темных закоулках исключений Windows. Они созданы для того, чтобы обрабатывать всякие ошибки, например если возникает деление на ноль или запись в ячейку памяти которая защищена от записи. По умолчанию мы получим сообщение типа "Application Error.", а в Windows Vista/Seven вообще можно ничего не получить, программа просто закроется.
Итак, как это можно использовать в своих целях, ну например для антиотладки и запутывания логики программы. Для начала небольшая теория:
Итак, как это можно использовать в своих целях, ну например для антиотладки и запутывания логики программы. Для начала небольшая теория:
10 мая 2012 г.
Немного про антиотладку.
Решил поколупать всякие простенькие приемчики антиотладки, конечно с плагинами которые вешаются на дебаггеры типа OllyDBG и IDA они не шибко помогут, но остановят начинающего крякера, да и самому интересно стало поковыряться.
7 мая 2012 г.
Введение в реверс инженеринг используя IDA - Глава 2
И снова начало тяжелой рабочей недели и чтобы немного скрасить рабочий понедельник, займемся исследованием очередного crackme при помощи IDA. Сегодня рассмотрим главу Рикардо Нарвахо под номером 13. Почитать ее на русском можно здесь.
Глава повествует как найти жестко прописанный серийник в программе. Для начала необходимо скачать файлы для испледования, например тут.
Глава повествует как найти жестко прописанный серийник в программе. Для начала необходимо скачать файлы для испледования, например тут.
2 мая 2012 г.
Введение в реверс инженеринг используя IDA - Глава 1
В основном я всегда для отладки пользовался отладчиком всех времен и народов OllyDbg. Это шикарный деббагер, который очень удобен и прост одновременно обладающий очень мощным функционалом. Но, в последнее время я все больше сталкиваюсь х64 программами, да и домашний компьютер у меня поднят на х64 операционной системе, а OllyDbg версии 1.10 не корректно работает на такой операционной системе, теряет точку входа и вообще печально все. Попытки использовать более новую версию 2.01а тоже не увенчались успехом, так как она виснет в неожиданный момент и перестает отвечать, можно конечно накатить кучу патчей от китайских друзей и более менее оживить дебагер, но все равно огромное количество багов и похоже прекращение разработки(с августа 2011 года никаких подвижек) заставило меня посмотреть в сторону Interactive Disassembler, сокращенно IDA. Это мощнейший инструмент для отладки и исследования программ который обладает кучей нужных и не очень не нужных свистелок и перделок.
Но он тоже обладает некоторыми минусами, которые меня всегда останавливали для изучения сего мощного инструмента:
1. Мало вменяемой документации, есть конечно книги от уважаемого господина К. Касперски, но они настолько древние, что читать их смысл есть, но в текущих реалиях не шибко большой, в основном для общего развития.
2. Цена сего продукта у X-Rays - стартовая лицензия более 500 австралийских долларов и это без X-Rays Decompiler, который стоит совсем каких то неадекватных денег.
Но разочарование OllyDbg возобладало над жабой и здравым смыслом и я решил заняться всетаки изучением IDA.
Но он тоже обладает некоторыми минусами, которые меня всегда останавливали для изучения сего мощного инструмента:
1. Мало вменяемой документации, есть конечно книги от уважаемого господина К. Касперски, но они настолько древние, что читать их смысл есть, но в текущих реалиях не шибко большой, в основном для общего развития.
2. Цена сего продукта у X-Rays - стартовая лицензия более 500 австралийских долларов и это без X-Rays Decompiler, который стоит совсем каких то неадекватных денег.
Но разочарование OllyDbg возобладало над жабой и здравым смыслом и я решил заняться всетаки изучением IDA.
27 апреля 2012 г.
Сеть Фейштеля
Иной раз необходимо зашифровать какойнить кусочек, причем желательно не банальным XOR, так как он расшифровывается без проблем частенько даже при наличии бумажки с ручкой, а чем нибудь более стоящим. Посложнее XOR но полегче и попроще чем AES или MD5.
Для этого один из американских ученых по фамилии Фейштель разработал алгоритм, в последствии который стал называться сетью Фейштеля. Он до сих пор используется в в качестве основного движка во многих алгортмах шифрования, да хотябы в том же MD5. Я рассмотрю основной движек, без навороченных навесок типа перемешивания и прочего.
Смысл его в чем:
Для этого один из американских ученых по фамилии Фейштель разработал алгоритм, в последствии который стал называться сетью Фейштеля. Он до сих пор используется в в качестве основного движка во многих алгортмах шифрования, да хотябы в том же MD5. Я рассмотрю основной движек, без навороченных навесок типа перемешивания и прочего.
Смысл его в чем:
23 апреля 2012 г.
Длинная арифметика: Сравнение
Для следующей арифметической операции под названием деление, а именно вычисления модуля числа, нам необходима процедурка - сравнение. В принципе она очень проста, алгоритм заключается в следующем, сначала мы сравниваем длину числа в байтах, то число которое длиннее - всегда будет больше чем короткое. Если длина чисел равна, то сравниваем пару сатрших цифр в числах, если цифра в числе 1 больше, то значит число 1 больше и наоборот, если же они тоже равны то сдвигаемся на одну в право и повторяем сравнение,пока какая то цифра не окажется больше или меньше. Если все цифры закончились, но так и не найдено большее число, тогда считаем что оба числа равны.
А теперь все это на ASM:
А теперь все это на ASM:
Подписаться на:
Сообщения (Atom)