|

Руcификация своими руками
Xakep, номер #044, стр. 044-028-1
Как сделать перевод иноязычной программы
Shadow Bat (bat@bladezone.ru)
Хотелось бы тебе покопаться в интересной программе? Выяснить, как она выглядит изнутри, выдрать из нее красивые значки и картинки или вообще изменить ее внутренний интерфейс? Но для полноценной работы нужны исходники, нужно знать основы программирования... Вообще, нужно изучать очень много вещей, на которые совершенно нет времени. К тому же 80% разработчиков не подозревают о существовании «великого и могучего», а от английского интерфейса начинает тошнить... Есть довольно простой способ изменить если не принципы работы программы, но уж ее внешний вид точно.
Пролог
В феврале 2000 года из Х я узнал о существовании программы Restorator. Хотя нет, скачал я ее еще пару месяцев назад, но не врубился, что она делает. На сайте автора было написано про exciting world of UCA's - User-styled Custom Applications, но это ничего не объясняло. А маленький абзац в Х все прояснил - это программа для переделки других программ. На самом деле все довольно просто. В любой программе есть место, где в довольно упорядоченном виде хранятся почти все данные ее внешнего вида. И эти данные можно легко изменить, не обладая никакими основами программирования и не имея исходных кодов. Программы, которые могут изменять эти данные, относятся к классу редакторов ресурсов. За прошедшие полтора года этот класс довольно сильно разросся на волне популярности Restorator-а, появился даже один отечественный представитель.
Теория
Для начала немного теории, а потом я опишу известные мне редакторы ресурсов. Ресурсы чаще всего находятся в exe файлах, реже в dll, а вообще их можно найти везде - вплоть до файлов с экранными заставками (scr). Почти независимо от того, в чем сделана интересующая нас программа, они разделены по разным разделам/папкам. Все примеры я будут давать на базе программы Restorator, она обладает почти самым большим количеством возможностей и довольно проста в освоении.
Скачиваем, запускаем и видим три окна - «resource tree» - в нем показывается открытый файл со всем его ресурсами в виде раскрывающихся папок; внизу висит содержимое рабочей папки, куда будут извлекаться ресурсы и откуда они будут добавляться. Справа есть окно resource viewer, где будет отображаться содержимое открытого ресурса. В качестве примера возьмем всем известный блокнот, надеюсь, он у тебя есть. Открываем в рестораторе notepad.exe - и что мы видим? А видим мы несколько папок - Menu, Dialog, String, Accelerators, Icon, Version. Некоторым людям, всю жизнь не вылезающим из танка, эти названия ничего не говорят, но нам-то ясно, что в папке Menu находятся стандартные меню, в папке Dialog содержаться окна диалогов. В папке String находятся текстовые отрезки, вставляемые в разные места программы, в Accelerators находится список сочетаний кнопок, который проставляется в меню. Так, что там еще осталось? Папка Icon содержит значки, а Version - информацию о версии программы. Так как блокнот не слишком продвинутая программа, в ней отсутствуют разделы с картинками - Bitmap, с видео - AVI, с функциями - Typelib. В программах, написанных на Delphi, есть еще раздел RCData. Некоторые типы данных - Menu, Dialog, String, Accelerators и RCData - можно редактировать во встроенном редакторе. Почти все типы данных, кроме version, можно извлечь и редактировать в других программах. А потом вставить обратно. То есть можно изменить все картинки программы, все видеовставки. Например, в Windows вместо перелетающего листочка можно поставить летающий кирпич, если у тебя настолько прямые руки, что могут редактировать видео. Все видеофайлы хранятся в формате Avi, а картинки чаще всего в Bmp, 256 цветов. Курсоры, иконки - все можно заменить. Нельзя изменить только информацию о версии программы, которая содержится в разделе Version. По мнению автора программы - изменение данных о версии может внести путаницу. Во время редактирования меню и диалогов все изменения автоматически будут отображаться в окне предварительного просмотра, что существенно облегчает задачу. Внизу каждого изменяемого файла будет несколько закомментированных строк. В нем довольно подробно, но по-английски, будет написано, что можно сделать с данным кодом. Теоретически, осмыслив эти комментарии, можно разобраться во всем, не читая данную статью.
Содержание Вперед на стр. 044-028-2
|