Перенаправление DbgPrint и KdPrint

Тема в разделе "WASM.NT.KERNEL", создана пользователем haxorart, 13 мар 2010.

  1. haxorart

    haxorart New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    123
    Собственно необходимо перенаправить отладочный вывод в мою программу... Есть ли примеры, готовые решения или манулы по теме?
     
  2. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Программа всмысле драйвер ?
    Загрузите в KiDebugRoutine ссылку на свой обработчик и отслеживайте #STATUS_BREAKPOINT и #DBG_PRINTEXCEPTION_C, ну или ISR 0x2D(KiDebugService) поставьте на всех ядрах, хотя тогда нужно будет формировать трап-фрейм, что не совсем хорошо.
     
  3. haxorart

    haxorart New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    123
    А более подробные манулы есть?
     
  4. haxorart

    haxorart New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    123
    Просто я читал где-то что там очень разветвлённое дерево функций + для разных ос разное.
     
  5. reader323

    reader323 New Member

    Публикаций:
    0
    Регистрация:
    8 июл 2009
    Сообщения:
    134
    haxorart
    Используем системный коллбэк (для Windows Vista/7)
    http://ntsecurity.nu/onmymind/2006/2006-06-12.html

    Для всего остального надежнее перехватить DebugRoutine -> реверзим тот же DebugView.
     
  6. haxorart

    haxorart New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    123
    Да, похоже работёнка будет не из дёгких...
     
  7. Sav1or

    Sav1or New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2008
    Сообщения:
    52
    http://alter.org.ua/ru/soft/win/dbgdump/
    вот в закладках у себя нашел.
     
  8. haxorart

    haxorart New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    123
    Ага, всем спасибо. Будем изучать...
     
  9. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    haxorart
    Какое есчо дерево, все сепшены сходятся в одной точке, именно она последнее решения для захвата исключений. Разбор контекста и параметров примитивная задача. Для поиска ссылки на ту переменную используйте дизасм KeEnterKernelDebugger():
    Код (Text):
    1. KeEnterKernelDebugger:
    2.     [...]
    3.     call KdInitSystem
    4.     push DBG_STATUS_FATAL   ; 5
    5.     call KiBugCheckDebugBreak
    6.    
    7. KdInitSystem:
    8.     [...]
    9.     mov dword ptr ds:[KiDebugRoutine],XXXX
     
  10. haxorart

    haxorart New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    123
    Так а дальще то что делать? Зачем мне вообще перехватывать исключения, если мне нужна всего 1, ну максимум 2 ф-ии?
     
  11. reader323

    reader323 New Member

    Публикаций:
    0
    Регистрация:
    8 июл 2009
    Сообщения:
    134
    Камрад Клерк, по-моему ты вообще редко читаешь топеги в которые постишь. Ему уже дали линк на кучу готовых исходников.
    А твои захваты и сепшены это вообще антисистемное гамно.
     
  12. reader323

    reader323 New Member

    Публикаций:
    0
    Регистрация:
    8 июл 2009
    Сообщения:
    134
    А ну и да, редактирование нет, так что - с этой всей херней камрад Клерк тебе никогда не работать ни в одной нормальной софтверной компании, ни фрилансером. Так и будешь до тридцати лет сидеть на этом форуме и постишь всякую ахинею под аплодисменты Криса.
     
  13. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    reader323
    Огласите иное решение. Ссылки на тыщи страниц инета не нужны, какбы вы решали эту задачу на XP ?
     
  14. JohnFive

    JohnFive New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2009
    Сообщения:
    6
    Спасибо, что посмешил. Ничего, обычно со временем ко всем доходит, сколько было упущенно возможностей, денег и времени, просиживая в "нормальной софтверной компании".
     
  15. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Уход от ответа говорит об вашей не компетентности в даном вопросе.
     
  16. haxorart

    haxorart New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    123
    Ребята, вы ещё тут холивар устройте на тему что синее море или небо. От этих 2х методов у меня пухнет мозг. Кто-нить ЧЕЛОВЕЧЕСКУЮ идею может предложить, чтоб свою винду не пришлось писать ради 2х функций...? Кто-нибудь вообще что-нибудь подобное делал?
     
  17. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    А клерк-то прав. Поменяйте KiDebugRoutine и будет вам счастье.

    Вручную? Зачем же. IoConnectInterrupt, точнее KINTERRUPT::lol: ispatchCode сделает все за нас :) хотя бы один установленный KINTERRUPT найдется. скопировать себе DispatchCode, пофиксить JMP финальный к себе и вуаля.
     
  18. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Great
    Можно и так, но я предпочитаю отморфить код формирующий тф и далее юзать его, проще через IoConnectInterrupt(), согласен.
     
  19. haxorart

    haxorart New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    123
    А поподробнее про то как это делается можно? А то та статья про дерево меня совсем с пути истинного сбила...
     
  20. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    haxorart
    Что именно подробнее описать ?
    Ну как обычно, реверсите, находите ссылку и заменяете на свою.