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

 eXeL@B —› Программирование —› BSOD при восстановлении sdt драйвером
Посл.ответ Сообщение

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

Создано: 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




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 31 января 2011 12:57 · Поправил: Coderess
· Личное сообщение · #2

Надо было дамп выкладывать раз такой вопрос или че за бсод
ЗЫ: Возьмите на вооружение WinDbg и/или мелкий BlueScreenView

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 255.8 (наставник), 19thx
Активность: 0.150.01
Статус: Участник
vx

Создано: 31 января 2011 19:48
· Личное сообщение · #3

Нормальный дров никакие сст не изменяет и не использует.



Ранг: 145.8 (ветеран), 191thx
Активность: 0.140.36
Статус: Участник

Создано: 31 января 2011 20:16
· Личное сообщение · #4

noph пишет:
есть ли какие-то особенности, из-за которых восстановление ранее сохранённого sdt может на 7-ке не работать?

Нет

noph пишет:
Я отталкиваюсь от того, что ошибок в коде нет (раз драйвер работает на остальных ОС)

Типичное заблуждение. Просто у вас удачное стечение обстоятельств.

Код сохранения, восстановления и анализ багчека в студию

Clerk
Как обычно илите нечего сказать по делу.



Ранг: 237.0 (наставник), 20thx
Активность: 0.130
Статус: Участник
sysenter

Создано: 31 января 2011 20:23
· Личное сообщение · #5

noph
я бы вам посоветовал матчасть подучить, вы думаете к ссдт никто не лезет в реальном времени, пока вы её "восстанавливете"?
"разности " в виндах тут не причём

-----
продавец резиновых утёнков





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

Создано: 01 февраля 2011 19:34
· Личное сообщение · #6

sti cli?

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

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

Создано: 01 февраля 2011 20:50
· Личное сообщение · #7

cli ... sti тогда уже..
но ru.wikipedia.org/wiki/CLI_%28x86%29




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

Создано: 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.





Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 02 февраля 2011 16:08
· Личное сообщение · #9

ну туда же

ru.wikipedia.org/wiki/Compare_And_Swap

-----
[nice coder and reverser]



 eXeL@B —› Программирование —› BSOD при восстановлении sdt драйвером
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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