информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
BugTraq.Ru
Русский BugTraq
 Многоуровневый виртуальный полигон... 
 Проникновение в ОС через приложения.... 
 Проникновение в ОС через приложения.... 
 Oracle выпустила внеочередной патч 
 Четвертый Хром 
 Антивирус Касперского принял Adsense... 
главная книги soft обзор RSN библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / operating systems
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
beginners
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[РАСКОВЫРЯЛ] Надо будет поковырять будет под дебагом 19.12.06 21:45  Число просмотров: 11626
Автор: Killer{R} <Dmitry> Статус: Senior Member
Отредактировано 19.12.06 23:36  Количество правок: 5
<"чистая" ссылка>
Но чтото мне подсказывает что это был какой то быстрокривохак для замены пути NT-style выводимого MessageBox'м каким то сервисом на win32, причем в коде win32k.sys, а сам сервис ковырять никто не хотел почемуто :)

[РАСКОВЫРЯЛ жуя апельсину] обошелся сырцами винды :)
Функция GetHardErrorText
Первое что поразило - длина функции почти 700 строк Сшного кода :))
Коммент:
* This function figures out the message box title, text and flags.
* We want to do this up front so we can log this error when the hard error is
* raised. Previously we used to log it after the user had dismissed the message
* box -- but that was not when the error occurred (DCR Bug 107590)
Функция занимается тем что находит в тексте месаг бокса строчки типа "{EXCEPTION}" и если таковые есть - чтото еще оттуда выдирает и пишет в системный лог. Прямо из MessageBox'а! Воистину мега-криво-хак :)

} else if ((asLocal.Length > 4) && !_strnicmp(asLocal.Buffer, "\\??\\", 4)) {
strcpy( asLocal.Buffer, asLocal.Buffer+4 );// когда strcpy не было сильно заоптимизированным это наверно работало :))))
asLocal.Length -= 4;

А у MB_SERVICE_NOTIFICATION ноги растут потому что дебрях винды MB_SERVICE_NOTIFICATION месагбокс с эмулируется через NtRaiseHardError :))

Помнится NT убивал нижеследующий код. Вот что называется перенесли кривоподелие user32 в ядро...
HMENU hMenu = CreatePopupMenu();
HMENU hMenu1 = CreatePopupMenu();
AppendMenu(hMenu1,MF_STRING, 1, "1");
AppendMenu(hMenu1,MF_STRING, 2, "2");
AppendMenu(hMenu1,MF_STRING, 3, "3");
InsertMenu(hMenu,1,MF_POPUP|MF_STRING,(UINT)hMenu1,"1");
InsertMenu(hMenu,2,MF_POPUP|MF_STRING,(UINT)hMenu1,"2");
InsertMenu(hMenu,3,MF_POPUP|MF_STRING,(UINT)hMenu1,"3");
InsertMenu(hMenu,4,MF_POPUP|MF_STRING,(UINT)hMenu1,"4");
InsertMenu(hMenu,5,MF_POPUP|MF_STRING,(UINT)hMenu1,"5");
InsertMenu(hMenu,6,MF_POPUP|MF_STRING,(UINT)hMenu1,"6");
<operating systems> Поиск 


самые популярные книги на BugTraq.Ru/Books
  1. Разработка приложений SAP R/3 на языке АВАР/4 +CD-ROM
  2. Электронная техника.
  3. CCNA: Cisco Certified Network Associate. Учебное руководство. Второе издание
  4. .NET Сетевое программирование для профессионалов
  5. UNIGRAPHICS для профессионалов


Rambler's Top100
Рейтинг@Mail.ru

  Copyright © 2001-2010 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach