Друзья! Значит, что я делаю: 1) Беру экзешник X с понравившейся иконкой, и аккуратно копирую (HIEW) секцию ресурсов по RVA: PointerToRawData, размером SizeOfRawData в файл например fail_sekts 2) Беру экзешник Y, у которого нет секции ресурсов (простенький messagebox) и аккуратно-аккуратно программно присоединяю к нему секцию, которая щас в файле fail_sekts, атрибуты устанавливаю r, имя .rsrc, правлю заголовки (этот пункт менее других подлежит сомнению, я давно написал специальную программу именно для прибавления секций к экзешнику, не раз прибавлял секции с кодом) 3) правлю таблицу директорий, _IMAGE_DATA_DIRECTORY.Size подглядываю у X в OllyDbg, _IMAGE_DATA_DIRECTORY.VirtualAddress пишу фактический 4) Запускаю модифицированный Y, ноль эмоций, обновлённый файл отрабатывает без ошибок, только иконки у него не прибавляется. Открываю Y в OllyDbg, там в памяти в графе Contain напротив прибавленной .rsrc гордо красуется "resources", то есть всё круто. А иконки не видно, как быть? Если я с этим справлюсь, этот процесс можно будет потом автоматизировать. Cпасибо, кто откликнется!
Ээээ, зачем так сложно. Вроде ж API работы с ресурсами (BeginUpdateResource, UpdateResource и т.п.) позволяет менять ресурсы в модуле и так? Я делал самодельную цифровую подпись EXEшников таким образом. Да, ещё посмотри ResourceHacker'ом, может там больше одной иконки