Сейчас на форуме: 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.




Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 27 мая 2011 18:08 · Поправил: DillerInc
· Личное сообщение · #2

Одно время интересовался написанием двайверов. В качестве практики решил смастерить подобный драйвер. Один чел на rootkits предложил интересную идею обхода старофских прерываний.
Чего-то уже не помню, но суть заключается в том, что в дескрипторе прерывания сбрасывается presence flag. При обращении к такому дескриптору срабатывает прерывание #NP, которое перехвачено нашим кодом. Ну, и далее дело техники.
Я попробовал реализовать эту идею, и у меня даже работали бряки и трассировка на такой древней игре, как Heroes Of Might and Magic 4 в Буковском издании.
Код писался на жёстком ассемблере (masm + заголовочные файлы для ring0 из статей Four-F на васме).

P.S. Запускайте на свой страх и риск.

P.P.S. Пароль архива - название нашей команды маленькими буквами.

015b_27.05.2011_EXELAB.rU.tgz - IDTWorks.rar

-----
the Power of Reversing team


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

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

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

DillerInc интересный способ плюсую Но если чесно аффтар мог бы и файл выложить или написать точную версию стара что написана в ресурсах а то гадание на кофейной гуще получается он то сам незнает из-за чего винду бросает в синьку. Непойму одного зачем оно надо ему, пусть скачает кряк а то стар пол года будет ломать. Очередной топик о старе их вроде как уже 3 или 4 здесь на форуме ... Чтобы снять стар даже 3 с хуками инт1 и инт3 можно и без того чтобы его дрова обходить ...



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

Создано: 03 июня 2011 10:13
· Личное сообщение · #4

DillerInc пишет:
Чего-то уже не помню, но суть заключается в том, что в дескрипторе прерывания сбрасывается presence flag. При обращении к такому дескриптору срабатывает прерывание #NP, которое перехвачено нашим кодом

Раньше (в 2003) старик периодически проверял дескрипторы инт1 и 3, поэтому этот метод не прокатывал.
Тогда было другое решение, сменить idt baseaddr чтобы первые 4 дескриптора залезли в notpresent страницу.
И ловить обращение к дескриптору - хоть при бряке по инт1,3 , хоть при прямом чтении стариком -в хэндлере
#PF




Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 04 июня 2011 01:38
· Личное сообщение · #5

spinz пишет:
старик периодически проверял дескрипторы инт1 и 3

...проверял именно состояние флага?

-----
the Power of Reversing team




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

Создано: 04 июня 2011 07:15
· Личное сообщение · #6

Если я правильно помню, он просто сравнивал дворды




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

Создано: 07 июня 2011 11:08
· Личное сообщение · #7

spinz пишет:
Тогда было другое решение, сменить idt baseaddr чтобы первые 4 дескриптора залезли в notpresent страницу

Если уж возможно менять базовый адрес IDT, то тогда проще делать так:
1. В NonPagedPool создаём копию дескрипторов IDT.
2. Перехватываем int1/3 обработчики.
3. Если бряк сработал по адресу, куда мы ставили брейкпоинт, то переходим на перехват от ринг0 дебаггера, если нет - переходим на перехват старфорса.

Думаю, что подобный функционал можно прикрутить автоматом к какому-то ринг0 дебаггеру в виде плагина, поизучав его сдк. Т.е., например, в сисере ставим bpx, а он(плагин) автоматически перенастроит обработчики в ядре.

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



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


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