Что нового

Из ресурсов исполняемых файлов получить данные в виде строки-структуры

Andrey_A

Продвинутый
Сообщения
325
Репутация
68
Из ресурсов исполняемых файлов получить данные в виде строки (структуры).
Возможно кто-то это делал, поделитесь...
Кое-что получается, но не всё - возможно есть готовые функции преобразования как это делают программы Restorator, ResHacker, ResourceHacker. и др. - не нашёл на форумах.
Это самое простое- но есть кучу вложенных ImageInfo : item и Image.Data и подобных секций...

Т.е. задача бинарную строку:
0x545046300B5443757342746E466F726D0A43757342746E466F726D044C65667403C00003546F70026B15566572745363726F6C6C4261722E56697369626C65080B426F7264657249636F6E730B0C626953797374656D4D656E75000B426F726465725374796C65070C6273546F6F6C57696E646F770743617074696F6E060A43757342746E466F726D0C436C69656E74486569676874038C000B436C69656E74576964746803F80005436F6C6F720709636C42746E466163650C466F6E742E43686172736574070F44454641554C545F434841525345540A466F6E742E436F6C6F72070C636C57696E646F77546578740B466F6E742E48656967687402F509466F6E742E4E616D65060D4D532053616E732053657269660A466F6E742E5374796C650B000E4F6C644372656174654F72646572080D506978656C73506572496E636802600A54657874486569676874020D000754427574746F6E0542746E4F6B044C656674023103546F70026D055769647468024B0648656967687402190743617074696F6E0603264F4B085461624F726465720200074F6E436C69636B070D4F6B42697442746E436C69636B00000754427574746F6E0942746E43616E63656C044C656674027C03546F70026D055769647468024B0648656967687402190743617074696F6E06072643616E63656C0B4D6F64616C526573756C740202085461624F7264657202010000095447726F7570426F780947726F7570426F7831044C656674020803546F70020005576964746803E900064865696768740266085461624F7264657202020006544C6162656C0D4C626C42746E43617074696F6E044C656674020903546F700211055769647468022406486569676874020D0743617074696F6E060743617074696F6E0C466F637573436F6E74726F6C070D45647442746E43617074696F6E000006544C6162656C0A4C626C42746E48696E74044C656674021A03546F70022A055769647468021306486569676874020D0743617074696F6E060448696E740C466F637573436F6E74726F6C070A45647442746E48696E74000006544C6162656C084C626C476C797068044C656674021703546F700243055769647468021506486569676874020D0743617074696F6E060449636F6E0C466F637573436F6E74726F6C0709436D4278476C79706800000954436865636B426F780943686B42746E566973044C65667403810003546F70022605576964746802630648656967687402110743617074696F6E060756697369626C65085461624F72646572020000000954436865636B426F780D43686B42746E53686F77436170044C65667403810003546F70021105576964746802640648656967687402110743617074696F6E060D53686F772043617074696F6E73085461624F72646572020100000554456469740A45647442746E48696E74044C656674023203546F7002260557696474680249064865696768740215085461624F72646572020200000554456469740D45647442746E43617074696F6E044C656674023203546F70020E0557696474680249064865696768740215085461624F72646572020300000954436F6D626F426F7809436D4278476C797068044C656674023203546F70023E055769647468024A064865696768740213055374796C65071063734F776E65724472617746697865640A4974656D486569676874020D085461624F7264657202040A4F6E447261774974656D0711436D4278476C797068447261774974656D00000000
преобразовать в структуру:
Код:
object CusBtnForm: TCusBtnForm
  Left = 192
  Top = 107
  VertScrollBar.Visible = False
  BorderIcons = [biSystemMenu]
  BorderStyle = bsToolWindow
  Caption = 'CusBtnForm'
  ClientHeight = 140
  ClientWidth = 248
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object BtnOk: TButton
    Left = 49
    Top = 109
    Width = 75
    Height = 25
    Caption = '&OK'
    TabOrder = 0
    OnClick = OkBitBtnClick
  end
  object BtnCancel: TButton
    Left = 124
    Top = 109
    Width = 75
    Height = 25
    Caption = '&Cancel'
    ModalResult = 2
    TabOrder = 1
  end
  object GroupBox1: TGroupBox
    Left = 8
    Top = 0
    Width = 233
    Height = 102
    TabOrder = 2
    object LblBtnCaption: TLabel
      Left = 9
      Top = 17
      Width = 36
      Height = 13
      Caption = 'Caption'
      FocusControl = EdtBtnCaption
    end
    object LblBtnHint: TLabel
      Left = 26
      Top = 42
      Width = 19
      Height = 13
      Caption = 'Hint'
      FocusControl = EdtBtnHint
    end
    object LblGlyph: TLabel
      Left = 23
      Top = 67
      Width = 21
      Height = 13
      Caption = 'Icon'
      FocusControl = CmBxGlyph
    end
    object ChkBtnVis: TCheckBox
      Left = 129
      Top = 38
      Width = 99
      Height = 17
      Caption = 'Visible'
      TabOrder = 0
    end
    object ChkBtnShowCap: TCheckBox
      Left = 129
      Top = 17
      Width = 100
      Height = 17
      Caption = 'Show Captions'
      TabOrder = 1
    end
    object EdtBtnHint: TEdit
      Left = 50
      Top = 38
      Width = 73
      Height = 21
      TabOrder = 2
    end
    object EdtBtnCaption: TEdit
      Left = 50
      Top = 14
      Width = 73
      Height = 21
      TabOrder = 3
    end
    object CmBxGlyph: TComboBox
      Left = 50
      Top = 62
      Width = 74
      Height = 19
      Style = csOwnerDrawFixed
      ItemHeight = 13
      TabOrder = 4
      OnDrawItem = CmBxGlyphDrawItem
    end
  end
