| Сейчас на форуме: UniSoft, bartolomeo (+6 невидимых) | 
| eXeL@B —› Программирование —› BSOD при восстановлении sdt драйвером | 
| Посл.ответ | Сообщение | 
| 
 | 
Создано: 31 января 2011 12:05 · Поправил: noph  · Личное сообщение · #1 Сразу предупреждаю, вопрос носит теоретический характер На основе приаттаченного к сообщению драйвера, который палит хукнутые API в sdt, я сделал драйвер, который при загрузке сохраняет текущее состояние SDT (т.е. адреса всех API). А затем при получении команды прописывает в SDT все ранее сохранённые адреса. По сути восстанавливает sdt. Столкнулся с такой проблемой, что на некоторых 7-ках (причём, не на всех, и без антивируса) при восстановлении SDT вываливается BSOD. При первоначальной загрузке драйвера всё ок. Вопрос заключается в том, есть ли какие-то особенности, из-за которых восстановление ранее сохранённого sdt может на 7-ке не работать? Я отталкиваюсь от того, что ошибок в коде нет (раз драйвер работает на остальных ОС)   поэтому вопрос скорее теоретический..  60ad_31.01.2011_CRACKLAB.rU.tgz - ssdt.c
![]()  | 
| 
 | 
Создано: 31 января 2011 12:57 · Поправил: Coderess  · Личное сообщение · #2  | 
| 
 | 
Создано: 31 января 2011 19:48  · Личное сообщение · #3  | 
| 
 | 
Создано: 31 января 2011 20:16  · Личное сообщение · #4 noph пишет: есть ли какие-то особенности, из-за которых восстановление ранее сохранённого sdt может на 7-ке не работать? Нет noph пишет: Я отталкиваюсь от того, что ошибок в коде нет (раз драйвер работает на остальных ОС) Типичное заблуждение. Просто у вас удачное стечение обстоятельств. Код сохранения, восстановления и анализ багчека в студию Clerk Как обычно илите нечего сказать по делу. ![]()  | 
| 
 | 
Создано: 31 января 2011 20:23  · Личное сообщение · #5  | 
| 
 | 
Создано: 01 февраля 2011 19:34  · Личное сообщение · #6  | 
| 
 | 
Создано: 01 февраля 2011 20:50  · Личное сообщение · #7  | 
| 
 | 
Создано: 02 февраля 2011 15:54 · Поправил: ARCHANGEL  · Личное сообщение · #8 Был бы код - можно было бы что-то сказать. Cli - sti - для однопроцессорных одноядерных, для остальных так уже не получится, нужна спинблокировка, впрочем, для замены дворда в реальном времени достаточно Interlocked-функций (InterlockedExchange наиболее уместна в таком случае) Добавлено Блин, так код же в первом посте, сорри, не заметил. Посмотрим... Добавлено снова Блин, так а где в коде восстановление ssdt? То, что выложил ТС, это только проход по ssdt и выявление наличия адресов, выходящих за пределы ntoskrnl.exe (или ядра с другим именем). ----- Stuck to the plan, always think that we would stand up, never ran. ![]()  | 
| 
 | 
Создано: 02 февраля 2011 16:08  · Личное сообщение · #9  | 
| eXeL@B —› Программирование —› BSOD при восстановлении sdt драйвером | 

 поэтому вопрос скорее теоретический..
 









 Для печати