директория ресурсов

Тема в разделе "WASM.BEGINNERS", создана пользователем readme, 31 окт 2005.

  1. readme

    readme New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2005
    Сообщения:
    271
    Адрес:
    Russia
    чтото я ненашёл про это нечего, вобщем как перемещаться по ресурсам, какие там структуры и если есть примерчик неоткажусь)

    а то даже каличество элементах в ресурсах немогу посчитать
     
  2. readme

    readme New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2005
    Сообщения:
    271
    Адрес:
    Russia
    вот вроде в 16м редакторе посматрел

    res STRUCT

    znachenie1 DD ?;неизвестно

    rva DD ?

    znachenie3 DD ?;неизвестно

    znachenie4 DD ?;неизвестно

    res ENDS

    набросал сваю структуру, может у когото лучше есть?
     
  3. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    readme

    Почитай о формате PE (на этом сайте достаточно документов), там всё расписано.
     
  4. readme

    readme New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2005
    Сообщения:
    271
    Адрес:
    Russia
    тыкни носом пожалуйста может я чегото пропустил где там по хождениям по ресурсам написано
     
  5. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Например, "Форматы РЕ и COFF объектных файлов", Мэтт Питрек. Лежит на RSDN, легко находится поиском. На сайте - сборник документов. Почти во всех подробно расписывается секция ресурсов. Или за тебя прочесть и расписать? Смотри ещё WinNT.h на предмет структур.
     
  6. readme

    readme New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2005
    Сообщения:
    271
    Адрес:
    Russia
    ого англизкий мне надолго его читать я среди русских сматрел тока
     
  7. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Где английский? На RSDN перевод, в сборнике тоже на русском есть.
     
  8. readme

    readme New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2005
    Сообщения:
    271
    Адрес:
    Russia
    да спасибо нашёл русский перевод буду читать
     
  9. dr_dred

    dr_dred Сергей

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    301
    Адрес:
    Russia
    readme

    Да! довольно интересная вещь! Сам про это искал. В итоге оказалось, что все есть в coff.pdf! Попозже выложу код программы, которую я когда-то писал. Но вот я не знал, что есть api, которые под это заточены.
     
  10. readme

    readme New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2005
    Сообщения:
    271
    Адрес:
    Russia
    да выложи пожалуйста, правда эпи я думал этим непользоваться, но сёрано выложи пожалуйсто а то я постарею пока там разберусь ищё и институт ночью тока

    буду ждать
     
  11. readme

    readme New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2005
    Сообщения:
    271
    Адрес:
    Russia
    db 000h,000h,000h,000h,020h,000h,000h,000h,0FFh,0FFh

    db 000h,000h,0FFh,0FFh,000h,000h,000h,000h,000h,000h

    db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h

    db 000h,000h,004h,000h,000h,000h,02Ch,000h,000h,000h

    db 054h,000h,049h,000h,050h,000h,000h,000h,04Eh,000h

    db 041h,000h,04Dh,000h,045h,000h,000h,000h,000h,000h

    db 000h,000h,000h,000h,030h,010h,019h,004h,000h,000h

    db 000h,000h,000h,000h,000h,000h,074h,065h,073h,074h

    вот пример ресурса, там только текст непойму как добраться до него.

    сначала идёт структура IMAGE_RESOURCE_DIRECTORY ?

    а то я с этими структурами запутался:

    IMAGE_RESOURCE_DIRECTORY

    IMAGE_RESOURCE_DIRECTORY_ENTRY

    IMAGE_RESOURCE_DIRECTORY_STRING

    IMAGE_RESOURCE_DIR_STRING_U

    IMAGE_RESOURCE_DATA_ENTRY

    IMAGE_LOAD_CONFIG_DIRECTORY
     
  12. dr_dred

    dr_dred Сергей

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    301
    Адрес:
    Russia
    Во-первых. Давно программируешь?

    Во-вторых. Вот премерно секция ресурсов состоит так (меня поправят, если что не так):

    I_R_D - IMAGE_RESOURCE_DIRECTORY

    I_R_D_E - IMAGE_RESOURCE_DIRECTORY_ENTRY

    Сначала I_R_D. Там указывается, что этот ресурс - stringtable. Сразу после этого 1 или несколько I_R_D_E, в которых RVA на I_R_D. Там указывается номер ресурса. Сразу после этого 1 или несколько I_R_D_E, в которых RVA на I_R_D, где указывается язык. После этого несколько I_R_D_E, которые указывает непосредственно на stringtable.

    stringtable состоит так:

    dw размер последующей строки

    du строка, заканчивающаяся на "0"! Даже если ее нет.

    STRINGTABLE

    0 "строка0"

    1 "строка1"

    3 "строка3"

    END

    преобразуется в

    dw 7, du "строка0", dw 7, du "строка1, dw 0, du 0, dw 3, du "строка3"

    Реально же все сложнее.



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



    P.S.

    Ну ты конечно можешь все сам читать, но лучше использовать EnumResource... и т.п. Еще полазь в ntdll.dll, там полно функций интереснейших, таких как ImageResourceDirectoryEntryToData, хотя по-моему я всеже название неправилно написал.