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

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

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

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

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

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

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

'-----------------------------------------------------------------------------------------
'
' Этот скрипт показывает, как можно заменить любой тип данных, хранящихся в виде кастомных 
' ресурсов: основные графические форматы (.GIF, .PNG, .JPG), звуковые (.WAV, .MIDI) и 
' видео (.AVI) файлы, или бинарные файлы (.CAB, TYPELIB), а именно:
' - Заменяет нестандарнтый ресурс (GIF), используя в качестве источника gif файл.  
'
' Кроме того: 
- Добавляет или заменяет стандартный курсор, используя в качестве источника .cur файл.
- (Опционально) Устанавливает новое значение адреса ImageBase.
'
' Результирующий файл сохраняется в папку "\Demo\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 ' Язык по умолчанию

      ResourcesProxy.SetLanguage LangID, DELETE_IF_EXISTS

' Замена курсора

      PEFileProxy.PostDebugString "Заменяем курсор..."
      ResourcesProxy.ChangeCursor "32761", LangID, CREATE_IF_NOT_EXIST, 
REPLACE_IF_ITEM_EXISTS, ".\src\xhair2.cur"

      PEFileProxy.PostDebugString "Сортируем курсоры в группе..."
      ResourcesProxy.SortGroupCursor "", True

' Замена ресурса GIF

      PEFileProxy.PostDebugString "Заменяем кастомный ресурс..."
      ResourcesProxy.ChangeCustomResource "DEMO_GIF", "GIF", LangID, 
CREATE_IF_NOT_EXIST, ".\src\replaced.gif"

' Выводим отчёт об изменениях в дереве ресурсов в лог файл

      PEFileProxy.PostDebugString ""
      PEFileProxy.PostDebugString "Дерево Ресурсов - построено RTC:"
      ResourcesProxy.ResourceTreeToLog
      PEFileProxy.PostDebugString ""

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

      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