Сейчас на форуме: Rio, johnniewalker, vsv1 (+6 невидимых)

 eXeL@B —› Крэки, обсуждения —› По взлому SpellForce перезагружается комп.
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 6.5 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 25 мая 2011 18:04 · Поправил: neutronion
· Личное сообщение · #1

Пытаюсь отвязать игру от cd, после вызова функции DeviceIoControl
этот запрос направляются драйверу, которая игра установила. После выполнения
этой функции, следующая команда в отладчике вызывает перезагрузку компа.
По аргументам функции видно, что передаетя код операции и адрес одной из секций программы.
В самом драйвере проводятся манипуляции с переданным адресом, вызываются такие функции как
MmProbeAndLockPages, MmMapLockedPagesSpecifyCache.
Вопрос такой по какой причине может перезагружаться комп. Дамп указывает ошибку в неком модуле
crthook.sys.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 25 мая 2011 18:09
· Личное сообщение · #2

Грузи дамп в виндбг да разбирайся. Возможностей перезагрузить комп из ринг0 с синим экраном овер 9000.



Ранг: 6.5 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 25 мая 2011 18:16
· Личное сообщение · #3

В дампах слабоват я, вот он, посмотрите, добрые люди.

eb41_25.05.2011_EXELAB.rU.tgz - Mini052411-05.dmp




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 25 мая 2011 20:24
· Личное сообщение · #4

Похоже на старый стар 3 или 4 версии. Если это так то забудь про взлом




Ранг: 57.7 (постоянный), 49thx
Активность: 0.070
Статус: Участник

Создано: 25 мая 2011 20:39 · Поправил: inffo
· Личное сообщение · #5

neutronion во-первых, проблема не в "crthook.sys", а в cpthook.sys.
А во-вторых, у тебя видимо установлена DriverStudio (SoftIce) попробуй либо обновить ее, либо удалить если не нужна

ADD: Ты случайно не под виртуальной машиной сидел (VirtualBox)? А то в логах дампа встречалась билиотека с VBoxDrv.sys.



Ранг: 6.5 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 25 мая 2011 20:52
· Личное сообщение · #6

Под виртуалкой запускается, но выполняется другой код, который говорит, что под отладчиком запускаться не будет, хотя в вируалке нет установленного softice. Хак делаю на основной машине. Дошел успешно до
расжатия protect.dll, в ней в принципе найдена функция, которая проверяет сд, однако до ее вызова выше, совсем не далеко, есть вызов DeviceIOControl, после которого ручной трейс отправляет машину спать.
Драйвера юзаются 3 штуки: sfdrv01, sfhlp02, sfsync02.



Ранг: 6.5 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 25 мая 2011 20:54
· Личное сообщение · #7

Nightshade пишет:
Похоже на старый стар 3 или 4 версии. Если это так то забудь про взлом

Почему? Никто не взламывал разве?




Ранг: 57.7 (постоянный), 49thx
Активность: 0.070
Статус: Участник

Создано: 25 мая 2011 21:17
· Личное сообщение · #8

neutronion попробуй переименовать вышеуказанный мной файл и проверь будет ли "машина спать" после вызова DeviceIOControl и ручного трейса.



Ранг: 6.5 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 25 мая 2011 21:37 · Поправил: neutronion
· Личное сообщение · #9

Какой файл, извините я плоховато соображаю?
cpthook.sys?




Ранг: 57.7 (постоянный), 49thx
Активность: 0.070
Статус: Участник

Создано: 25 мая 2011 21:49 · Поправил: inffo
· Личное сообщение · #10

neutronion пишет:
Какой файл, извините я плоховато соображаю?cpthook.sys?


Да. Из твоего дампа видно, что ошибка произошла при чтении памяти. И драйвер причины указан cpthook.sys. Найди его в своей системе (в папке с установленной Windows) и переименуй.
После попробуй проверь будет ли "машина спать" после вызова DeviceIOControl и ручного трейса




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 25 мая 2011 22:23 · Поправил: Nightshade
· Личное сообщение · #11

