У меня такая проблема , прикремпил иконку файлу но на ехе она не такая качественная как была в оригенале ... Код (Text): format PE GUI 4.0 entry Main include 'win32a.inc' SC_MANAGER_ALL_ACCESS = 000F003Fh EWX_REBOOT = 00000002h EWX_FORCE = 00000004h SE_PRIVILEGE_ENABLED = 00000002h TOKEN_QUERY = 00000008h TOKEN_ADJUST_PRIVILEGES = 00000020h section '.data' data readable writeable RegValueName db 'SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System',0 RegValueKey db 'EnableLUA',0 dwKey dd 00000000h hKey dd ? hToken dd ? SE_SHUTDOWN_NAME db 'SeShutdownPrivilege',0 struct LUID LowPart dd 0 HighPart dd 0 ends struct LUID_AND_ATTRIBUTES Luid LUID Attributes dd 0 ends struct TOKEN_PRIVILEGES PrivilegeCount dd 0 Privileges LUID_AND_ATTRIBUTES ends TokenPriv TOKEN_PRIVILEGES UnderUACMsg db 'Пожалуйста запустите программу от имени администратора.',0 UACDisabledMsg db 'Сохраните рабочие данные и закройте все программы, компьютер будет перезагружен!',0 Installation db 'Installation',0 section '.code' code readable executable proc Main invoke OpenSCManagerA,NULL,NULL,SC_MANAGER_ALL_ACCESS cmp eax,0 je .UAC invoke MessageBoxA,0,UACDisabledMsg,Installation,MB_OK+MB_ICONWARNING+MB_TOPMOST invoke GetCurrentProcess invoke OpenProcessToken,eax,TOKEN_QUERY + TOKEN_ADJUST_PRIVILEGES,hToken invoke LookupPrivilegeValueA,NULL,SE_SHUTDOWN_NAME,TokenPriv.Privileges.Luid mov dword [TokenPriv.Privileges.Attributes],SE_PRIVILEGE_ENABLED mov dword [TokenPriv.PrivilegeCount],1 invoke AdjustTokenPrivileges,[hToken],FALSE,TokenPriv,0,NULL,NULL invoke CloseHandle,[hToken] invoke RegOpenKeyExA,HKEY_LOCAL_MACHINE,RegValueName,0,KEY_WRITE,hKey invoke RegSetValueExA,[hKey],RegValueKey,0,REG_DWORD,dwKey,4 invoke RegCloseKey,[hKey] invoke ExitWindowsEx,EWX_REBOOT+EWX_FORCE,0 jmp exit .UAC: invoke MessageBoxA,0,UnderUACMsg,Installation,MB_ICONWARNING+MB_TOPMOST exit: invoke ExitProcess,0 endp section '.idata' import data readable library kernel,'KERNEL32.DLL',\ advapi,'ADVAPI32.DLL',\ user,'USER32.DLL' import advapi,\ RegOpenKeyExA,'RegOpenKeyExA',\ RegSetValueExA,'RegSetValueExA',\ RegCloseKey,'RegCloseKey',\ OpenProcessToken,'OpenProcessToken',\ AdjustTokenPrivileges,'AdjustTokenPrivileges',\ LookupPrivilegeValueA,'LookupPrivilegeValueA',\ OpenSCManagerA,'OpenSCManagerA' import kernel,\ ExitProcess,'ExitProcess',\ GetCurrentProcess,'GetCurrentProcess',\ CloseHandle,'CloseHandle',\ GetLastError,'GetLastError' import user,\ ExitWindowsEx,'ExitWindowsEx',\ wsprintfA,'wsprintfA',\ MessageBoxA,'MessageBoxA' section '.rsrc' resource data readable directory RT_ICON,icons,\ RT_GROUP_ICON,group_icons resource icons,\ 1,LANG_NEUTRAL,icon_data resource group_icons,\ 2,LANG_NEUTRAL,main_icon icon main_icon,icon_data,'install.ico'
http://msdn.microsoft.com/en-us/library/dd371711.aspx Тут написано как исправить. Никакой иконки на скриншотах я не заметил, тем более в плохом качестве.
Попробуйте распотрошить эту иконку на все её 10 составляющих и взять самую подходящую по размеру/качеству. Тут, возможно, FASM либо не все умеет добавлять в ресурсы такие "многостраничные" иконки, либо делает это неправильно.
fragment, макросы фасм в самом деле не умеют обрабатывать иконки, содержащие несколько изображений разного размера. Есть простой способ – использовать .res файл, сгенерированный каким-нибудь редактором ресурсов или rc.exe (section '.rsrc' data resource from 'my.res'), есть неудобный – сохранять иконки так, чтобы в каждом исходном .ico-файле было только по одной иконке, и потом вручную собирать их в RT_GROUP_ICON, и, наконец, можно пофиксить макрос.