Resource Hacker |
![]() |
Добавил(а) microsin | |||||||||||||||||||||||||||
Программа Resource Hacker™ была разработана как полноценное средство редактирования ресурсов приложений: для компиляции, просмотра, декомпиляции и перекомпиляции ресурсов как 32-битных, так и 64-битных приложений Windows. Resource Hacker может открыть любой двоичный исполняемый файл Windows (*.exe, *.dll, *.scr, *.mui, и т. д.), чтобы можно было добавлять, модифицировать или удалять отдельные ресурсы в этих файлах. Resource Hacker может создавать и компилировать файлы скриптов ресурсов (resource script files, *.rc), и может также редактировать стандартные файлы ресурсов (resource files, *.res). [Компиляция] Компиляция может быть начата либо передачей через командную строку имени файла скрипта ресурсов в качестве параметра, или с помощью текстового редактора программы Resource Hacker. Поддерживаемые директивы компилятора: #DEFINE, #UNDEF, #IF, #ELIF, #ELSE, #IFDEF, #IFNDEF, #INCLUDE и #PRAGMA. Директивы #INCLUDE, #IF и #IFDEF могут быть вложены друг в друга на несколько уровней. Строки в операторах ресурсов определяются между двойными кавычками ("). Эти строки также могут содержать типичные для языка C символы с экранированием обратным слешем - \t , \n , \\ , \" и \000 .. \377 (octal, восьмеричный формат). Чтобы указать в строке кавычку, она может быть точно так же экранирована слешем, или она может быть указана дважды. Комментарии в скрипте начинаются либо после двойного слеша (//), либо после точки с запятой (;). Имена файлов в операторах ресурсов могут быть обработаны только как строки, поэтому они ОБЯЗАТЕЛЬНО должны быть заключены в двойные кавычки, иначе будут появляться ошибки компиляции. Полный список операторов определения ресурсов (Resource-Definition Statements) можно найти на сайте Microsoft [2]. [Просмотр ресурсов] После того, как исполняемый файл открыт, большинство ресурсов отобразятся либо как изображения (или группа изображений), либо как декомпилированный текст: Однако некоторые типы ресурсов будут отображаться как в их компилированной форме, (например как диалог или всплывающее меню), так и в виде в формате декомпилированного текста. Некоторые типы ресурсов могут быть показаны только как сырой дамп из байт данных: [Использование внутреннего редактора для модификации текстовых ресурсов] Окна диалога, меню приложений, таблицы строк, таблицы сообщений, акселераторы и ресурсы форм Borland могут быть легко отредактированы и заново скомпилированы с помощью внутреннего редактора ресурсов. У графических элементов управления окон диалога (dialog controls) могут быть визуально изменены размеры и/или они могут быть перемещены, с любыми изменениями, автоматически отражаемыми в скрипте ресурсов. Преобразование между точками экрана и единицами измерения диалога делается автоматически. Элемент управления выбирается кликом на нем в отображаемом диалоге. Альтернативно могут использоваться клавиши табуляции (Tab или Shift+Tab) для выбора следующего по порядку или предыдущего элемента управления. Выбранный элемент будет отображать "ручки" для изменения размера. Для перемещения элемента управления без изменения его размера (когда этот элемент выбран), кликните на нем и перетащите в другое место. Клавиши со стрелками также могут использоваться для перемещения элемента, когда он выбран. Размер элемента управления может быть изменен кликом на нем и перетаскиванием его боковых и угловых "ручек". Альтернативно для изменения размера могут использоваться клавиши со стрелками в комбинации с кнопкой Shift. Редактор диалога (Dialog Editor) может быть открыт из всплывающего меню, отображаемого правым кликом на диалоге предварительного просмотра (preview). Редактор элементов управления (Control Editor) может быть открыт из того же контекстного меню, как только был выбран нужный элемент. Могут быть добавлены новые графические элементы управления. Control Editor поддерживает почти все стандартные и общие классы элементов управления Microsoft, применяемые для создания графического интерфейса пользователя в GUI-приложении. Также могут быть добавлены определяемые пользователем классы в предварительно определенный список классов, путем осторожного редактирования текстового файла Dialog.def, который можно найти в той же папке, что и Resource Hacker. Кнопки панели инструментов включают обычно используемые элементы управления. Левый верхний угол добавляемого элемента управления примет по умолчанию значение в точке, по которой первоначально кликнули кнопкой в окне диалога. [Замена картинок] Если ресурс для замены это иконка, курсор или растровое изображение (bitmap), то исходный файл может быть *.ico, *.cur или *.bmp соответственно, и он может быть выбран из файла *.res или другого файла *.exe. Выберите в меню Action|Replace Icon (Cursor или Bitmap). [Синтаксис командной строки] Почти весь функционал Resource Hacker доступен из командной строки, при этом необязательно открывать графический интерфейс программы Resource Hacker. Инструкции командной строки и скрипты Resource Hacker могут избавить от тяжелой работы повторения действий задач Resource Hacker. Инструкции командной строки это комбинации операторов ключей, за которыми идут параметры, что показано в следующей таблице:
Замечания: • Идентификаторы ключей командной строки (кроме ключа -script) могут быть заменены их сокращениями в виде одной буквы (например -res может быть заменен на -r). reshack_help.bat: ResourceHacker.exe -help @pause :: так мы можем увидеть результат вывода в консоль до закрытия окна CMD. reshack_compile_res_script.bat: ResourceHacker.exe -open .\in\resources.rc -save .\out\resources.res -action compile -log NUL reshack_add_icon_to_old.bat: ResourceHacker.exe -open old.exe -save new.exe -action addskip -res missing.ico -mask ICONGROUP,MAINICON, reshack_extract_icon_from_source.bat: ResourceHacker.exe -open source.exe -save savedicon.ico -action extract -mask ICONGROUP,MAINICON, -log CONSOLE
@pause
reshack_extract_all_icons_from_source.bat: ResourceHacker.exe -open source.exe -save savedicons.rc -action extract -mask ICONGROUP,, -log savedicons.log reshack_execute_my_script.bat: ResourceHacker.exe -script myscript.txt [Скрипты Resource Hacker] Скрипты Resource Hacker могут быть запущены из командной строки следующим синтаксисом: ResourceHacker.exe -script файл_скрипта Скрипты Resource Hacker это текстовые файлы в следующем формате: //Комментариям предшествует двойной слеш [FILENAMES] Open= Save= Log= [COMMANDS] //Одна или несколько следующих команд ... -add SourceFile, ResourceMask -addskip SourceFile, ResourceMask -addoverwrite SourceFile, ResourceMask -addoverwrite SourceFile, ResourceMask -modify SourceFile, ResourceMask -extract TargetFile, ResourceMask -delete ResourceMask Примечание: имена файлов, которые содержать пробелы, должны быть заключены в двойные кавычки. rh_script_myprog_rus.txt - //Этот скрипт удаляет все таблицы строк Language Neutral (0), //элементы меню и элементы ресурса диалога в приложении //MyProg.exe перед заменой их на элементы Russian (1049) ... [FILENAMES] Exe= MyProg.exe SaveAs= MyProg_Rus.exe Log= MyProg_Rus.log [COMMANDS] -delete MENU,,0 -delete DIALOG,,0 -delete STRINGTABLE,,0 -add MyProg_Rus.res, MENU,,1049 -add MyProg_Rus.res, DIALOG,,1049 -add MyProg_Rus.res, STRINGTABLE,,1049 rh_script_myprog_upd_images.txt - //Этот скрипт обновляет 2 растровые картинки и иконку //в MyProg.exe ... [FILENAMES] Exe= MyProg.exe SaveAs= MyProg_Updated.exe [COMMANDS] -addoverwrite Bitmap128.bmp, BITMAP,128, -addoverwrite Bitmap129.bmp, BITMAP,129,0 -addoverwrite MainIcon.ico, ICONGROUP,MAINICON,0 rh_script_myprog_upd_all.txt - //Этот скрипт заменяет все ресурсы в MyProg.exe на //все ресурсы в MyProgNew.res [FILENAMES] Exe= MyProg.exe SaveAs= MyProg_Updated.exe [COMMANDS] -delete ,,, //сначала удаляются все ресурсы перед ... -add MyProgNew.res ,,, //добавлением всех новых ресурсов Программное обеспечение Resource Hacker (ПО) выпущено как бесплатное (freeware) при условии, что Вы соблюдаете следующее: • Это ПО не будет распространяться через любой сайт/домен или любой носитель без предварительного упоминания о его владельце (copyright owner). ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: пользователь этого ПО соглашается, что он или она получили это ПО "как есть", и пользователь не полагается на точность или функциональность этого ПО для любой цели. Пользователь соглашается, что он берет на себя риск любого использования этого ПО, и владелец ПО (copyright owner) нисколько не отвечает за результаты использования или применение ПО. Вышеуказанные правила лицензии составляют "информацию по управлению правами" (copyright management information)" в значении Секции Section 1202 Параграф Title 17 United States Code, и они не должны быть изменены или удален из лицензированного продукта. Из изменение или удаления может попадать под действие Секции 1202 и привести к гражданским или уголовным преследованиям по закону. 4.5.30. Обновление: незначительные косметические улучшения. [Ссылки] 1. Resource Hacker site:angusj.com. |