Что такое формат файла QMG?
Файл .qmg - это растровое изображение Qmage, разработанное компанией Quramsoft и интегрированное в Android-устройства Samsung начиная с конца 2014 года (Android 4.4.4 KitKat). Формат поддерживает как статические изображения, так и многокадровую анимацию, что делает его подходящим для ресурсов тем Samsung One UI, таких как обои, иконки и элементы интерфейса, включая последовательности запуска, выключения и зарядки.
Кодек Qmage скомпилирован в кастомизированный форк графической библиотеки Android Skia от Samsung. Такая глубокая интеграция в ОС означает, что любое приложение Samsung, обрабатывающее изображения (включая обработчик MMS-сообщений), может инициировать декодирование .qmg без участия пользователя. В мае 2020 года Google Project Zero раскрыла CVE-2020-8899 - критическую уязвимость удаленного выполнения кода «в один клик», вызываемую отправкой вредоносного файла .qmg через MMS. Samsung выпустила исправление в обновлении безопасности Android за май 2020 года.
Формат зародился в ОС Samsung bada в 2010 году. Существует четыре подверсии: QMv1, QG1.0, QG1.1 и QG2.0 (присутствует в сборках Skia для Android 10). Все они имеют 12-байтовый заголовок, начинающийся с магических байтов 51 47 01 («QG», за которыми следует байт версии). Поддержка цветов включает 24-битный RGB и 32-битный RGBA. За пределами устройств Samsung ни один популярный просмотрщик изображений не поддерживает .qmg нативно; файлы иногда можно вручную конвертировать в .PNG или .JPG с помощью специализированных инструментов, но широкая поддержка сторонними разработчиками отсутствует.
Безопасность и защита
РИСК: MEDIUMCVE-2020-8899: критическая уязвимость RCE без клика (CVSS 9.8) в кодеке Samsung Qmage через MMS, раскрытая в мае 2020 года, исправлена в обновлении безопасности Samsung за май 2020 года. На обновленных устройствах риск устранен. Файлы QMG из ненадежных источников не следует размещать на необновленных или старых устройствах Samsung. Уязвимость позволяла выполнять код до того, как пользователь просматривал вредоносное MMS.
Детали формата
в двух словахПрограммы, открывающие файлы QMG
Технические подробности
глубокая спецификация| Магические байты | 51 47 01 (ASCII: «QG» + байт версии) со смещением 0 |
| Размер заголовка | 12 байт (магия + версия + ширина + высота + флаги) |
| Глубина цвета | 24-битный RGB и 32-битный RGBA (поддерживается альфа-канал) |
| Сжатие | Проприетарные режимы с потерями (похожие на JPEG) и без потерь (похожие на PNG) |
| Поддержка анимации | Да - несколько кадров для последовательностей запуска, выключения и зарядки |
| Подверсии формата | QMv1, QG1.0, QG1.1, QG2.0 |
| Порядок байтов | Little-endian (от младшего к старшему) |
| Типичный размер файла | 2 КБ - 500 КБ (статичное изображение); до ~2 МБ (анимация) |
| Типичные размеры | от 64×64 px до 1080×1920 px (ресурсы интерфейса тем) |
| Контейнер | Проприетарный контейнер Quramsoft; стандартная оболочка отсутствует |
| Платформа | Samsung Android (One UI / TouchWiz); устаревшая ОС Samsung bada |
| Примечание по безопасности | CVE-2020-8899 - удаленное выполнение кода (RCE) без клика через MMS, исправлено в обновлении безопасности Android за май 2020 г. |
| MIME-тип | image/qmg |
| Выпущен | 2010 (bada OS); integrated into all Samsung Android phones from ~late 2014 (Android 4.4.4) |
| Последняя версия | QG2.0 (codec present in Android 10 Skia builds); QMv1, QG1.0, QG1.1 also documented |
| Спецификация | googleprojectzero.blogspot.com |
Конвертации QMG
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах QMG.