![]() |
eXeL@B —› Вопросы новичков —› Замена иконки |
Посл.ответ | Сообщение |
|
Создано: 17 декабря 2015 07:28 · Личное сообщение · #1 Здравствуйте! Понадобилось сменить иконку в EXE, в котором секция с ресурсами не последняя. Создал новую секцию, поправил Resource Directory RVA и Resource Directory Size. Добавил новые иконки. Иконка для EXE в проводнике поменялась. А вот возле названия окна осталась старая. Хотя у меня уже ее нету в новых ресурсах. Заполнил нулями участок данных старой секции ресурсов. После чего иконка возле названия окна изменилась на дефолтную. Т.е. получается, что LoadIcon где-то находит ссылку на старые ресурсы. Подскажите пожалуйста, где я забыл перебить оффсет на новые ресурсы. ![]() |
|
Создано: 17 декабря 2015 10:06 · Личное сообщение · #2 Может вся проблема в том, что секция содержит не все ресурсы ? Раз она не является последней, то это наводит на мысль, что файл упакован.Думаю, что разумнее было бы распаковать файл, сделать дамп ресурсов, а потом приклеить полную секцию со всеми ресурсами в конец файла и модифицировать как угодно. Aspack, asprotect и многие другие упаковщики-протекторы забирают иконку в свою секцию, так что такая прямая правка может быть чревата. ----- TEST YOUR MIGHT ![]() |
|
Создано: 18 декабря 2015 03:31 · Поправил: Lambda · Личное сообщение · #3 Файл действительно раньше был упакован с помощью протектора Themida. После чего был распакован не мной. Чтобы не гадать, я собрал максимально маленький рабочий комплект(архив 12МБ). Посмотрите пожалуйста. http://rghost.ru/8Y8Tj2ymB game_original.exe - файл до моих манипуляций по замене ресурсов game_patched.exe - файл после моих манипуляций по замене ресурсов Обратите внимание на старую секцию ресурсов в game_patched.exe. А именно ".resold". Если заполнить нулями, то иконка возле названия окна сменится на дефолтную. Хотя "Resource Directory RVA" уже указывает на новую секцию ресурсов. ---------------- Осмотрел более детально. Видимо это все из-за "анпака". На точке входа код, который восстанавливает первых 0x1000 байт из резервной области. А там я не фиксил Resource Directory RVA. Code:
![]() |
|
Создано: 18 декабря 2015 10:29 · Личное сообщение · #4 |
![]() |
eXeL@B —› Вопросы новичков —› Замена иконки |