ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > Реверсинг
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Взлом Defrag Professional Version 10
  #1  
Старый 20.08.2007, 20:56
Аватар для 0x0c0de
0x0c0de
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме:
4226446

Репутация: 1564
Отправить сообщение для 0x0c0de с помощью ICQ
По умолчанию Взлом Defrag Professional Version 10

Взлом Defrag Professional Version 10
[Инструменты]
OllyDbg – отладчик
Restorator – редактор ресурсов
Hiew – хекс редактор.

[Интро]
Итак, попалась мне эта программа. Стандартные средства Windows по проведению дефрагментации меня в принципе устраивали, но вроде как попробовать что-то альтернативное хотелось (зачем?). Запустила прогу, а она говорит, что у меня 30 дней триала. И через эти 30 дней меня лишат всех благ данного продукта. Такой расклад меня категорически не устраивал…. Что ж… будем исправлять.

[Crack it!]
Итак, что мы видим. Программа просит регистрации. Причем просит следующим образом. У нас есть Registration Wizard. Поясняю что это значит. То есть прохождение каждого шага регистрации сопровождается нажатием кнопки “Next”, ну и при успешном завершении “Finish”. По моим наблюдениям в подобного рода программах процедура проверки введенных данных находится в непосредственной близости от вызова функции GetParent (хотя не факт, но это было возможной зацепкой)…
Загружаю программу в Olly и вижу такой старт-ап

Код:
004776BA o>  E8 E59F0000                 CALL oodcnt.004816A4
004776BF   ^ E9 17FEFFFF                 JMP oodcnt.004774DB
004776C4     55                          PUSH EBP
004776C5     8BEC                        MOV EBP,ESP
Мало похоже на стандартный(( . Быстро посчитала энропию в PeID, тот сказал “Not Packed”. Это радует). Тогда будем изучать … Первый call … Не нахожу в нем ничего похожего на начало нормального гуи приложения. Ладно, посмотрим что у нас по джампу

Код:
004776BF   ^ E9 17FEFFFF                 JMP oodcnt.004774DB
Хы))) И обнаруживаю с++ старт-ап)))

Код:
004774DB     6A 60                       PUSH 60
004774DD     68 08F85F00                 PUSH oodcnt.005FF808
004774E2     E8 9D7D0000                 CALL oodcnt.0047F284
004774E7     8365 FC 00                  AND DWORD PTR SS:[EBP-4],0
004774EB     8D45 90                     LEA EAX,DWORD PTR SS:[EBP-70]
004774EE     50                          PUSH EAX
004774EF     FF15 98E35A00               CALL DWORD PTR DS:[<&KERNEL32.GetStartupInfoW>]      ; kernel32.GetStartupInfoW
004774F5     C745 FC FEFFFFFF            MOV DWORD PTR SS:[EBP-4],-2
Классно)). Но что тогда делает первый call? Ладно, оставим его. Запускаем, программа показывает экран приветствия, порывается потребовать регистрацию, показывает окно, и…… выбрасывая исключение, завершается… Неужели антиоладка? Причем я перепробовала все имеющиеся плагины с максимальными функциями… Но программа упорно не хотела работать под отладчиком. Тогда я вспомнила про этот странный call на entry point.. Антиотладка? Проверяю….. Занопила его и в hiew…. программа заработала под Олей на ура)).
По поводу защиты у меня была идея с GetParent, и я стала ее опробовать. Однако, убив час-полтора, я поняла, что процедура, отвечающая за вывод злого диалога и регистрацию спрятана совсем не в главном модуле…. В директории с программой лежало много длл. Мое внимание привлекла dll oorwiz.dll (с комментарием O&O Registration Wizard) … Однако, просмотрев ресурсы в Restorator, я ничего интересного не нашла… Тогда будем проверять все библиотеки подряд….. Но это не принесло желаемого результата… В одной библиотеке был намек на диалог регистрации, но…. Ссылок на него я не нашла в исполняемом модуле и oorwiz. Это плохо. Тогда я стала присматриваться к защите. Когда триал еще не окончен есть три варианта действий.

