| 
 Crazy Cow очень простой взлом
 
 |  | Российские хакеры взломали бортовой компьютер российского истребителя
СУ-27. Теперь боекомплект самолёта пополняется автоматически и у
летчика есть шанс выйти на следующий уровень. | 
 
 
Target: Crazy Cow
 
Tools:    
 
          Немного мозгов
          Win32Dasm 8.93
          Hex-редактор
 
Пролог
 
     Вступление:
 
     Побудила к взлому слезная прозьба моего друга Satan'a.  Мол,  чертов
скринсавер перестал работать, помоги. Ну что ж не помочь, делать было не-
чего и я взялся!
 
     Что за прога:
 
     Скринсавер бешеная корова. Минимальные системные требования: 486-60МГц,
8 Мб оперативки, Win9x.
 
     Предупреждение:
 
     Люди уже умеющие ломать: не читайте этот тьюториал, он предназначен
для начинающих.
 
Начало
 
     Первое, что стоит отметить везде написано, что это фривара и никакой
регистрации не нужно?!!! А почему тогда пишет срок вышел?  Инфы,  что это
бета-версия я тоже не нашел. Дизассемблируем файл Crazy Cow. scr и  прис-
тупим.
 
Взлом
 
     Ищем в секции строк строку с надписью типа "expired", нашлась. Взлом
обещает быть легким.
 
	Смотрим этот участок кода
 | 
 
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00407343(C)
|
:004073DB 8B0D28F94000 mov ecx, dword ptr [0040F928]
:004073E1 83E101       and ecx, 00000001
:004073E4 85C9         test ecx, ecx
:004073E6 0F84B3000000 je 0040749F
...
:00407457 8945EC       mov dword ptr [ebp-14], eax
:0040745A 6A1D         push 0000001D
* Possible StringData Ref from Data Obj ->"Your screensaver has expired."
                        |
:0040745C 6870F94000   push 0040F970
 | 
 
 
Здесь видно, что все зависит от значения в 40F928. Посмотрим, где при-
сваивают значение этой переменной. Для этого перемещаемся к началу текста,
заходим в поиск и набираем 40F928 и вываливаемся здесь.
 | 
 
:004072AA 56             push esi
:004072AB E8B0EEFFFF     call 00406160
:004072B0 85C0           test eax, eax
:004072B2 0F85FD010000   jne 004074B5
:004072B8 833D3005410000 cmp dword ptr [00410530], 00000000
:004072BF 0F85F0010000   jne 004074B5
:004072C5 A128F94000     mov eax, dword ptr [0040F928]
:004072CA 83C001         add eax, 00000001
:004072CD A328F94000     mov dword ptr [0040F928], eax
 | 
 
 
Так, так, так меня интересует процедура по адресу 406160,  ведь  если
в eax возвращается один, то процедура не выполняется. Заходим в процедуру
 | 
 
* Referenced by a CALL at Addresses:
|:0040646E   , :004066A9   , :004069E9   , :00406EBB   , :00406FF7
|:004072AB   , :00407782
|
:00406160 55             push ebp
:00406161 8BEC           mov ebp, esp
:00406163 833D90F8400000 cmp dword ptr [0040F890], 00000000
:0040616A 7419           je 00406185
:0040616C E8A3210000     call 00408314
:00406171 F7D8           neg eax
:00406173 1BC0           sbb eax, eax
:00406175 40             inc eax
:00406176 A3BC034100     mov dword ptr [004103BC], eax
:0040617B C70590F8400000000000  mov dword ptr [0040F890], 00000000
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040616A(C)
|
:00406185 A1BC034100     mov eax, dword ptr [004103BC]
:0040618A 5D             pop ebp
:0040618B C3             ret
 | 
 
 
Эта процедура вызывается из многих мест, возможно, что она  основная,
здесь и будем править. Выделенный переход, едиственное что может помешать,
чтобы в eax была 1. Значит надо переход убрать или перенаправить, я пред-
почел второе. Перенаправляем переход на 406171. Для этого высчитываем, что
должно стоять вместо 19h, смотрите у процедуры  длинна  байт = 5,  а  эта
строка сразу после процедуры. Значит вместо 19h будет 05h.
	Заходим в файл и исправляем по адресу 616B 19h на 05h. Все.
 
Послесловие
 
    Товарищи программисты. Я так и не понял смысл этого временного огра-
ничения, если кто знает прошу сообщить.
 
    Господа начинающие крэкеры. Это программа проста для взлома, так что
можете смело на ней тренироваться.
 
Все ругательства отправлять в null Все остальное на lomovskih@yandex.ru
 
P.S. Запомните все материалы публикуются только в учебных целях и автор за их использование ответственности не несет!! 
 
P.P.S. Возможно имеют место опечатки, заранее извините! 
 
With best wishes Fess
 
И да пребудет с вами великий дух bad-сектора. 
 |