Собственно необходимо перенаправить отладочный вывод в мою программу... Есть ли примеры, готовые решения или манулы по теме?
Программа всмысле драйвер ? Загрузите в KiDebugRoutine ссылку на свой обработчик и отслеживайте #STATUS_BREAKPOINT и #DBG_PRINTEXCEPTION_C, ну или ISR 0x2D(KiDebugService) поставьте на всех ядрах, хотя тогда нужно будет формировать трап-фрейм, что не совсем хорошо.
haxorart Используем системный коллбэк (для Windows Vista/7) http://ntsecurity.nu/onmymind/2006/2006-06-12.html Для всего остального надежнее перехватить DebugRoutine -> реверзим тот же DebugView.
haxorart Какое есчо дерево, все сепшены сходятся в одной точке, именно она последнее решения для захвата исключений. Разбор контекста и параметров примитивная задача. Для поиска ссылки на ту переменную используйте дизасм KeEnterKernelDebugger(): Code (Text): KeEnterKernelDebugger: [...] call KdInitSystem push DBG_STATUS_FATAL ; 5 call KiBugCheckDebugBreak KdInitSystem: [...] mov dword ptr ds:[KiDebugRoutine],XXXX
Так а дальще то что делать? Зачем мне вообще перехватывать исключения, если мне нужна всего 1, ну максимум 2 ф-ии?
Камрад Клерк, по-моему ты вообще редко читаешь топеги в которые постишь. Ему уже дали линк на кучу готовых исходников. А твои захваты и сепшены это вообще антисистемное гамно.
А ну и да, редактирование нет, так что - с этой всей херней камрад Клерк тебе никогда не работать ни в одной нормальной софтверной компании, ни фрилансером. Так и будешь до тридцати лет сидеть на этом форуме и постишь всякую ахинею под аплодисменты Криса.
reader323 Огласите иное решение. Ссылки на тыщи страниц инета не нужны, какбы вы решали эту задачу на XP ?
Спасибо, что посмешил. Ничего, обычно со временем ко всем доходит, сколько было упущенно возможностей, денег и времени, просиживая в "нормальной софтверной компании".
Ребята, вы ещё тут холивар устройте на тему что синее море или небо. От этих 2х методов у меня пухнет мозг. Кто-нить ЧЕЛОВЕЧЕСКУЮ идею может предложить, чтоб свою винду не пришлось писать ради 2х функций...? Кто-нибудь вообще что-нибудь подобное делал?
А клерк-то прав. Поменяйте KiDebugRoutine и будет вам счастье. Вручную? Зачем же. IoConnectInterrupt, точнее KINTERRUPT:ispatchCode сделает все за нас хотя бы один установленный KINTERRUPT найдется. скопировать себе DispatchCode, пофиксить JMP финальный к себе и вуаля.
Great Можно и так, но я предпочитаю отморфить код формирующий тф и далее юзать его, проще через IoConnectInterrupt(), согласен.
А поподробнее про то как это делается можно? А то та статья про дерево меня совсем с пути истинного сбила...
haxorart Что именно подробнее описать ? Ну как обычно, реверсите, находите ссылку и заменяете на свою.