mov eax, large fs:2354h
and eax, 10001h
retn
это дает нам смещение на DpcRoutineActive равным 0x2234, что неверно
Но есть и еще один способ - например можно узнать смещение поля WorkerRoutine. В экспортируемой ф-ции KiIpiServiceRoutine есть примерно такой кусочек кода:
mov eax, [edx+2170h]
mov edx, [esp+24h+arg_0]
mov [esi+2128h], edx
call eax
0x2170 - это и есть наше искомое смещение. К недостаткам метода относится его применимость только для 32 бит, потому что под 64битными системами ф-ция KiIpiServiceRoutine не экспортируется
Также работает он только начиная с xp - под w2k ф-ция KiIpiServiceRoutine пуста
2234 - а это не из юниона NormalDpcState возвращают?
ОтветитьУдалитьps. все таки в реверсе я чайник...
DpcRequestSlot судя по коду и маске
ОтветитьУдалитьВсе однако фигня.
ОтветитьУдалитьps. Ты как-то недавно Etw смотрел, скажи, дампы со стеком
nt!EtwpUnreferenceGuidEntry
nt!EtwpDeleteRegistrationObject
nt!ObpRemoveObjectRoutine
с поврежденным Mutex-ом в хидере обжектайпа не встречал?
вы с какой целью интересуетесь ?
ОтветитьУдалитьПросто интересуюсь, иногда видим такие дампы, но понять кто виноват, свое или МС где ошиблось, пока не можем.
ОтветитьУдалитьps. Ха, кажется ты меня не узнал, сидел рядом, через стенку, на седьмом этаже...
я вас прекрасно узнал
ОтветитьУдалитьу вас в штате есть куча гопников, "благодаря именно им львиная доля пользователей пересели на касперского", бгг: http://redplait.blogspot.com/2011/01/kav-2008.html?showComment=1296253573774#c7644691397806276775
вот и их спрашивай для разнообразия, к тому же им бабки платят
а я бесплатно не консультирую
просто спросил, без задней мысли. Или ты каждый вопрос рассматриваешь как "они хотят меня на халяву поиспользовать"? Я тут не причем, это твоя паранойя :)
ОтветитьУдалитьps. твой глюк - не мой глюк! Глюк моего глюка - не мой глюк!!!
да-да, срущие тут регулярно кирпичами ваши сотрудники - тоже моя паранойя и исключительно плоды больного воображения, бгг
ОтветитьУдалить