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