Сейчас на форуме: (+5 невидимых) |
eXeL@B —› Программирование —› Вывод информации на экран из уровня ядра или почему SoftICE закрыт |
Посл.ответ | Сообщение |
|
Создано: 30 июня 2007 16:52 · Поправил: Vadim Sergeevich · Личное сообщение · #1 С приходом DirectX 10, и новыми видеокартами (на GeForce 8800 проверено точно) отладчики не смогут корректно выводить информацию на экран. И вот почему: Раньше физическая память видеоадаптера отображалась линейно на экран и при знании адреса начала отображания на экран, и шага от одной строки к следующей, была возможность рисовать на экране из режима ядра как вздумается (из режима пользователя такая возможность будет существовать по умолчанию). Вышеприведенный отладчик использует DirectDraw находит эти параметры и спокойно отображает информацию на экран (если не верите установите чистую WinXP без драйвера экрана, и потом установите SoftIce, тот тут же выдаст ошибку - интерфейс DirectDraw не найден). А на текущий момент времени физическая видеопамять перестала быть линейной, и даже при знании указанных выше параметров вывести на экран что-либо будет невозможно. Т.о. либо будет необходимость писать видеодрайвер siwvid.sys для каждой видеокарточки (а тех. характеристики никто так просто не даст), либо использовать интерфейс к уже имеющимся драйверам (но кто гарантирует, что уровень IRQL это позволит), либо прекратить разработку отладчика, что собственно и произошло. Есть ли какие соображения о том как можнот вывести что-либо на экран из режима ядра на современных видеокарточках ? |
|
Создано: 30 июня 2007 18:29 · Личное сообщение · #2 |
|
Создано: 30 июня 2007 18:42 · Личное сообщение · #3 |
|
Создано: 30 июня 2007 23:48 · Личное сообщение · #4 |
|
Создано: 01 июля 2007 23:35 · Личное сообщение · #5 В общем,это называется -- пиздец(простите за выражение) подкрался внезапно... Походу дело действительно в видеокарте(у меня 8800GTX),а не в ядре Conroe процессора Intel Core2Duo EN6600. Если в настройках экрана полностью убрать аппаратное ускорение,то отладчик запускается!!Был проверен даже брейкпоинт на MessageBoxA -- отладчик его ловит.И всё это на этом самом ядре Conroe! Однако главная проблема заключается в том,что нормального окна отладчика мы не увидим.В самом деле,вверху экрана просто появляются какие-то два небольших полигона,отдалённо напоминающие окно SoftICE.А всё потому,что убирая аппаратное ускорение,мы отрубаем тот самый DirectDraw,без которого не может нормально отображать своё окно отладчик.Попытки поставить в настройках что-то отличное от "Universal Video Driver" у меня заканчивались в конце концов BSOD'ом. Собственно хочу задать вопрос: у кого-нибудь работает отладчик с видеокартой PCI Express x16?? Например,какая-нибудь подобная видеокарта из шестой или седьмой серии GeForce?? ----- the Power of Reversing team |
|
Создано: 02 июля 2007 01:39 · Личное сообщение · #6 |
|
Создано: 02 июля 2007 02:32 · Личное сообщение · #7 |
|
Создано: 02 июля 2007 11:47 · Личное сообщение · #8 |
|
Создано: 02 июля 2007 15:18 · Личное сообщение · #9 |
|
Создано: 03 июля 2007 18:41 · Личное сообщение · #10 |
eXeL@B —› Программирование —› Вывод информации на экран из уровня ядра или почему SoftICE закрыт |
Эта тема закрыта. Ответы больше не принимаются. |