Посл.ответ |
Сообщение |
Ранг: 16.3 (новичок), 2thx Активность: 0.15↗0.22 Статус: Участник
|
Создано: 12 февраля 2017 22:42 · Личное сообщение · #1
Допустим я беру свой файл у которого секция ресурсов последняя. Копирую из другой сторонней программы секцию ресурсов и перезаписываю ее поверх своей. Из проги донора получаю SizeOfRawData и Misc.VirtualSize и приравниваю свои значения к ним. Высчитываю SizeOfImage. В итоге секция ресурсов видится, видится дерево ресурсов, но сами ресурсы оказываются заполнены бессмысленным мусором. Что то явно не так, Может нужно изменять какие то значение внутри самого дерева ресурсов?
| Сообщение посчитали полезным: |
|
Ранг: 337.5 (мудрец), 348thx Активность: 2.11↗2.42 Статус: Участник
|
Создано: 12 февраля 2017 23:25 · Личное сообщение · #2
zombi-vadim> ресурсы оказываются заполнены бессмысленным мусором. Это почему же ? Если вы не можите понять что за данные, это не значит что они не валидны. И вообще имеются готовые апи для записи ресурсов. Не ясно зачем они вообще реализованы, но они есть. И не нужно просить ссылки, есть гугл и мсдн.
----- vx | Сообщение посчитали полезным: |
Ранг: 16.3 (новичок), 2thx Активность: 0.15↗0.22 Статус: Участник
|
Создано: 12 февраля 2017 23:29 · Личное сообщение · #3
difexacawЯ знаю про апи, мне хотелось бы понять что не так? Если просмотреть файл в любом редакторе, то видно что сами ресурсы повреждены. Вернее они есть и в нормальном состоянии, только получить к ним доступ невозможно.
| Сообщение посчитали полезным: |
Ранг: 54.0 (постоянный), 49thx Активность: 0.72↗1.1 Статус: Участник
|
Создано: 12 февраля 2017 23:37 · Личное сообщение · #4
а можно посмотреть чё там хотите менять файл приатачте и ресурс
| Сообщение посчитали полезным: |
Ранг: 16.3 (новичок), 2thx Активность: 0.15↗0.22 Статус: Участник
|
Создано: 12 февраля 2017 23:47 · Поправил: zombi-vadim · Личное сообщение · #5
Ресурс это любой файл с секцией ресурса, если кто то разбирается в вопросе, он должен знать почему ресурсы гробятся. Их даже виндовый проводник не видит (иконки). Я не правильно рассчитываю SizeOfRawData и Misc.VirtualSize или надо править значения в дереве ресурсов ?
| Сообщение посчитали полезным: |
Ранг: 158.4 (ветеран), 123thx Активность: 0.14↗0.49 Статус: Участник
|
Создано: 13 февраля 2017 00:22 · Личное сообщение · #6
zombi-vadim пишет: или надо править значения в дереве ресурсов ? Разумеется. Оффсеты на данные ресурсов есть rva, так что если секция ресурсов перемещена по другому адресу относительно базы, их все надо пересчитать.
| Сообщение посчитали полезным: |
Ранг: 16.3 (новичок), 2thx Активность: 0.15↗0.22 Статус: Участник
|
Создано: 13 февраля 2017 01:01 · Личное сообщение · #7
rmnСпасибо. Я в принципе подозревал что проблема в IMAGE_RESOURCE_DATA_ENTRY.OffsetToData. Вот только как эти значения пересчитать, помогите пожалуйста..
| Сообщение посчитали полезным: |
Ранг: 158.4 (ветеран), 123thx Активность: 0.14↗0.49 Статус: Участник
|
Создано: 13 февраля 2017 01:57 · Личное сообщение · #8
zombi-vadimСчитаем delta = newRVA - oldRVA;, где newRVA и oldRVA адреса секции ресурсов в новом и оригинальном файле соответственно и прибавляем delta ко всем OffsetToData.
| Сообщение посчитали полезным: |
Ранг: 16.3 (новичок), 2thx Активность: 0.15↗0.22 Статус: Участник
|
Создано: 13 февраля 2017 23:47 · Личное сообщение · #9
rmnСпасибо ВАМ огромное, вы направили меня на путь истинны!)
| Сообщение посчитали полезным: |