*Enter registration code – ввести код
* Continue with unregistered version - юзать триал
* Buy now! – купить (не рассматривается)


Можно выбирать один из пунктов и нажать “Next”. Есть вариант нажать “Cancel”, но тогда вне зависимости от выбранного пункта высвечивается сообщение “Are you sure you want to end the registration process?”. Причем похоже на MessageBox… Если нажмем “Yes” программа завершится. Так. У нас опять есть зацепка… MessageBox… В Olly Dbg ставим точку останова на данную функцию. Сначала я поставила бряк на ASCII версию функи, но когда это не сработало, поставила на Unicode-вариант… И не ошиблась. Но адрес возврата из функции не соответствовал нашему исполняемому модулю, а соответствовал некой библиотеке. Этой библиотекой оказалась уже однажды попавшая под подозрение oorwiz… Тогда теперь будем снова проверять GetParent). Но уже в либе. Итак, ставим точки останова… Выбираем пункт “Enter registration code”… жмем “Next”.. брякаемся на GetParent в первый раз. Но это не тот вызов. Нам нужен вызов, который будет после ввода невалидного ключа. Пропускаем…. Вводим код, имя и название компании (или ничего не вводим)))… “Next” и … Попадаем сюда

Код:
0269578B     50                          PUSH EAX
0269578C     8B87 A0030000               MOV EAX,DWORD PTR DS:[EDI+3A0]
02695792     50                          PUSH EAX
02695793     51                          PUSH ECX
02695794     B9 48EB7002                 MOV ECX,oorwiz.0270EB48
02695799     E8 82E3FFFF                 CALL oorwiz.02693B20
0269579E     8B57 20                     MOV EDX,DWORD PTR DS:[EDI+20]
026957A1     52                          PUSH EDX
026957A2     FF15 68476F02               CALL DWORD PTR DS:[<&USER32.GetParent>]              ; USER32.GetParent
026957A8     50                          PUSH EAX
026957A9     E8 AE7E0100                 CALL oorwiz.026AD65C
026957AE     B9 48EB7002                 MOV ECX,oorwiz.0270EB48
026957B3     8BF0                        MOV ESI,EAX
026957B5     E8 E6E8FFFF                 CALL oorwiz.026940A0
026957BA     85C0                        TEST EAX,EAX
026957BC     75 6C                       JNZ SHORT oorwiz.0269582A
026957BE     3986 90130000               CMP DWORD PTR DS:[ESI+1390],EAX
026957C4     74 18                       JE SHORT oorwiz.026957DE
026957C6     8D86 30090000               LEA EAX,DWORD PTR DS:[ESI+930]
Вот… Гипотеза почти готова превратиться в научный факт). Первый call после GetParent никакого отношения к защитному механизму не имеет. Все интересные манипуляции начинают проводится во втором call

Код:
026957B5     E8 E6E8FFFF                 CALL oorwiz.026940A0
Там проверяются введенные данные. Если какое-то из полей пусто или введены неверные данные– функция проверки возвращает FALSE (0), если же все хорошо – в eax 1 (заветное TRUE). Довольно стандартно).
Теперь вывод: меняем тут (проверка возвращенного значения).

Код:
026957BA     85C0                        TEST EAX,EAX
026957BC     75 6C                       JNZ SHORT oorwiz.0269582A
Теперь патч. Захожу в hiew и вижу совсем другую ImageBase (10000000)… Что ж. Вполне справедливо.
Cнова гружу файл в Olly…. На этот раз я вижу ту же библиотеку, но опять по другому адресу. Поэтому все пришлось выполнить по новой(

Код:
020857BA    .  85C0                      TEST EAX,EAX
Мне надо было узнать смещение этого кода. Смотрим в Executable modules (Alt+E) в OllyDbg и ImageBase oorwiz.dll. А она (ImageBase) равна 02080000. Значит смещение относительно ImageBase 57BA. Теперь снова идем в hiew. И пишем полученный путем недолгих расчетов виртуальный адрес (10000000+57BA=100057BA). И меняем следующим образом. Джампы я править не люблю. Люблю править значения. Поэтому вместо test eax,eax пишу inc eax/nop. Перезапускаю.. Теперь программе все равно какой код введен, все равно для нее он правильный). И пользоваться можно после испытательного срока.

