Программирование PC Resource Hacker Tue, December 12 2017  

Поделиться

нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


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 Hacker01

[Компиляция]

Компиляция может быть начата либо передачей через командную строку имени файла скрипта ресурсов в качестве параметра, или с помощью текстового редактора программы 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].

Resource Hacker02

[Просмотр ресурсов]

После того, как исполняемый файл открыт, большинство ресурсов отобразятся либо как изображения (или группа изображений), либо как декомпилированный текст:

Resource Hacker03

Resource Hacker04

Однако некоторые типы ресурсов будут отображаться как в их компилированной форме, (например как диалог или всплывающее меню), так и в виде в формате декомпилированного текста.

Resource Hacker05

Некоторые типы ресурсов могут быть показаны только как сырой дамп из байт данных:

Resource Hacker06

[Использование внутреннего редактора для модификации текстовых ресурсов]

Окна диалога, меню приложений, таблицы строк, таблицы сообщений, акселераторы и ресурсы форм Borland могут быть легко отредактированы и заново скомпилированы с помощью внутреннего редактора ресурсов.

Resource Hacker07

У графических элементов управления окон диалога (dialog controls) могут быть визуально изменены размеры и/или они могут быть перемещены, с любыми изменениями, автоматически отражаемыми в скрипте ресурсов. Преобразование между точками экрана и единицами измерения диалога делается автоматически. Элемент управления выбирается кликом на нем в отображаемом диалоге. Альтернативно могут использоваться клавиши табуляции (Tab или Shift+Tab) для выбора следующего по порядку или предыдущего элемента управления. Выбранный элемент будет отображать "ручки" для изменения размера. Для перемещения элемента управления без изменения его размера (когда этот элемент выбран), кликните на нем и перетащите в другое место. Клавиши со стрелками также могут использоваться для перемещения элемента, когда он выбран. Размер элемента управления может быть изменен кликом на нем и перетаскиванием его боковых и угловых "ручек". Альтернативно для изменения размера могут использоваться клавиши со стрелками в комбинации с кнопкой Shift.

Редактор диалога (Dialog Editor) может быть открыт из всплывающего меню, отображаемого правым кликом на диалоге предварительного просмотра (preview). Редактор элементов управления (Control Editor) может быть открыт из того же контекстного меню, как только был выбран нужный элемент.

Resource Hacker08

Resource Hacker09

Могут быть добавлены новые графические элементы управления. Control Editor поддерживает почти все стандартные и общие классы элементов управления Microsoft, применяемые для создания графического интерфейса пользователя в GUI-приложении. Также могут быть добавлены определяемые пользователем классы в предварительно определенный список классов, путем осторожного редактирования текстового файла Dialog.def, который можно найти в той же папке, что и Resource Hacker. Кнопки панели инструментов включают обычно используемые элементы управления. Левый верхний угол добавляемого элемента управления примет по умолчанию значение в точке, по которой первоначально кликнули кнопкой в окне диалога.

[Замена картинок]

Если ресурс для замены это иконка, курсор или растровое изображение (bitmap), то исходный файл может быть *.ico, *.cur или *.bmp соответственно, и он может быть выбран из файла *.res или другого файла *.exe. Выберите в меню Action|Replace Icon (Cursor или Bitmap).

Resource Hacker10

[Синтаксис командной строки]

Почти весь функционал Resource Hacker доступен из командной строки, при этом необязательно открывать графический интерфейс программы Resource Hacker.

Инструкции командной строки и скрипты Resource Hacker могут избавить от тяжелой работы повторения действий задач Resource Hacker.

Инструкции командной строки это комбинации операторов ключей, за которыми идут параметры, что показано в следующей таблице:

Ключ         Параметр Описание
-open filename Имя файла, который будет модифицирован. Это должен быть файл Windows PE (*.exe, *.dll, и т. д.), или либо скомпилированный, либо не скомпилированный файл ресурсов (*.res или *.rc).
-save filename Имя нового файла, который модифицируется или создается заново. Либо модифицированный открытый файл, либо распакованный ресурс.
-resource filename Файл, который содержит ресурс, добавляемый к открытому файлу.
-action действие Задает действие, которое применяется к открытому файлу:
• compile - компилирует файл ресурсов (*.rc).
• add - добавляет ресурс. Если он уже существует, то произойдет ошибка.
• addskip - добавляет ресурс, ничего не делает, если он уже существует.
• addoverwrite - добавляет ресурс, перезаписывая его, если он существует.
• extract - распаковывает ресурс.
• delete - удаляет ресурс.
-mask маска_ресурса Type, Name, Language. Запятые указываются обязательно, но наличие любого из этих элементов не обязательно.
-log файл В качестве файла может быть указано имя файла, CONSOLE или NUL. В лог записываются подробности выполняемых операций. Если этот ключ опущен, то лог будет записываться в файл resourcehacker.log.
-script filename Задает файл скрипта, где может содержаться любое количество команд. Это не скрипт ресурсов! Для дополнительной информации введите команду -help script.
-help options В качестве параметра options должно быть указано commandline или script (подсказка доступна только по этим ключам, другие ключи игнорируются). Результат подсказки выводится всегда в консоль.

Замечания:

• Идентификаторы ключей командной строки (кроме ключа -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. Обновление: незначительные косметические улучшения.
4.5.28. Обновление: значительные изменения (и улучшения) синтаксиса командной строки.
4.4.26. Исправление: состояние тулбара не сохранялось между сессиями. Исправление: незначительный бак декомпиляции некоторых информационных ресурсов версии.
4.3.20. Исправления: множество исправлений в обработке командной строки, и другие незначительные исправления ошибок.

[Ссылки]

1. Resource Hacker site:angusj.com.
2. Resource-Definition Statements site:msdn.microsoft.com.

 

Добавить комментарий


Защитный код
Обновить

Top of Page