Проект отладчика ring0.Нужна помощь

Тема в разделе "WASM.PROJECTS", создана пользователем VSG, 4 апр 2008.

  1. VSG

    VSG New Member

    Публикаций:
    0
    Регистрация:
    3 апр 2008
    Сообщения:
    9
    Достаточно давно стал писать свой отладчик. Сначала под DOS потом win98(все работало). Потом дело немного остановилось.
    Не так давно решил снова все дописать. Перевел проект под XP.
    Так как писалось все под себя, то не было необходимости делать разные примочки, типа динамического определения frame buffers(проще было забить в исходник и скомпилировать),отладочные таблицы(т.к. он нужен был для ковыряния в чужом софте) и т.д.
    Сейчас хочу сделать более менее законченный проект.
    Собствено есть уже достаточно рабочий отладчик которым можно отлаживать(что я делал)Ж):
    Что там есть:
    Интерфейс: многоконный интерфейс аля turbo debuger с поддержкой мыши.
    Полный asm/diasm 16/32 fpu/mmx c анализатором(подсветка условных переходов,вычесление адреса и т.д.)
    собствено сам трасировщик с поддежркой hard/soft breakpoint для кода ,данных, портов с условиями, защита
    dr регистров, обратная трасировка,авто трасировка и много чего еще.
    Свой драйвер клавы и мыши.

    Теперь о главном. Т.к. в основном все писалось под 98 и под один процессор, то при переходе под XP и SMP надо переписовать функции взаимодействия с системой в области получения раздых отладочных собщений и
    т.п. Информации по этому делу немного. Надо писать под APIC и самое главное видеосистема. Недавно
    пересел на двуядерник и geforce 8800 и начались проблемы. Если с APIC я в принципе уже начал разбиратсья
    то с видео проблемы. Большая просьба людей ковырявших в этом направление помочь и/или принять участие в проекте(ето сильно сказано пока).
    И вообще приглашаются все кто понял о чем я написал и может/есть желание помочь/принять участие.

    Немного о самом отладчики. Одна из основных идей как можно меньше взаимодействовать с системой(толко на этапе иницилизации) (свой менеджер памяти , свой драйвер клавы и мыши,таймер ,прямой перехват прерываний) получать от системы только отладочные и информационые сообщения.
    Под 98 я мог начинать отлаживать еще до загрузки win и практически сразу после перехода windows в защищенный режим (как softice).

    Что планируется(основное):
    сделать его opensource
    возможность писать плугины(сделать свой API для интерфейса и системных функций типа asm/diasm, информации о команде, т.д. насколько фантазии хватит).Тоесть можно будет написать какой нибудь хитрый
    трасировщик стека, unpacker и т.д. и он будет частью отладчика.
    сделать его 64 битным


    Сейчас основная проблема это видео под geforce 8.

    Текущая версия в прикрепленном файле.
    Ограничения : работает только на одном ядре,без APIC. Мышь и клава только PS/2. Вручную надо прописать
    начало frame buffer и разрешение экрана, глубина цвета).Естествено не работает под GF 8*
    тестировалось на althonXP/RADEON9600 , на другом может и не работать. Т.к. переходная версия перехватываются только int1,int3, irq0,irq1,irq12
    Для инсталяции надо создать папку "C:\VD" туда поместить 'VDFONT.bin','vidinfo.bin'
    Отредактировать vidinfo.bin
    Формат бинарный
    offset 0 физический адрес frame buffer DWORD
    offset 4 ширина экрана в пикселях DWORD
    offset 8 высота экрана в пикселях DWORD
    offset 12 байт на пиксел DWORD
    Через добавление оборудование добавить dev000.inf.
    В системных устройствах должен появиться Vdebuger(можно загружать и выгружать из диспетчера оборудования)
    Вызов отладчика ctrl+PrtScreen

    Желательно выключать Vdebuger до перезагрузки(может глючить при загрузке системы)
     
  2. VSG

    VSG New Member

    Публикаций:
    0
    Регистрация:
    3 апр 2008
    Сообщения:
    9
    Продолжение
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    а если бсоданёт?
     
  4. rain

    rain New Member

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

    VSG New Member

    Публикаций:
    0
    Регистрация:
    3 апр 2008
    Сообщения:
    9
    Safe mode-> удалить /system32/drivers/vd.sys

    сорци в сжатом состояние занимают около мегабайта. Если будет интерес к этой теме выложу где нибудь на внешнем ресурсе
     
  6. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    VSG
    давай выкладывай быстрей!
    у нас тут тоже есть разработчик отладчика, но он "жадный медвежонок".
    твой будем совершенствовать :)
     
  7. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    wsd
    если сорцы читабельные, то будем)
     
  8. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Great
    у человека ,написавшего работающий и не детский отладчик, наврятли
    с этим большие проблемы.
    А стиль - это на любителя ;)
    VSG
    мы с нетерпением ждём :)
     
  9. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    вот тут две темы где проблема GF 8800 обсуждалась
    http://wasm.ru/forum/viewtopic.php?id=23139
    http://wasm.ru/forum/viewtopic.php?id=21398
     
  10. VSG

    VSG New Member

    Публикаций:
    0
    Регистрация:
    3 апр 2008
    Сообщения:
    9
    Исходники.
    Для компиляции нужен MS VS 2003 + sp1,WIN DDK XP (2600), driver studio 3.2, build type -> free
    __http://rapidshare.de/files/39028297/VD.ZIP.html__ пароль : debuger

    Смотрите. Если хотите что дописать или переписать сообщите мне (vsg012собакаmail.ru) чтобы не получилось
    что пишем одно и тоже. В коде много осталось от DOS и win98. Сейчас это активно удаляется и может в течение месяца напишу краткий хелп(если надо будет).

    Еще вопрос кто нибудь запустил отладчик и если да, то как отзывы?
     
  11. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    ))
    непонравилось что архив мало пожат =\
     
  12. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    VSG

    А в чем проблема то c GeForce 8*?
     
  13. VSG

    VSG New Member

    Публикаций:
    0
    Регистрация:
    3 апр 2008
    Сообщения:
    9
    Маленькое окно с точками вместо вывода

    Интересует информация или по переводу видео памяти в линейный режим или структура этих tilt. Вообще любая инфа по выводу в видеопамять(frame buffer) без lock().

    Сам сейчас копаю драйвера nvidia, если кто то делал это и чего нибудь достиг-просьба помочь.
     
  14. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    VSG
    "Маленькое окно с точками вместо вывода" - это в SoftIce собственно и понятно - понятие FrameBuffer для серии 8* несколько отличается отклассического. Тут дело все в том что серия G 8* это полноценный миникомпьютер на видеоплате, со своим процессором и своим мепированием памяти.

    Копай или по-касперски "кури" DirectDraw и будет тебе счастье, но незабывай о IRQL на котором будет работать отлачик + мепирование win32k.sys не всегда есть, не говоря уж о видеодрайвере - тот который dll, а имено он тебе и будет нужен.

    Техническая спецификация карт 8й серии. Естестевенно в природе существует, но паблик нетути.

    На XP никто ничего недостиг, и даже не приблизился, на Vista - смотри syser - только одно ядро "/ONECPU" в boot.ini отключи - слишком синхронизация у них хромает и с ACPI работать ребята не умеют.
    PS: минимум - хорошее знание ядра Windows, тема крайне сложна, проще сказать набор BSODов обеспечен :)
     
  15. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    PROFi
    а вы не в курсе с ридеонами последними такие-же проблемы или нет?
     
  16. VSG

    VSG New Member

    Публикаций:
    0
    Регистрация:
    3 апр 2008
    Сообщения:
    9
    Пришлось делать самому. Сейчас я могу фильтруя IOCTL к драйверу нормально выводить в directdraw и десктопе при любом IRQL. В direct3d пока нет. Осталось сделать динамическое определение режима и framebufer а.

    Дополнительная информация только приветствуется.

    Идея очень правильная , только не сам DirectDraw а как он взаимодействует с мини драйвером.
     
  17. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    VSG

    Тут подстерегает одна неприятная вещь IOCTL от радеона и IOCTL от Gf ест-но не совпадают - потому изолированно Gf 8 можно поддерживать и твое высказываение
    Относится только к GF 8 да еще может быть к отдельной версии драйвера если IOCTL поменяют :)

    Универсально патчистя драйвер dll но через него не выведешь на высоких IRQL потому круг закрывается.
     
  18. TheDeath

    TheDeath New Member

    Публикаций:
    0
    Регистрация:
    20 июл 2003
    Сообщения:
    66
    Адрес:
    Russia,Новосибирск
  19. VSG

    VSG New Member

    Публикаций:
    0
    Регистрация:
    3 апр 2008
    Сообщения:
    9
    PROFi

    Да у меня и нет задачи создать нечто глобальное и под все карты и OS. Т.к. исходники открытые каждый может переделать под что надо.
    TheDeath
    Посмотрим, что из этого получится.

    To ALL
    На sourceforge.net зарегистрировали проект,
    так что wellcome: https://sourceforge.net/projects/vdebuger/
     
  20. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    VSG

    Хм. Если правильно разделить модульность отладчика, то по идее он может работать под любой видеокартой, тем более что видеокарт то осталось только nVidea да ATI - AMD.

    Проект хорошо, но архитектуру продумать нужно, чтобы потом не было "мучительно больно" ...