Судя по этим названиям
sfdrv01, sfhlp02, sfsync02 это 100% стар. Там виртуальная машина исполняется в ядре.
Без хуков int1 и int3 отладчик грузить нельзя, иначе сразу хапнешь бсод.
Если напишешь хукер - можно будет смотреть дальше. А пока кури маны релоадед.
инт1 не помню точно зачем используют, но вызовов должно быть мало(установка хуков чтоли...)
инт3 используют для вызовов вм в ring0.
Суть в том что твой дров должен проверять исключение отладчика произошло или нет. Если не отладчика - отдаем исключение защите.



Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 26 мая 2011 10:24
· Личное сообщение · #12

trivium релизил кряк на сабж




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 26 мая 2011 10:53
· Личное сообщение · #13

Nightshade пишет:
Суть в том что твой дров должен проверять исключение отладчика произошло или нет. Если не отладчика - отдаем исключение защите.

Или же можно перевесить отладочные иксепшены на другие векторы. Но это - в теории.

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 26 мая 2011 13:28
· Личное сообщение · #14

Av0id пишет:
trivium релизил кряк на сабж

Это они

| Сообщение посчитали полезным: Usulgurt, Kylak

Ранг: 6.5 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 26 мая 2011 19:24
· Личное сообщение · #15

я с Урала, чуваки, на божий крякерский свет только вылез, объясните плиз, где найти этот чудной trivium? Рок группу только нашел.



Ранг: 6.5 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 26 мая 2011 19:27
· Личное сообщение · #16

Я так понимаю комп перезагружается возможно из-за того, что Оля при ручной пошаговой трассировке генерирует исключение отладки, который дров перехватывает и отправляет компик спать?




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 26 мая 2011 19:30
· Личное сообщение · #17

Тебе уже тонко намекнули, начни с чего попроще. И тривиум ты не найдёшь.



Ранг: 6.5 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 26 мая 2011 19:38
· Личное сообщение · #18

С чего попроще я уже начал, просто увидел, что кто-то эту проблему уже решил, вот и хотел узнать у добрых людей как это сделано. Мне бы только сделать так, чтобы комп не перезагружался, остальное я сам.



Ранг: 17.4 (новичок)
Активность: 0.020
Статус: Участник

Создано: 26 мая 2011 19:47
· Личное сообщение · #19

neutronion пишет:
Я так понимаю комп перезагружается возможно из-за того, что Оля при ручной пошаговой трассировке


Если ты при этом юзаешь защиту АЛЯ phantom.plugin, то как раз он может приводить к перезагрузке. Проверено.



Ранг: 6.5 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 26 мая 2011 19:51
· Личное сообщение · #20

И что? Попробовать убрать все плагины? Фантом я только сегодня скачал и поставил, перезагружается комп так же.



Ранг: 6.5 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 26 мая 2011 19:53
· Личное сообщение · #21

Вообще-то одному наверное сложные защиты трудно взламывать, существуют ли группы кракеров? И можно ли туда записаться?




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 26 мая 2011 20:11
· Личное сообщение · #22

neutronion пишет:
существуют ли группы кракеров? И можно ли туда записаться?

Существуют. Можно.

-----
Лучше быть одиноким, но свободным © $me




Ранг: 17.4 (новичок)
Активность: 0.020
Статус: Участник

Создано: 26 мая 2011 21:24
· Личное сообщение · #23

Попробуй с ограниченными правами, чтоли запускать....




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 26 мая 2011 22:22
· Личное сообщение · #24

Ты правильно понял. Драйвер защиты воспринимает исключения отладки как команды сделать определенные действия.
Например обычный бряк он воспримет как вызов вм. Потом посмотрит где бряк, не найдет код который должен выполнить и мы получим бсод. Поэтому надо писать свой драйвер или не пользоваться бряками и трассировкой



Ранг: 20.8 (новичок), 7thx
Активность: 0.010.02
Статус: Участник

Создано: 26 мая 2011 22:57
· Личное сообщение · #25

ну и кстати будет то, что сф 3 точно патчил кусок кода в KiDispatchInterrupt, где проводится переключения контекста записью в cr3, и при каждом переключении на защищенный процесс, сф3 вписывает в идт свои хендлеры на инт1/инт3. Была идея перехватывать запись хуков в идт и исключений по инт1/инт3 путем перемещения части 1-й части идт в страницу с NO_ACCESS аттрибутами, чтоб по GP_FAULT отлавливать вызовы в вм, но тут риск при следущем исключении словить triple-fault, после чего идет ребут
На DeviceIoControl забей. Там протект.длл напрямую из юзермода командует IDE-портом, естественно перед этим подправив маску доступа на прямое обращение к портам.

