Rambler's
Top100

Исследование защиты ViPNET [TermiNET] 1.81.0.31

Автор: FEUERRADER
Дата: 12.05.2003
Раздел: Reverse Engineering


  Программа: ViPNET [TermiNET] 1.81.0.31
     Размер: 2158592 байт
       Язык: Microsoft Visual C++ 6.0 [Analysed by PeID]
     Защита: файловая лицензия
       Цель: исследование/взлом
Инструменты: Win32Dasm 9.0, HIEW 6.03

Описание: программа ViPNet [TermiNET] - это персональный сетевой экран, предназначенный для защиты компьютера от атак из Интернет. Да, хороший файрволл, иногда срабатывает, когда к тебе лезут непрошенные гости. При запуске выползает наг с напоминанием о том, что наши дни сочтены. Так больше нет ограничений, кроме этого проивнога наг-скрина.
Удалось выяснить следующую информацию:
Ключ с триал информацией: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\SYSTEM
Параметр с паролем: DRUN
Параметр с датой установки: DALARM
Параметр с датой истечения триала: DALERT
Т.е. можно управлять триалом. Но надо избавиться от нага.
Исследование: Дизасмим прогу...теперь откроем SDR (string data reference), ну список с доступными строками. Ищем строку: String Resource ID=40452: "The system time is invalid. Please set the correct time on y". Она встречается в тексте 2 раза. Щелкаем пару раз и останавливаемся на адресе 43572F. Смотрим чуть выше:

:004531E5 E872E6FAFF              call 0040185C  //проверка на изменение
:004531EA 85C0                    test eax, eax  //системного времени
:004531EC 744D                    je 0045323B

* Possible Reference to String Resource ID=40452:
       "The system time is invalid. Please set the correct time on y"
                                  |
:004531EE 68049E0000              push 00009E04
:004531F3 8D4C2404                lea ecx, dword ptr [esp+04]

Что, если сделать прыжок на 45323B?

:0045323B 8D4C2404                lea ecx, dword ptr [esp+04]

* Reference To: MFC42.MFC42:NoName0536, Ord:09D2h
                                  |
:0045323F E8A4B90200              Call 0047EBE8     <--Вызывется наг
:00453244 83F801                  cmp eax, 00000001 <--если в окне нага НЕ нажали
:00453247 755E                    jne 004532A7      <--OK, то прыгаем на ошибку
:00453249 8B442464                mov eax, dword ptr [esp+64]
:0045324D 85C0                    test eax, eax     <--если в окне нага НЕ нажали
:0045324F 7456                    je 004532A7       <--OK, то прыгаем на ошибку
:00453251 8D8C24A8000000          lea ecx, dword ptr [esp+000000A8]
:00453258 C78424B800000004000000  mov dword ptr [esp+000000B8], 00000004
:00453263 E81EF3FAFF              call 00402586
:00453268 8D4C2468                lea ecx, dword ptr [esp+68]
:0045326C C68424B800000003        mov byte ptr [esp+000000B8], 03

* Reference To: MFC42.MFC42:NoName0096, Ord:02FDh
                                  |
:00453274 E8F5BD0200              Call 0047F06E     <--вызывает саму прогу

Т.е., как Вы понимаете, после того, как нажата кнопка в наге, в еах возвращается 0,1,2 и т.д. Кнопка ОК возвращает 1. Тогда, NOPим CALL 0047EBE8, заменяем прыжок
:00453247 755E jne 004532A7 на
:00453247 7500 jne 00453249
А также заменяем ниже:
:0045324F 7456 je 004532A7 на
:0045324F 7400 je 00453251

Получается, что прога думает, что в наге нажали ОК, хотя мы его вообще не вызывали (заНОПили). В общем всё, но давайте уберем переход, на котором вызывается мессага "The system time is invalid..." (см. выше).
:004531EC 744D je 0045323B
:004531EC EB4D jmp 0045323B

Теперь точно всё, прога взломана, вот кряк:

Difference(s) between Terminet.exe & cracked.exe
==============резать=тут==================
000531EC: 74 EB
0005323F: E8 90
00053240: A4 90
00053241: B9 90
00053242: 02 90
00053243: 00 90
00053248: 5E 00
00053250: 56 00
==============резать=тут==================

Послесловие: в интернете найден кряк для версии 1.82.0.39 от TSRh Team. Естественно, кряк к версии 1.81.0.31 не подходит. Для интереса я распаковал сам кряк и при помощи отладчика (так как проверяется CRC32) сделал так, чтобы кряк пропатчил прогу. Выяснилось, что также патчатся штук 6 байт (не помню толком) на NOP. Видимо также как я выше описал заNOPивается какой-то CALL и переходы. Похоже, если не сменится регистрация, этот кряк может быть универсальным и в последующих версиях ViPNET [TermiNET].

Спасибо за интерес к этой статье!



Все права защищены ©  2003 
...::FEUERRADER::...




Rambler's Top100