скрипт windbg -> вывод не всех строк

Тема в разделе "WASM.NT.KERNEL", создана пользователем rain, 23 мар 2008.

  1. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    День добрый.

    Ставим бряк, к примеру, на NtCreateFile следующим образом:
    Код (Text):
    1. kd> bp NtCreateFile "$$>< c:\\scr"
    где c:\scr файл следующего содержания:
    Код (Text):
    1. r $t0 = poi(@esp + 0xc);
    2.  
    3. .printf "%msu \n", @@c++( ((nt!_OBJECT_ATTRIBUTES*) (@$t0))->ObjectName );
    4.  
    5. g;
    Но, увы, он выводит далеко не все файлы которые попадают в NtCreateFile, отсуда вполне логичный вопрос, почему так происходит?
     
  2. 0x56

    0x56 New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2008
    Сообщения:
    63
    rain
    привет
    скрипты под windbg это интересно, есть ссылки на литературу?

    а как определяешь что не все?
    если + которые в драйверах открываются интересуют то сразу bp nt!NtCreateFile
    а еще файлы открываются и через NtOpenFile
     
  3. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    касательно литературы: хелп по debugging tools канечно + гугл находит пару примеров
    проверял очень просто вызывая с NtCreateFile, единственное что приходит в голову путного по сабжу это что во время выполнения срабатывает какая-то ошибка в скрипте, например обращение в подкачиваемую память, но данные об ошибке почему-то не выводятся
     
  4. 0x56

    0x56 New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2008
    Сообщения:
    63
    rainты не понял
    ты пока не задащь префикс !nt явно, ставишь бряк на ntdll!NtCreateFile
    ты ловишь все юзермодные вызовы, речь про пул тут причем?
    потом эти ядерные функции открытия файлов работают на ПАССИВ_ЛЕВЕЛ, подкачиваемый тут не причем
    если бы нарушение доступа к памяти тут еще было бы подумать где останов был бы и был бы ли вообще
     
  5. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    А должно ли? Ну не вышло прочиттаь память и фиг с ним, замяли дело))
     
  6. 0x56

    0x56 New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2008
    Сообщения:
    63
    Great
    в принципе проверить легко насколька интелектуальна обработка скриптов в WinDBg, типа @$t0 = 0; )
     
  7. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    0x56
    топик в разделе кернела, причём тут юзермод вообще, это раз?
    Код (Text):
    1. kd> bp NtCreateFile
    2. kd> bl
    3.  0 e 8056d14c     0001 (0001) nt!NtCreateFile
    если у тебя ставится на ntdll то ясное дело что нада указывать nt.
    windbg не видет память которая в данный момент выгруженна он показывает знаки вопроса, это два.
    Great
    мб мб, мож ты чё подскажешь как заставить windbg погрузить подкачиваемую память если мы уже находимся в нужном АП процесса? способ обратится к ней не предлагать, нада средствами windbg. Я конечно подозреваю что никак, но всегда же лучше уточнить
     
  8. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    кстати попутно ещё вопрос, можно ли как-то сделать так чтобы отладчик ставил 0xcc бряк в юзермодное приложение в системной билиотеке с использованием copy on write?