[The end]

Последний раз редактировалось 0x0c0de; 20.08.2007 в 22:03..
 
Ответить с цитированием

  #2  
Старый 20.08.2007, 23:08
Аватар для GoreMaster
GoreMaster
Участник форума
Регистрация: 28.05.2007
Сообщений: 125
Провел на форуме:
638513

Репутация: 103
По умолчанию

Жду статей по закейгениваю...мы все уже поняли,что патчить ты умеешь =)
 
Ответить с цитированием

  #3  
Старый 20.08.2007, 23:17
Аватар для 0x0c0de
0x0c0de
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме:
4226446

Репутация: 1564
Отправить сообщение для 0x0c0de с помощью ICQ
По умолчанию

GoreMaster, ok)))))). Хотите закейгенивание, будет закейгенивание.
 
Ответить с цитированием

  #4  
Старый 22.08.2007, 10:35
Аватар для Ra$cal
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

зачем править в hiew,если правится легко и без напрягов в олли? то, что ты правишь, не исправляет лоадер при смене базы загрузки, а сталобыть и олли не будет ругацо. hex-редакторы использовали во времена windasm и softice
 
Ответить с цитированием

  #5  
Старый 22.08.2007, 10:53
Аватар для 0x0c0de
0x0c0de
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме:
4226446

Репутация: 1564
Отправить сообщение для 0x0c0de с помощью ICQ
По умолчанию

И правда так удобней....... Чет я туплю(((((

Последний раз редактировалось 0x0c0de; 22.08.2007 в 11:00..
 
Ответить с цитированием

  #6  
Старый 22.08.2007, 11:01
Аватар для Ra$cal
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

лучше расписывай алгоритмы проверки, как находишь проверки, етц
зы:вот када допешу вм, будем что расписывать
 
Ответить с цитированием

  #7  
Старый 22.08.2007, 11:07
Аватар для 0x0c0de
0x0c0de
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме:
4226446

Репутация: 1564
Отправить сообщение для 0x0c0de с помощью ICQ
По умолчанию

Хорошо.. Хотя я канешн старалась максимально подробно расписать..
ЗЫ Спс за конструктивную критику)
 
Ответить с цитированием

  #8  
Старый 22.08.2007, 11:24
Аватар для Hellsp@wn
Hellsp@wn
Постоянный
Регистрация: 29.04.2007
Сообщений: 496
Провел на форуме:
2715445

Репутация: 588
По умолчанию

хех, что то все цели у тя слишком лёгкие, не айс это =))
возьми чтонить посложнее =)

з.ы. советую AutoDebug любую версию... я в своё время несколько дней просидел над этой прогой...
 
Ответить с цитированием

  #9  
Старый 22.08.2007, 23:52
Аватар для EB_FE
EB_FE
Новичок
Регистрация: 10.08.2007
Сообщений: 13
Провел на форуме:
32059

Репутация: 11
По умолчанию

0x0c0de
)))
У проги
O&O Defrag 8.5 Build 1788 Professional

Защита
StarForce V3.X DLL -> StarForce Copy Protection System

Там тоже Wizard: рег. код, триал или купить..

Последний раз редактировалось EB_FE; 22.08.2007 в 23:59..
 
Ответить с цитированием

  #10  
Старый 22.08.2007, 23:56
Аватар для GoreMaster
GoreMaster
Участник форума
Регистрация: 28.05.2007
Сообщений: 125
Провел на форуме:
638513

Репутация: 103
По умолчанию

Цитата:
StarForce V3.X DLL -> StarForce Copy Protection System
Жесть...хотя вроде есть тутор для третиё версии стара,но все равно ИМХО круто для нее такое..
если не ошибаюсь ядерная штука =)
лучше бы посоветовал фемиду снять =)
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