Если используется стар бейсик без выполнения частей кода в вм, то 3 сф снимает чуть потяжелее упх без извращений с написанием собственной дровины и дебага р0



Ранг: 6.5 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 26 мая 2011 23:59
· Личное сообщение · #26

Чтобы написать свой драйвер, нужно очень хорошо изучить, что делает старовский дров.
Это что же, полностью реверсить нужно весь дров? Боюсь, у меня уровень не дотягивает до этого.
Лет 10 буду этим заниматься. Хотя ида конечно позволяет получить си код, с помощью своего плагина.
Про хэндлеры в инт1\3 это интересная мысля, то есть, если я подставлю свои обработчики вместо старовских,
то стар будет отдыхать и соответственно более не утомлять перезагрузкой? Или может сначала найти эти обработчики и проанализировать их, почему они отправляют комп в лимбо?



Ранг: 6.5 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 27 мая 2011 00:15
· Личное сообщение · #27

попробую в СофтАйсе установить останов на обработчики int1\3




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 27 мая 2011 09:58
· Личное сообщение · #28

Ты можешь попробовать зациклиться в апи которая близко к еп и снять дамп. Воткни на какой-нибудь апи ebfe и сними дамп. А там видно будет есть вм или нет.




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 27 мая 2011 10:24 · Поправил: ARCHANGEL
· Личное сообщение · #29

neutronion пишет:
попробую в СофтАйсе установить останов на обработчики int1\3

Вы не поняли суть проблемы. Давайте по-простому. При переключении контекста из EPROCESS берётся значение каталога страниц и записывается в cr3. Там ещё немного добавляется кода при наличии LDT, т.е. если она есть, то дескрипторы меняются, но это по сути и всё, контекст переключён. Далее дравйвер патчит обработчики из IDT, заменяя их на свои. Если вы в айсе или каком-то другом дебаггере поставите бряк на код, то перед тем, как айс обработает отладочный иксепш, его вначале получит и обработает старфорс. Если вы снимете хуки и с помощью своего драйвера добьётесь того, чтоб старфорс их не ставил, то и это не решит проблему, т.к. по отладочным иксепшенам работает виртуальная машина ядра, которая при снятии хуков работать перестанет, код не распакуется, и процесс (или вся система) рухнет. Первый вариант заключается в написании своего драйвера, который поддерживает пул брейкпоинтов, установленных вами. Проще говоря, вы поставили бряк (опкодом СС), перед его срабатыванием ваш драйвер проверяет, находится ли адрес, по которому сработал бряк, в пуле бряков. Если да, то исключение получает айс, если нет, то значит его поставили не вы, а защита, и исключение получает старфорс. Я когда-то видел на --> Link <-- (кажется) кто-то создал такую тему, и вроде бы, наваял такой дров. Но сам дров он не выкладывал, так что вряд ли вы его найдёте. Да и проблема будет в том, что вам как-то нужно будет перехватывать _KiTrap01/_KiTrap03 до старфорса.

Мне кажется, что стоит использовать альтернативный метод. А именно - поменять местами _KiTrap01/_KiTrap03 с какими-то неиспользуемыми прерываниями. Т.е. ещё до запуска старфорса (или антируткит алгоритмами) определяете истинные адреса обработчиков. Меняете их местами. И можно дебажить любым адаптированным под это дело дебаггером. Даже олькой, если пропатчите её. Патчить нужно вставку бряка, ведь теперь вам нужно лепить не опкод инструкции int 3, а какой-то другой int X, и такая инструкция уже будет двухбайтовой. Значит перед установкой бряка (и после его снятия) надо читать два байта (и восстанавливать 2). Но на рабочей системе так делать не рекомендую, поскольку у вас могут быть софтины, которые не будут адаптированы под это дело, и будут юзать, например, отладочный цикл в его прежней реализации. Плюс это подойдёт для программных бряков, а для трассировки там свои заморочки.

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 6.5 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 27 мая 2011 13:15
· Личное сообщение · #30

Пошел курить маны.


. 1 . 2 . >>
 eXeL@B —› Крэки, обсуждения —› По взлому SpellForce перезагружается комп.
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати