Сейчас на форуме: tyns777, cppasm, dutyfree, asfa (+7 невидимых)

 eXeL@B —› Вопросы новичков —› Копирование секции ресурсов из одного файла в другой.
Посл.ответ Сообщение

Ранг: 16.3 (новичок), 2thx
Активность: 0.150.22
Статус: Участник

Создано: 12 февраля 2017 22:42
· Личное сообщение · #1

Допустим я беру свой файл у которого секция ресурсов последняя. Копирую из другой сторонней программы секцию ресурсов и перезаписываю ее поверх своей. Из проги донора получаю SizeOfRawData и Misc.VirtualSize и приравниваю свои значения к ним. Высчитываю SizeOfImage. В итоге секция ресурсов видится, видится дерево ресурсов, но сами ресурсы оказываются заполнены бессмысленным мусором. Что то явно не так, Может нужно изменять какие то значение внутри самого дерева ресурсов?




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 12 февраля 2017 23:25
· Личное сообщение · #2

zombi-vadim

> ресурсы оказываются заполнены бессмысленным мусором.

Это почему же ?
Если вы не можите понять что за данные, это не значит что они не валидны. И вообще имеются готовые апи для записи ресурсов. Не ясно зачем они вообще реализованы, но они есть. И не нужно просить ссылки, есть гугл и мсдн.

-----
vx




Ранг: 16.3 (новичок), 2thx
Активность: 0.150.22
Статус: Участник

Создано: 12 февраля 2017 23:29
· Личное сообщение · #3

difexacawЯ знаю про апи, мне хотелось бы понять что не так? Если просмотреть файл в любом редакторе, то видно что сами ресурсы повреждены. Вернее они есть и в нормальном состоянии, только получить к ним доступ невозможно.



Ранг: 54.0 (постоянный), 49thx
Активность: 0.721.1
Статус: Участник

Создано: 12 февраля 2017 23:37
· Личное сообщение · #4

а можно посмотреть чё там хотите менять файл приатачте и ресурс



Ранг: 16.3 (новичок), 2thx
Активность: 0.150.22
Статус: Участник

Создано: 12 февраля 2017 23:47 · Поправил: zombi-vadim
· Личное сообщение · #5

Ресурс это любой файл с секцией ресурса, если кто то разбирается в вопросе, он должен знать почему ресурсы гробятся. Их даже виндовый проводник не видит (иконки). Я не правильно рассчитываю SizeOfRawData и Misc.VirtualSize или надо править значения в дереве ресурсов ?



Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 13 февраля 2017 00:22
· Личное сообщение · #6

zombi-vadim пишет:
или надо править значения в дереве ресурсов ?

Разумеется. Оффсеты на данные ресурсов есть rva, так что если секция ресурсов перемещена по другому адресу относительно базы, их все надо пересчитать.



Ранг: 16.3 (новичок), 2thx
Активность: 0.150.22
Статус: Участник

Создано: 13 февраля 2017 01:01
· Личное сообщение · #7

rmnСпасибо. Я в принципе подозревал что проблема в IMAGE_RESOURCE_DATA_ENTRY.OffsetToData.
Вот только как эти значения пересчитать, помогите пожалуйста..



Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 13 февраля 2017 01:57
· Личное сообщение · #8

zombi-vadim
Считаем delta = newRVA - oldRVA;, где newRVA и oldRVA адреса секции ресурсов в новом и оригинальном файле соответственно и прибавляем delta ко всем OffsetToData.



Ранг: 16.3 (новичок), 2thx
Активность: 0.150.22
Статус: Участник

Создано: 13 февраля 2017 23:47
· Личное сообщение · #9

rmnСпасибо ВАМ огромное, вы направили меня на путь истинны!)


 eXeL@B —› Вопросы новичков —› Копирование секции ресурсов из одного файла в другой.
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати