вторник, 13 декабря 2011 г.

определение версии KPRCB 2

я тут писал уже как-то про сие невинное занятие, но внезапно выяснилось что метод не работает например под windows 8 - под ней KeIsExecutingDpc выглядит так:
  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 пуста

8 комментариев:

  1. 2234 - а это не из юниона NormalDpcState возвращают?

    ps. все таки в реверсе я чайник...

    ОтветитьУдалить
  2. DpcRequestSlot судя по коду и маске

    ОтветитьУдалить
  3. Все однако фигня.

    ps. Ты как-то недавно Etw смотрел, скажи, дампы со стеком
    nt!EtwpUnreferenceGuidEntry
    nt!EtwpDeleteRegistrationObject
    nt!ObpRemoveObjectRoutine

    с поврежденным Mutex-ом в хидере обжектайпа не встречал?

    ОтветитьУдалить
  4. вы с какой целью интересуетесь ?

    ОтветитьУдалить
  5. Просто интересуюсь, иногда видим такие дампы, но понять кто виноват, свое или МС где ошиблось, пока не можем.

    ps. Ха, кажется ты меня не узнал, сидел рядом, через стенку, на седьмом этаже...

    ОтветитьУдалить
  6. я вас прекрасно узнал
    у вас в штате есть куча гопников, "благодаря именно им львиная доля пользователей пересели на касперского", бгг: http://redplait.blogspot.com/2011/01/kav-2008.html?showComment=1296253573774#c7644691397806276775
    вот и их спрашивай для разнообразия, к тому же им бабки платят
    а я бесплатно не консультирую

    ОтветитьУдалить
  7. просто спросил, без задней мысли. Или ты каждый вопрос рассматриваешь как "они хотят меня на халяву поиспользовать"? Я тут не причем, это твоя паранойя :)

    ps. твой глюк - не мой глюк! Глюк моего глюка - не мой глюк!!!

    ОтветитьУдалить
  8. да-да, срущие тут регулярно кирпичами ваши сотрудники - тоже моя паранойя и исключительно плоды больного воображения, бгг

    ОтветитьУдалить