Pers.narod.ru. Тексты. 00000023-0000-0010-8000-00AA006D2EA4 или миф о 'багогенераторе' Windows

"Вот вы тут сидите и не знаете, что писька-то совсем по-другому называется!" - гордо заявил родителям пришедший из школы первоклассник Вовочка... о чём это я? Ах да, получил тут письмо о найденном, наконец, человеком источнике всех бед и проблем с Windows... разумеется, оказалось, что злые программисты Microsoft встроили в Windows специальный "генератор багов", который намеренно создаёт системные ошибки. Прочитать "шыдевр" полностью легко в тысячах перепечаток, просто наберите в Яндексе заголовок этой статьи.

Что любопытно - устойчивость данного "баяна", видимо, ей способствует заведомо "конспирологический" характер интервью, да ёще и "загадочные символы" ключа реестра, который нужно изменить. Тем более, что о действительном назначении этого, да и других ключей реестра, получить информацию не так уж легко.

Впервые в широкой прессе эта "правда о Windows" появилась в журнале Upgrade, году этак в 2002 в первоапрельском выпуске рубрики "Must die". Сам Upgrade взял эту уже тогда популярную байку из сетевого фольклора, первоисточник сейчас установить трудно(1). В дальнейшем, помимо тысяч сетевых перепечаток, байка мелькала и во вполне серьёзных изданиях, например, в книге Б.К. Леонтьева "Microsoft Windows XP SP3. Cкрытые возможности".

Давайте попробуем разобраться, как на самом деле обстоят дела с ключом 00000023-0000-0010-8000-00AA006D2EA4 и за что он отвечает. Помочь в этом может, например, утилита OLE/COM Object Viewer, которая поставляется вместе с Visual C++ 5.0, 2005, 2008 и выше, Visual Basic 5.0 и рядом других продуктов. Исполняемый файл утилиты называется OleView.exe, у меня она нашлась в папке

C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin\

Утилита также может запускаться из Visual Studio командой Tools, OLE/COM Object Viewer.

В окне утилиты слева открываем список Interfaces, находим по алфавиту первую запись с названием Error, видим следующее:

Вот он, багогенератор Windows :)

Попробуем немного расшифровать и пояснить, с чем мы тут имеем дело.

В масдае, то есть, в Вашей Windows, используется технология COM (Component Object Model, Компонентная Объектная Модель). Суть её в том, что приложения и части системы, построенные на ней, перестают быть автономными программами, а представляют собой набор взаимодействующих между собой компонентов. Каждый компонент при этом имеет уникальное имя (GUID, Globally Unique Identifier) и может одновременно использоваться многими программами. Компонент взаимодействует с другими программами через интерфейсы — наборы абстрактных функций и свойств. У COM-объекта можно запросить какой-нибудь интерфейс, при этом используются как раз GUIDы, реально они представляют собой 128-битовые числа. Запись 00000023-0000-0010-8000-00AA006D2EA4 - типичный GUID. Помимо GUID'ов используются также более понятные человеку символические идентификаторы вроде "Error" или "Connection".

Получается, что загадочная запись в реестре означает следующее: интерфейс с символическим именем "Error" имеет GUID 00000023-0000-0010-8000-00AA006D2EA4. Этот интерфейс относится к Microsoft DAO 3.6 Object Library, а DAO (Data Access Objects) - это стандартная библиотека поддержки доступа к базам данных, скажем, её может использовать Access из Microsoft Office. Вот краткое описание интерфейса Error:

An Error object contains details about data access errors, 
each of which pertains to a single operation involving DAO
Объект Error содержит детали про ошибки доступа к данным, 
каждая из которых относится к единичной операции, вызванной DAO.
(перевод машинный, но, думаю, понятно)

Когда программа, использующая технологию Microsoft DAO, по ходу работы с какой-нибудь базой данных с помощью этой библиотеки сталкивается с ошибкой, она может получить более подробную информацию об ошибке через интерфейс "Error" некоторого объекта. Эта информация может содержать, например, краткое описание ошибки, которое может понять пользователь, и которое можно отобразить на экране.

Замена Error на ErrorFree здесь означает переименование интерфейса Error в ErrorFree. Теперь в любой программе, в которой предполагалось, что этот интерфейс имеет символическое обозначение "Error", это станет невозможным и вызовет ошибку :-)

Так что "отключение багогенератора" действительно создаёт интересную ситуацию - ошибку в механизме обработки ошибок при попытке доступа к информации об ошибках :)

Жаль только, что конечный пользователь обращается к интерфейсам DAO нечасто, и шансы увидеть (точней, не увидеть, мы же отключили вывод сообщений об ошибках) результаты "отключения багогенератора" у него невысоки :)

Кстати, если у Вас всё ещё XP, могу навскидку предложить старую "конспирологическую" фишку, которая сразу покажет, откуда ноги растут.

Запустите редактор Блокнот, наберите в нем строку Bush hid the facts ("Буш скрыл факты"), 
сохраните и закройте файл, потом откройте снова... об увиденном отпишите :) 
В конце текста не должно быть лишних пробелов, точек, перевода строки и т.п.

В "семёрке" ничего не выйдет, а вот в XP - да.

Ну и касательно OLE/COM Object Viewer - остаётся предположить, что обман Microsoft куда глубже, чем мы думаем, и в утилиту OLE/COM Object Viewer тоже намеренно встроена неверная инфа о некоторых классах и интерфейсах.

В общем, если Вы - параноик, это ещё не значит, что за вами не следят... а самый главный баг Windows, скажу по секрету, мне всё же известен. Но он находится вне системы, возможно, как раз в эту минуту он смотрит в Ваш монитор :)

P.S. Вот такое письмо по поводу статьи я получил 23 августа 2012 г.:

Тема: Re: не дезинформируйте общественность

Wed, 22 Aug 2012 15:56:05 -0400 от Yury Nesterenko :

Greetings,

Наткнулся на вашу статью http://pers.narod.ru/text/00000023-0000-0010-8000-00AA006D2EA4.html. С компьютерной т.зр., разумеется, все правильно. Но печально, что вы не умеете пользоваться поисковиками и в результате нарушаете чужие неимущественные права. Иначе вы бы не писали глупостей "Сам Upgrade взял эту уже тогда популярную байку из сетевого фольклора, первоисточник сейчас установить трудно." Статья "Тайны компьютерных гигантов" написана мной специально для первоапрельского номера журнала Upgrade и, естественно, опубликована там под моим именем. Равно как и на моем сайте: http://yun.complife.ru/miscell/mssecr.txt При этом стоит отметить, что не только журнал был апрельский, но и рубрика Mustdie - юмористическая. Тем не менее, тысячи идиотов восприняли этот текст всерьез...

YuN mailto:comte@au.ru

Мой ответ:

Добрый день,

Я умею пользоваться поисковиками, но сведения из них бывают противоречивы. Не сомневаюсь, что Вы - высококвалифицированный специалист с отменным чувством юмора, но тогда тем более странно, что торопитесь разбрасываться "глупостями" в адрес незнакомых людей. Полагаю, не будет нарушением чьих-либо "неимущественных прав", если я добавлю Ваше письмо и этот ответ примечанием к статье.

Из ответа г-на Нестеренко:

...
Можете добавлять, но, главное, исправьте дезинформирующую фразу на "текст был написан Юрием Нестеренко для первоапрельского выпуска журнала Upgrade и опубликован в юмористической рубрике Mustdie" [в одно слово]

Рейтинг@Mail.ru
вверх гостевая; E-mail
Hosted by uCoz