end
 
Последнее редактирование:
Автор
A

Andrey_A

Продвинутый
Сообщения
325
Репутация
68

IMStrelcov

, спасибо, но там нет решения задачи - я видел ещё 5-6 UDF, связанных с ресурсами , они хорошие, можно получать почти все , но структурировать указанную задачу я не встречал , возможно ошибаюсь, ткните пальцем)))
P.S. UDF позволяет получить бинарные данные - а вот далее там BinaryToString - а это не то. Бинарную строку считывать надо побайтово и по фразам (относительно ведущих байтов) , учитывая кучу всего... от этого и вопрос - возможно кто-то этим занимался...
Вот пример бинарного вида
bin.png

Вот пример тестового - но не всё получается
bin_txt.png
 
Последнее редактирование:

IMStrelcov

CTPEJIbLLOB
Сообщения
258
Репутация
66
Судя по первому скриншоту, это ResourcesViewerAndCompiler [исходник .au3]
Так почему не взять этот исходник и доработать под свои нужды?
 
Автор
A

Andrey_A

Продвинутый
Сообщения
325
Репутация
68
Так почему не взять этот исходник и доработать под свои нужды?
А причём тут типа "исходник", который ничего нового не выдаёт - вернее выдаёт стандартное...
Все UDF выдают бинарную строку ресурса и что?
Так в этом и вопрос, что не все получается - вот архив - в нём 2 файла - бинарная строка и структура
Как это преобразовать под свои нужды? (нужна структура из бинарной строки ресурсов)
Сообщение автоматически объединено:

Видимо да.. никто никогда этим не интересовался - спросил на немецком форуме - там тоже нихт
Возможно эта тема кому-то станет интересна...
---
Хотя тему можно закрыть, как и на нем.форуме - я решил задачу - код выкладывать не буду ,т.к. сыроват - надо проверить на нескольких тысячах exe файлов....
 
Последнее редактирование:
Верх