Сайт о сжатии  >>  ARCTEST

Сравнительные тесты
    Текстовые файлы
    Текстовые файлы (Mac)
    EXE-файлы
    EXE-файлы (Mac)
    Исполнимые EXE-сжатые
    Аудио: Wav-файлы
    Аудио: Wav-файлы (Mac)
    Графика: TIFF-файлы
    Графика: TIFF-файлы (Mac)
    Разноформатные файлы
    Разноформатные файлы (Mac)
    Файлы демо-игры
    Файлы демо-игры (Mac)
Альтернативные тесты
    Русский текст
    Английский текст
    Исходники
    WinWord-файл
    Excel-файл
    EXE-файл
    Новые тесты
Графические тесты
    Сжатие изображений без потерь
Новости
    Архив новостей
    Архив рассылки
Утилиты
    Просмотра-распаковки
    Идентификации-распаковки
    COM/EXE-распаковки, анализа
    Распаковки инсталляций
    Создания SFX-архивов/инсталляций
    Конвертирования
    Починки архивов
    Поиска
    Универсальные оболочки
    Управления баннерами
    Управления файлами
    Резервного копирования
    Тестирования
    Разные
Файл-менеджеры
    Файл-менеджеры
    Арх.-модули для FAR
    Арх.-модули для Win. Commander
Описания
    Статьи, интервью
    Теория, алгоритмы
    Self-описания архиваторов
    FAQ
    Разное
Линки
    Архиваторные
    COM/EXE/DLL-пакеров
Necromancer's DN
    О программе
    Новости свежих версий
    Архив новостей
Поддержка
   
    Подписка на рассылку новостей
    Архиваторные опросы
    Об авторе
Все о сжатии / arctest. Авторский проект.
---------------------------------------------------------

Как "сломать" кнопку Пуск

Итак, вы считаете себя проффи-пользователем Windows 95. Вы поражаете своих друзей и знакомых умными фразами про реестр и рассуждениями о тонкостях настройки Windows 95. А хотите поразить окружающих еще больше? Если да, то попробуйте изменить надпись на кнопке Пуск, написав на ней, скажем, слово "Меню" или может быть свое имя! Что тут изменять, скажите вы - открыл файл в HEX редакторе, сделал поиск слова "Пуск" и исправил! На самом же деле все не так просто как кажется! Вся проблема заключается в том, что текстовые сообщения в Windows-программах, также как и длинные имена файлов и каталогов, хранятся в Unicode-формате. 

Это 16-разрядная схема кодировки символов, в отличии от однобайтного стандарта Windows ANSI (256 символов - 2 в 8-й степени), позволяет представить 65536 (то есть 2 в 16-й степени) символов. Возможного количества уникальных кодов хватит с лихвой для кодировки букв всех современных, а также нескольких старых и мертвых языков. Эта система позволяет решить проблему множественности кодирования букв и переносимости файлов из одной локализованной (то есть переведенной на какой-либо язык) ОС в другую, поддерживая любые национальные алфавиты. Не смотря на автоматически привносимую Виндой популярность, эту кодировку не поддерживает ни один из известных мне шестнадцатеричных редакторов, в том числе и многомегабайтный HEX Workshop. А даже если бы и поддерживал, то без специальных настроек или локализации оного редактора вы бы все равно ничего не увидели. С этой же проблемой кстати сталкиваются и программы позволяющие изменять надпись кнопки Start, например WinHacker, работающий корректно только в англоязычной версии Windows 95. Единственной известной мне утилитой, позволяющей корректно просматривать (но, к сожалению, не редактировать) Unicode-строки является Peek (и редактор FAR). Эта утилита добавляет в контекстное меню всех файлов свои пункты, позволяющие "выдирать" из файлов всю текстовую информацию. Программа создает текстовый документ, содержащий все текстовые строки с указанием адресов где они расположены. Причем для корректной ее работы с русскими unicoded-символами их (русские заглавные и прописные буквы) необходимо предварительно добавить в список распознаваемых программой символов в реестре в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Aries\Peek\Unicode\Character Set. Впрочем, необходимость в этой утилите при редактировании кнопки Пуск отпадет если вы дочитаете статью до конца.

Итак, как же все-таки изменить надпись главной кнопки Windows 95? Во первых, необходимо сделать резервную копию редактируемого файла, то бишь explorer.exe из директории Windows 95. Зачем? А вдруг не получится, вдруг вы ошибетесь или неправильно поймете меня? Не переустанавливать же из-за этого Windows! После резервирования, перед началом редактирования необходимо перезагрузиться в режиме эмуляции MS-DOS, либо просто перезагрузить машину в command prompt режиме и набрать в командной строке Lock. На вопрос о включении режима прямого доступа к диску необходимо ответить Yes, после чего можно запустить любой шестнадцатеричный редактор, например Hiew или Disk Edit из Нортоновских утилит, либо воспользоваться встроенным в DOS Navigator HEX-редактором. 

