eXeL@B —› Основной форум —› Int3 |
Посл.ответ | Сообщение |
|
Создано: 31 января 2005 00:15 · Личное сообщение · #1 |
|
Создано: 31 января 2005 00:44 · Личное сообщение · #2 |
|
Создано: 31 января 2005 00:51 · Личное сообщение · #3 |
|
Создано: 31 января 2005 01:32 · Личное сообщение · #4 |
|
Создано: 31 января 2005 14:50 · Поправил: KATEHOK · Личное сообщение · #5 Здесь моя библиотека по встраиванию точек останова (как программных, так и аппаратных). Состоит из двух частей - драйвера и собственно кода, который надо засунуть в проект. Точки останова ставятся и убираются с помощью интерфейса int3 (хотя можно и через другое прерывание). Реализация - в файле intercept.cpp. Небольшой пример - sample.cpp. При выполнении int3 (или исключении от hwbp) начинает выполняться new_int3() в драйвере (файл sys\intercept.cpp). new_int1() не используется Правда, эта старая версия драйвера, в ней не хватает некоторых доп. функций (disable_sw_all() и пр.), но если надо, то могу выслать полную (на работе ее у меня нет). Комментариев практически нет , код не прилизан, но вроде все должно быть понятно. П.Ы. Драйвер загружать вручную, например, с помощью installer.exe (прилагается) П.Ы.Ы. Можно в нулевое кольцо и без драйверов выходить (через \\device\\physicalmemory). Исходники есть у Зомби (HaX0R'Z KiT). П.Ы.Ы.Ы. Да, чтобы эта штука работала вместе с айсом, его нужно загружать ДО загрузки моего драйвера (кажется так, я уже не помню :s1. Тогда айс будет брякаться на свои бряки и игнорировать установленные с помощью этой библиотеки. При аппаратных бряках нужно помнить, что их всего 4 8aeb_hooks.rar |
|
Создано: 01 февраля 2005 17:20 · Личное сообщение · #6 |
|
Создано: 20 сентября 2011 04:48 · Личное сообщение · #7 |
|
Создано: 21 сентября 2011 00:03 · Поправил: bowrouco · Личное сообщение · #8 parovoZZ Это некропост, зачем он вам. Там тс наверно тупо формирует свой дескриптор в IDT для #DB/#BP, для всех камней. Так как там обработка непосредственно на !IRQL(!IF), то изврат полнейший - никакой функционал ядра, исполняемый при IF не доступен. Тоесть из ядра почти ничего нельзя юзать. Нормально следует сформировать т-фрейм. Это не грамотная реализация(в придачу обвешена всякими механизмами понижения кпл, типо физиклмемори или нтсистемдебугконтрол), вам она не нужна. |
|
Создано: 21 сентября 2011 10:20 · Личное сообщение · #9 bowrouco Помнится, мне когда-то нужна было норм реализация на С (с использованием WDK) перехвата KiTrap_03 в ядре, без NtSystemDebugControl и прочих недокументированных сервисов, и что? Нема! Тож тогда давали советы, что, типа, если тупо перехватить интересующий меня обработчик в IDT, то я не смогу ... (тут большой список всего, чего не смогу). Ну так покажите, как надо. Мы открыты для новых знаний. ----- Stuck to the plan, always think that we would stand up, never ran. |
|
Создано: 21 сентября 2011 21:35 · Личное сообщение · #10 |
|
Создано: 21 сентября 2011 22:51 · Поправил: OnLyOnE · Личное сообщение · #11 |
|
Создано: 21 сентября 2011 22:59 · Личное сообщение · #12 bowrouco Вы товарищ не грамотный, ламер проще говоря... А тупо выучить название векторов и скомпилить примитивный дров могут все. Может быть. Не хочется сейчас бросаться громкими словами, я прекрасно осознаю величину своего скила, до некоторых людей мне действительно весьма далеко. Но раз примитивный драйвер могут скомпилить все, а я всего лишь не понимаю, что такое TRAP_FRAME, значит мне не так много надо выучить из матчасти. OnLyOnE Thanks, бро. Но банить его не стоит, с ним веселее ----- Stuck to the plan, always think that we would stand up, never ran. |
|
Создано: 21 сентября 2011 23:47 · Личное сообщение · #13 |
|
Создано: 22 сентября 2011 04:03 · Поправил: bowrouco · Личное сообщение · #14 ARCHANGEL Извините, это меня немного понесло, от рыбки.. Не думайте что я говном кидаюсь. Просто я не вижу смысла разбирать тут всякие разные проблемы с обработкой прерываний, так как для понимания нужно кое что знать. Да, нет нормального пути т-фрейм сформировать. Обычно я беру kimacro.inc и вставляю себе в проект, хорошо что он на масме. Эта структура к оси привязана, так что этот модуль только для отладки у себя на машине. В глобальном продукте я использую немного не стандартный подход - в буфер морфится всё макро. Морфится это не чтото страшное, а простой перенос инструкций в другое место и правка смещений в ветвлениях. Иного годного способа я не вижу, разве что модуль релоцировать, но это корявый способ. |
|
Создано: 22 сентября 2011 13:38 · Личное сообщение · #15 |
|
Создано: 25 июля 2012 00:52 · Личное сообщение · #16 |
|
Создано: 25 июля 2012 22:55 · Поправил: Promix_17 · Личное сообщение · #17 |
|
Создано: 25 июля 2012 23:06 · Личное сообщение · #18 |
|
Создано: 25 июля 2012 23:08 · Поправил: Promix_17 · Личное сообщение · #19 |
|
Создано: 25 июля 2012 23:18 · Личное сообщение · #20 |
|
Создано: 30 декабря 2012 18:48 · Личное сообщение · #21 |
|
Создано: 30 декабря 2012 19:00 · Личное сообщение · #22 |
eXeL@B —› Основной форум —› Int3 |
Эта тема закрыта. Ответы больше не принимаются. |