Редактор ресурсов

   English English  Deutsch Deutsch  Русский Русский

главная  программы  resource tuner console  сборник примеров скриптов

Замена кастомных типов ресурсов в EXE файлах

Этот код демонстрирует использование Resource Tuner Console для пакетной замены любых типов данных, хранящихся в виде кастомных ресурсов: основные графические форматы (.GIF, .PNG, .JPG), звуковые (.WAV, .MIDI) и видео (.AVI) файлы, или бинарные файлы (.CAB, TYPELIB, и т.п.)

Предлагаемый код скрипта заменяет нестандартный ресурс GIF в тестовом приложении DemoApp1.exe на анимированный gif файл из папки "Src". Также скрипт заменяет стандартный курсор и производит ребазирование файла.

Примечание: при копировании кода скрипта, пожалуйста, убедитесь в отсутствии переносов строк внутри команд. Это требование VBScript: каждая команда должна располагаться целиком на одной строке.

Edit Custom GIF

'------------------------------------------------------------------------------
'
' Результирующий файл будет сохранён в папке "Release". Вы можете просмотреть
' изменения, внесенные в ресурсы файла, проверив файл rtc.log.
'
'------------------------------------------------------------------------------

Sub Main
      
  PEFileProxy.PostDebugString "Пересчёт контрольной суммы в заголовке файла вкл." 
  PEFileProxy.UpdateCheckSum = True

  PEFileProxy.PostDebugString "Создание резервной копии отключено." 
  PEFileProxy.CreateBackUp = False

  PEFileProxy.PostDebugString "Открываем файл для редактирования..."
  PEFileProxy.OpenFile ".\src\DemoApp1.exe"
  if (PEFileProxy.Terminated) then
    'Предупреждение в случае ошибки
    PEFileProxy.PostDebugString "При открытии файла произошла ошибка."
  else
    PEFileProxy.PostDebugString "Файл открыт успешно."
    if (not PEFileProxy.HasResources) then
      PEFileProxy.PostDebugString "Файл не содержит ресурсов."
    else
      PEFileProxy.PostDebugString "Файл содержит ресурсы."      

      'Указываем язык по умолчанию      
      LangID = 0 ' Default 

      ' Замена файла "GIF" в кастомном ресурсе "DEMO_GIF"
      ' (имя ресурса = "DEMO_GIF", id ресурса = "GIF")
      PEFileProxy.PostDebugString "Заменяем/добавляем пользовательский ресурс..."
      ResourcesProxy.ChangeCustomResource "DEMO_GIF", "GIF", LangID, 
CREATE_IF_NOT_EXIST, ".\src\replaced_ani_gif.gif"

      'Замена курсора (в целях демонстрации)
      PEFileProxy.PostDebugString "Заменяем/добавляем курсор..."
      ResourcesProxy.ChangeCursor "32761", LangID, CREATE_IF_NOT_EXIST, 
REPLACE_IF_ITEM_EXISTS_ELSE_ADD, ".\src\xhair2.cur"

      'Выводим отчёт об изменениях в дереве ресурсов в лог-файл. 
      PEFileProxy.PostDebugString ""
      PEFileProxy.PostDebugString "Дерево ресурсов — построено с помощью RTC:"
      ResourcesProxy.ResourceTreeToLog
      PEFileProxy.PostDebugString ""

'--- Устанавливаем новое значение адреса ImageBase в PE Optional Header ---

' Примечание: Это необязательная операция для демонстрационных целей. Она
' позволяет вручную устанавить адреса ImageBase, чтобы избежать конфликтов,
' когда ваше приложение загружает много DLL с одинаковым базовым адресом.
' Эта операция опциональна и может быть закомментирована, если не нужна.

      PEFileProxy.PostDebugString "Устанавливаем новый адрес ImageBase..."
      if (not PEFileProxy.RebaseImage(&H00500000)) then
        'Предупреждение в случае ошибки
        PEFileProxy.PostDebugString "Не удалось ребазировать файл"
      end if

'--------------------------------------------------------------------------------

      'Сохранение и закрытие файла      
      PEFileProxy.PostDebugString "Сохраняем изменения в новый файл..."
      PEFileProxy.SaveAsNewImage ".\release\DemoApp1.exe"

    end if
    PEFileProxy.PostDebugString "Закрываем файл..."
    PEFileProxy.CloseFile
  end if
end Sub

Чтобы посмотреть и проверить произведённые изменения в самом EXE файле, мы рекомендуем использовать Resource Tuner GUI, визуальный редактор ресурсов.

Примеры скриптов

Установив Resorce Tuner Console на свой компьютер, вы найдёте папку Demo Scripts в директории с программой. Внутри этой папки находятся 12 папок с примерами скриптов и тестовыми файлами.

Все примеры скриптов готовы к применению. Чтобы запустить выполнение скрипта, выберете соответствующий .BAT файл в любой папке с примером. Resorce Tuner Console произведёт изменения в тестовом EXE файле, находящемся в папке Src. Результирующий файл будет записан в папку Release в директории, содержащей скрипт.

 

Пошаговое руководство по использованию скриптов

 Скачать 60-дневную пробную версию Resource Tuner Console