DotFix ::: Software protection portal
 *Начало * Ответить * Статистика * Задать вопрос * Поиск * FAQ * *

DotFix Forum / Вопросы программирования и исследования защит / Как сохранить иконку?
Автор Сообщение
MZUser
Участник


Дата: 23 Апр 2006 22:39


Извлекаю иконку из EXE:
ExtractIcon(hinstance,'c:\1.exe',0);
Icon.SaveToFile('c:\1.ico');
А она 16 цветная, хотя на канве она нормальная!!!
Как сохранить иконку в нормальном цвете?

mag3d
Участник


Дата: 24 Апр 2006 13:18


Можно сделать по-тупому: разобрать секцию ресурсов и сохранить данные нужной иконки, геморойно, но надежно.
Инфу можно найте в MSDN статья:
"Peering Inside the PE: A Tour of the Win32 Portable Executable File Format" Matt Pietrek.
Или в док-ции по PE файлам, см. на сайте www.wasm.ru

MZUser
Участник


Дата: 25 Апр 2006 00:11


А если EXEшник запакован какимто ASPACKom и т.д?

Admin
Администратор


Дата: 27 Апр 2006 14:33


А если EXEшник запакован какимто ASPACKom и т.д?
Обычно упаковщики не пакуют иконки в секции ресурсов, потому иконка легко извлекается.

MZUser
Участник


Дата: 28 Апр 2006 23:50


А если запакована и в RESORATORe иконки не видно (Corrupt Resource)???
Нужно считать секцию иконки вручную и сохранить иконку!!!
Или каким-то другим способом...
Но каким?

Admin
Администратор


Дата: 29 Апр 2006 21:03


Declare Function ExtractIconEx Lib "shell32.dll" Alias "ExtractIconExA" (ByVal lpszFile As String, ByVal nIconIndex As Long, phiconLarge As Long, phiconSmall As Long, ByVal nIcons As Long) As Long

Подробнее тут

MZUser
Участник


Дата: 30 Апр 2006 17:30


Не работает никак - сохраняется 16 цветная иконка!!!.
Вот уж не думал что такое сделать будет так сложно!!!
Подскажите алгоритм сохранения иконки напрямую
(Тип формата ICO,и корректный перевод Bitmap в Icon)

Ваш ответ

Bold Style  Italic Style  Underlined Style  Image Link  Insert URL  Email Link  Код 
... Отменить *Что это?


Перед отправкой "нелатинского" текста проверьте кодировку броузера!
 » Логин  » Пароль