Учитывая популярность последнего, буду объяснять процесс редактирования на его примере. Итак вы открыли файл по клавише F3, а затем по F4 вызвали режим HEX-редактирования (однократное нажатие, не путать с Dump'ом). Нажмите F5 (перейти) и введите адрес 2D43C для русской версии Windows 95 или 2DF0C для английской. Справа вверху, в текстовой части редактора появится строка приблизительно такого содержания: (.%.1.). За этой строкой будет стоять еще несколько символов и точек, после которых и идет искомая нами строка Пуск или Start. Правда надпись Пуск вы не увидите, однако если у вас англоязычная версия Windows 95, то чуть-чуть приглядевшись вы увидите нужную надпись - она будет выглядеть как: S.t.a.r.t. Да именно так! Дальнейшее изменение надписи в данном случае представляется очевидным. Просто замените соответствующие имеющиеся буквы (переход в текстовую часть производится клавишей Tab) на любые другие (но только английские). При этом следует сохранять надпись в существующих текстовых границах, а также сохранять общее количество выводимых на кнопке букв - то есть пять. Нужно также отметить, что символы представляемые в редакторе точками (код 00) на самом деле ими, то есть символами известного знака препинания не являются, и их присутствие между буквами обязательно. Кстати вы при желании можете поставить между буквами и пробел или применить его если вы не использовали все пять букв и хотите затереть старые буквы чтоб они не показывались на кнопке. При этом опять-таки нельзя забывать про символы "точек".

Это что касается английского варианта explorer'a. С русским все гораздо сложней по той причине, что реально выводимые на кнопке буквы не видны в редакторе. Буквы "П", "у", "с" и "к" расположены по следующим адресам и имеют следующие коды: П - 2D43C, код 1F, у - 2D43E, код 43, с - 2D440, код 41, к - 2D442 c кодом 3A. Собственно говоря ограничения по редактированию здесь те же что и с английской версией, только в данном случае букв должно быть четыре и в они должны быть разделены ромбиком (символ с кодом 04). Вообще-то, на самом деле, говорить что буквы отделяются ромбиком не очень-то верно, по той простой причине, что код символа ромба является составной частью кода каждой русской Unicoded-буквы, впрочем как и "точки" в английских символах. Кстати, именно поэтому, при смешении букв английского и русского языков, постарайтесь не запутаться с соответствующими "разделителями". Исключением не является и символ пробела (код 20 00, а не 20 04) как бы относимый к английскому алфавиту.

Возможные мотивы и ограничения установки знака пробела совпадают при редактировании  надписей кнопок обеих версий Windows 95. В нашем примере с переделыванием надписи "Пуск" на "Меню" последовательность новых кодов будет выглядеть следующим образом: 1C 04 35 04 3D 04 4E 04.

Описанным методом можно изменить не только надпись на кнопке Пуск, но и подсказку "Нажмите работу с нажатия этой кнопки", появляющуюся над кнопкой или выезжающую при загрузке Windows 95 (адреса 2CEA4 и 2D31B), а также многое многое другое.

Кстати, кроме баловства, редактирование надписи кнопки может принести и некоторую пользу. Например, если заменить все буквы Пуск или Start на символы с кодом 00 (опять-таки не путать с обычной точкой), в том числе и бывшие "ромбики-разделители" с кодом 04 (в англоязычной версии в этом нет необходимости), то вы, убрав надпись на бывшей кнопке Пуск, тем самым уменьшите ее размер приблизительно в три раза. Соответственно у вас появится чуть больше места на панели задач, то есть больше кнопок программ сможет там поместиться и тем медленней будет происходить уменьшение их размеров по мере роста их количества. Звучит запутанно, однако, когда вы откроете одновременно больше десятка окон, вы заметите в панели задач разницу.

Напоследок, для удобства редактирования, приведу Unicode-таблицу русских букв.


А - 10 Б - 11 В - 12 Г - 13 Д - 14 Е - 15 Ж - 16 З - 17 И - 18 Й - 19 К - 1A Л - 1B М - 1C Н - 1D О - 1E П - 1F
Р - 20 С - 21 Т - 22 У - 23 Ф - 24 Х - 25 Ц - 26 Ч - 27 Ш - 28 Щ - 29 Ъ - 2A Ы - 2B Ь - 2C Э - 2D Ю - 2E Я - 2F
а - 30 б - 31 в - 32 г - 33 д - 34 е - 35 ж - 36 з - 37 и - 38 й - 39 к - 3A л - 3B м - 3C н - 3D о - 3E п - 3F
р - 40 с - 41 т - 42 у - 43 ф - 44 х - 45 ц - 46 ч - 47 ш - 48 щ - 49 ъ - 4A ы - 4B ь - 4C э - 4D ю - 4E я - 4F
Кирилл Волошин
(автор раздела)
Последнее обновление: 12-May-2022

Сайт о сжатии  >>  ARCTEST  >>  Сравнительные тесты  |  Альтернативные тесты  |  Графические тесты  |  Новости  |  Утилиты  |  Файл'менеджеры  |  Описания  |  Линки  |  Necromancer's DN  |  Поддержка

Поиск:
Справка Детальный запрос

Сайт о сжатии >>
  Новинки | О сервере | Статистика

  Книга "Методы сжатия данных" >>
     Универсальные | Изображений | Видео

  Разделы >> Download (статьи+исходники) | Ссылки | Ru.compress | Arctest | Видео | Каталог ссылок | Форум
  Проекты >> Д.Ватолина | А.Ратушняка | М.Смирнова | В.Юкина | Е.Шелвина | А.Филинского | Д.Шкарина | С.Оснача

  Оставьте ваши замечания, предложения, мнения!
  О найденных ошибках пишите на compression_на_graphicon.ru
  © Д.Ватолин, А.Ратушняк, М.Смирнов, В.Юкин и др., текст, состав., 2001-2003
    Project supported by Graphics & Media Lab

   ЭТОТ ДОКУМЕНТ МОЖНО СКАЧАТЬ C http://www.compression.ru/compression.ru/arctest/descript/start-butt.htm

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