Сейчас на форуме: Rio, johnniewalker, vsv1 (+6 невидимых) |
eXeL@B —› Крэки, обсуждения —› По взлому SpellForce перезагружается комп. |
<< . 1 . 2 . |
Посл.ответ | Сообщение |
|
Создано: 25 мая 2011 18:04 · Поправил: neutronion · Личное сообщение · #1 Пытаюсь отвязать игру от cd, после вызова функции DeviceIoControl этот запрос направляются драйверу, которая игра установила. После выполнения этой функции, следующая команда в отладчике вызывает перезагрузку компа. По аргументам функции видно, что передаетя код операции и адрес одной из секций программы. В самом драйвере проводятся манипуляции с переданным адресом, вызываются такие функции как MmProbeAndLockPages, MmMapLockedPagesSpecifyCache. Вопрос такой по какой причине может перезагружаться комп. Дамп указывает ошибку в неком модуле crthook.sys. |
|
Создано: 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 |
|
Создано: 30 мая 2011 10:24 · Поправил: V0ldemAr · Личное сообщение · #3 DillerInc интересный способ плюсую Но если чесно аффтар мог бы и файл выложить или написать точную версию стара что написана в ресурсах а то гадание на кофейной гуще получается он то сам незнает из-за чего винду бросает в синьку. Непойму одного зачем оно надо ему, пусть скачает кряк а то стар пол года будет ломать. Очередной топик о старе их вроде как уже 3 или 4 здесь на форуме ... Чтобы снять стар даже 3 с хуками инт1 и инт3 можно и без того чтобы его дрова обходить ... |
|
Создано: 03 июня 2011 10:13 · Личное сообщение · #4 DillerInc пишет: Чего-то уже не помню, но суть заключается в том, что в дескрипторе прерывания сбрасывается presence flag. При обращении к такому дескриптору срабатывает прерывание #NP, которое перехвачено нашим кодом Раньше (в 2003) старик периодически проверял дескрипторы инт1 и 3, поэтому этот метод не прокатывал. Тогда было другое решение, сменить idt baseaddr чтобы первые 4 дескриптора залезли в notpresent страницу. И ловить обращение к дескриптору - хоть при бряке по инт1,3 , хоть при прямом чтении стариком -в хэндлере #PF |
|
Создано: 04 июня 2011 01:38 · Личное сообщение · #5 |
|
Создано: 04 июня 2011 07:15 · Личное сообщение · #6 |
|
Создано: 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 перезагружается комп. |