PDA

Просмотр полной версии : [Статья] ResHacker: редактируем ресурсы ЕХЕ и DLL


unc0r3x
19.02.2010, 23:31
Есть такая интересная программка - ResHacker. С помощью неё можно редактировать файлы Win32 (exe или dll например).
Это небольшой мануал по её использованию.

Ресурсы - данные, размещённые в отдельной секции .rsrc в исполняемых файлах и библиотеках формата Portable Executable.
Их удобно использовать потому, что они не занимают лишних файлов в папке с программой, да и с ресурсами очень легко работать с помощью сторонних программ, как ResHacker.

Скачать всегда можно здесь, на сайте автора:
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
Virustotal.com ([Ссылки могут видеть только зарегистрированные и активированные пользователи] c754f3ac96a795-1266677950) - отчёт.

Окно программы:
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
Справа - "папки ресурсов", то есть то, что наша программка смогла найти в файле (напоминаю, ехе или dll!). В данном случае это Icon, Icon Group и Version Info - последняя присутствует в основном в программах, написанных на высокоуровневых языках.
Какие бывают типы-папки и что в них может хранится:

Bitmap - Картинки с форматом bmp
Icon, Icon Group - иконки, все, какие есть в ехе, dll файлах, их расширение (вообще) ico
Version info - Описание, которое отображается в свойствах
Cursor,Cursor group - Курсоры, использованные в программе
String Table - Все переменные строкового типа, проще говоря строчки текста, которые присутствуют в программе
WAVE - WAV-звук
RCData - может содержать все, что угодно, даже часть некоторых свойств элементов, что очень полезно. Был случай когда в этом пункте переставив в одном месте с Visible = false на Visible = true я открывал новый функционал программы (скрытые вкладки)
Dialog - довольно "вкусная" часть. Можно редактировать формы программы
AVI - видео AVI
Menu - меню сверху и меню ниспадающее правой кнопки мыши, т.е. его текст и горячие клавиши.

В общем-то выше я описал основные типы данных, есть другие уникальные, в основном там XML, интересного не очень много.
Дальше. Справа в диалоге программы вы видите собственно содержимое ресурса.

Если вы хотите выдрать ресурс, давайте посмотрим как это сделать. Откройте любой ехе-файл.
правой кнопкой жмем на ресурсе:
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

Если появилось сообщение "This file has a non {...} "Exe compressor" " при открытии любого ресурса - читайте внизу.

Save all resources - сохранить в файл ресурсов всё, что нашлось вообще
Save {...} resources - сохранить данную папку с ресурсами (в данном случае - курсоры)
Save {...} - сохранить курсор прямо в нормальный формат (*.cur). Аналогично и с другими типами.
Rename resource - не трогайте, если не уверенны - это переименование ресурса
Delete Resource - удаление ресурса, только если вы уверенны, что он действительно не нужен, и программа сможет без него функционировать.
Теперь интересное -
Replace Resource - заменить ресурс на свой. Я бы рекомендовал использовать максимально похожий ресурс (если картинка - к примеру, то такая же по размеру). Смотрим:
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
Select file with {...} ... - Справа выбираем ресурс,жмем на кнопку и указываем свой. Потом кнопку Replace. Назаменялись? Закрываем.

В случае редактирования текста:
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

Меняем текст, перед тем как сменить ресурс обязательно жмем Compile script. Старайтесь не использовать знаки на подобии \ / - там есть ограничение на подобные символы. Если вы смените ресурс не сохранив текущие изменения в тексте, программа предложит - сохранить или нет.

Ну что, набаловались? Давайте сохранять. Если вы заранее сделали копию оригинала, записывайте поверх - File->Save, или Ctrl+S.
Готово. ResHacker автоматически создаст копию ехе-файла с приставкой _original.exe , так как если вы будете часто сохранять, может такое случиться, что в какой-то момент переделанный ехе-файл перестанет запускаться. В таком случае не помешало бы иметь его копию. Если после первого сохранения уже программа не запускается - или вы что-то не то удалили\переименовали\изменили, или же эта программа не подлежит редактированию.

Итак, запускайте, смотрите, исправляйте.

Запакованные ехе и dll:
Так может случится, что при открытии большинства или даже всех ресурсов будет вылетать сообщение "This file has a non {...} "Exe compressor" ". Значит он запакован. Тут может быть возможность его распаковать, но это как повезет. Статья не затрагивает эту тему. Тем не менее копайте в сторону утилиты PEiD. В PEiD найдёте пакер, а в гугле унпакер.


Чем полезна утилита ResHacker (если вы не вывели это из вышеописанного):
- Можно сделать перевод программы
- Немножко подредактировать оформление
- Удалить ненужные ресурсы
- Заменить икноку и описание ехе-файла
- Изменить содержимую графику\звук\видео
- Всё, что сможете еще придумать :)

Мануал подготовил Unc0r3x aka Я. Надеюсь, статья была вам полезной.

Vendeta
23.02.2010, 16:04
новые версии программы ResHack какието непонятные и грубо говоря туповатые,для меня лучше юзать версии постарее

unc0r3x
23.02.2010, 19:31
Новых версий и не было. Последний апдейт был чтобы добавить поддержку Vist'овых x64 экзешников.

Vendeta
28.02.2010, 10:40
Новых версий и не было. Последний апдейт был чтобы добавить поддержку Vist'овых x64 экзешников.

в февральской игромании был какойто ResHacker,новый,там вообще непонятно

unc0r3x
28.02.2010, 10:43
Может то не ResHacker, а Restorator? Похожая программа, только платная. Тоже обладает широкими возможностями.

KloneB@DGuY
04.03.2010, 04:59
Может то не ResHacker, а Restorator? Похожая программа, только платная. Тоже обладает широкими возможностями.

Да не похожая. ResHacker по функционалу
и рядом не лежал с Restorator. Платная? о_О
Ну вы даете, такое слышать на форуме читеров.

Вот вам крякнутая, портативная версия.
Пользуйтесь, а то ResHacker мамонта напоминает.

P.S. Статья нормальная, новичкам познавательна.