Blog. Just Blog

Быстрый поиск

Введите фрагмент названия статьи для поиска

Исследование защиты программы Icecream Image Resizer

22.09.2022 | Категория: Темная сторона Силы | Автор: ManHunter

Скриншот программы Icecream Image Resizer

Программа Icecream Image Resizer, как можно понять из названия, предназначена для изменения размеров изображений мороженого. Без регистрации за один раз программа может обработать только три файла, что для истинных любителей мороженого очень мало. Так что давайте излечим ее от жадности.

Читать статью целиком »
Просмотров: 135 | Комментариев: 4

Tiny Image Converter 1.1

15.08.2022 | Категория: Мои программы | Автор: ManHunter

Скриншот программы Tiny Image Converter

Программа Tiny Image Converter предназначена для быстрого конвертирования графических файлов в формат JPEG, PNG, BMP или GIF. Меняется только формат, никаких функций обработки, изменения размера, эффектов и т.п. не предусмотрено. Базовые форматы изображений поддерживаются конвертером без дополнительных настроек, для остальных нужно установить соответствующие кодеки: WebP, RAW (FastPictureViewer Codec Pack), RAW (Microsoft Camera Codec Pack) или тут. Есть возможность запуска из командной строки для автоматической конвертации. Tiny Image Converter.dll - плагин для программы Shutter Count Viewer. Все написано для личных нужд, но если пригодится кому-нибудь еще, то я буду только рад.

Читать статью целиком »
Просмотров: 3416 | Комментариев: 26

Вывод изображения на Ассемблере с помощью WIC

13.08.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter
На сайте уже есть две статьи про загрузку и вывод изображения с помощью GDI+ и OLE, сегодня расскажу про еще очередной способ загрузки изображений, на этот раз с помощью WIC (Windows Imaging Component). Эта технология позволяет не привязываться к конкретным форматам изображений, а делегировать большую часть рутинной работы системе. Если установлен соответствующий графический кодек и система в принципе может открыть изображение во встроенном Просмотрщике фотографий, значит его можно будет прочитать и при помощи Windows Imaging Component. Например, популярный формат WebP в чистой Windows 7 не открывается, но если поставить кодеки, то все сразу заработает.

Переходим к программированию. Поскольку это COM-технология, то нам понадобится описание множества GUID, констант и интерфейсов. Надо ли говорить, что FASM про них ничего не знает? А множество действительно внушительное.
  1. ; GUID {CACAF262-9370-4615-A13B-9F5539DA4C0A}
  2. CLSID_WICImagingFactory dd 0CACAF262h
  3.                         dw 09370h
  4.                         dw 04615h
  5.                         db 0A1h, 03Bh, 09Fh, 055h, 039h, 0DAh, 04Ch, 00Ah
  6.  
  7. ; GUID {EC5EC8A9-C395-4314-9C77-54D7A935FF70}
  8. IID_IWICImagingFactory dd 0EC5EC8A9h
  9.                        dw 0C395h
  10.                        dw 04314h
  11.                        db 09Ch, 077h, 054h, 0D7h, 0A9h, 035h, 0FFh, 070h
  12.  
  13. ; IID_IWICImagingFactory Interface
  14. struct IWICImagingFactory
  15.     ; IUnknown
  16.     QueryInterface                           dd ?   ; 000h
  17.     AddRef                                   dd ?   ; 004h
  18.     Release                                  dd ?   ; 008h
  19.     ; IWICImagingFactory
  20.     CreateDecoderFromFilename                dd ?   ; 00Ch
  21.     CreateDecoderFromStream                  dd ?   ; 010h
  22.     CreateDecoderFromFileHandle              dd ?   ; 014h
  23.     CreateComponentInfo                      dd ?   ; 018h
  24.     CreateDecoder                            dd ?   ; 01Ch
  25.     CreateEncoder                            dd ?   ; 020h
  26.     CreatePalette                            dd ?   ; 024h
  27.     CreateFormatConverter                    dd ?   ; 028h
  28.     CreateBitmapScaler                       dd ?   ; 02Ch
  29.     CreateBitmapClipper                      dd ?   ; 030h
  30.     CreateBitmapFlipRotator                  dd ?   ; 034h
  31.     CreateStream                             dd ?   ; 038h
  32.     CreateColorContext                       dd ?   ; 03Ch
  33.     CreateColorTransformer                   dd ?   ; 040h
  34.     CreateBitmap                             dd ?   ; 044h
  35.     CreateBitmapFromSource                   dd ?   ; 048h
  36.     CreateBitmapFromSourceRect               dd ?   ; 04Ch
  37.     CreateBitmapFromMemory                   dd ?   ; 050h
  38.     CreateBitmapFromHBITMAP                  dd ?   ; 054h
  39.     CreateBitmapFromHICON                    dd ?   ; 058h
  40.     CreateComponentEnumerator                dd ?   ; 05Ch
  41.     CreateFastMetadataEncoderFromDecoder     dd ?   ; 060h
  42.     CreateFastMetadataEncoderFromFrameDecode dd ?   ; 064h
  43.     CreateQueryWriter                        dd ?   ; 068h
  44.     CreateQueryWriterFromReader              dd ?   ; 06Ch
  45. ends
  46.  
  47. ; IID_IWICBitmapDecoder Interface
  48. struct IWICBitmapDecoder
  49.     ; IUnknown
  50.     QueryInterface         dd ?   ; 000h
  51.     AddRef                 dd ?   ; 004h
  52.     Release                dd ?   ; 008h
  53.     ; IWICBitmapDecoder
  54.     QueryCapability        dd ?   ; 00Ch
  55.     Initialize             dd ?   ; 010h
  56.     GetContainerFormat     dd ?   ; 014h
  57.     GetDecoderInfo         dd ?   ; 018h
  58.     CopyPalette            dd ?   ; 01Ch
  59.     GetMetadataQueryReader dd ?   ; 020h
  60.     GetPreview             dd ?   ; 024h
  61.     GetColorContexts       dd ?   ; 028h
  62.     GetThumbnail           dd ?   ; 02Ch
  63.     GetFrameCount          dd ?   ; 030h
  64.     GetFrame               dd ?   ; 034h
  65. ends
  66.  
  67. ; IWICBitmapFrameDecode Interface
  68. struct IWICBitmapFrameDecode
  69.     ; IUnknown
  70.     QueryInterface         dd ?   ; 000h
  71.     AddRef                 dd ?   ; 004h
  72.     Release                dd ?   ; 008h
  73.     ; IWICBitmapFrameDecode
  74.     GetSize                dd ?   ; 00Ch
  75.     GetPixelFormat         dd ?   ; 010h
  76.     GetResolution          dd ?   ; 014h
  77.     CopyPalette            dd ?   ; 018h
  78.     CopyPixels             dd ?   ; 01Ch
  79.     GetMetadataQueryReader dd ?   ; 020h
  80.     GetColorContexts       dd ?   ; 024h
  81.     GetThumbnail           dd ?   ; 028h
  82. ends
  83.  
  84. ; IID_IWICFormatConverter Interface
  85. struct IWICFormatConverter
  86.     ; IUnknown
  87.     QueryInterface dd ?   ; 000h
  88.     AddRef         dd ?   ; 004h
  89.     Release        dd ?   ; 008h
  90.     ; IWICFormatConverter
  91.     GetSize        dd ?   ; 00Ch
  92.     GetPixelFormat dd ?   ; 010h
  93.     GetResolution  dd ?   ; 014h
  94.     CopyPalette    dd ?   ; 018h
  95.     CopyPixels     dd ?   ; 01Ch
  96.     Initialize     dd ?   ; 020h
  97.     CanConvert     dd ?   ; 024h
  98. ends
  99.  
  100. ; IID_IWICBitmap Interface
  101. struct IWICBitmap
  102.     ; IUnknown
  103.     QueryInterface dd ?   ; 000h
  104.     AddRef         dd ?   ; 004h
  105.     Release        dd ?   ; 008h
  106.     ; IWICBitmap
  107.     GetSize        dd ?   ; 00Ch
  108.     GetPixelFormat dd ?   ; 010h
  109.     GetResolution  dd ?   ; 014h
  110.     CopyPalette    dd ?   ; 018h
  111.     CopyPixels     dd ?   ; 01Ch
  112.     Lock           dd ?   ; 020h
  113.     SetPalette     dd ?   ; 024h
  114.     SetResolution  dd ?   ; 028h
  115. ends
  116.  
  117. ; IID_IWICBitmapLock Interface
  118. struct IWICBitmapLock
  119.     ; IUnknown
  120.     QueryInterface dd ?   ; 000h
  121.     AddRef         dd ?   ; 004h
  122.     Release        dd ?   ; 008h
  123.     ; IWICBitmapLock
  124.     GetSize        dd ?   ; 00Ch
  125.     GetStride      dd ?   ; 010h
  126.     GetDataPointer dd ?   ; 014h
  127.     GetPixelFormat dd ?   ; 018h
  128. ends
  129.  
  130. ; GUID {6FDDC324-4E03-4BFE-B185-3D77768DC910}
  131. GUID_WICPixelFormat32bppPBGRA dd 06FDDC324h
  132.                               dw 04E03h
  133.                               dw 04BFEh
  134.                               db 0B1h, 085h, 03Dh, 077h, 076h, 08Dh, 0C9h, 010h
  135.  
  136. CLSCTX_INPROC_SERVER = 0x01
  137.  
  138. WICBitmapDitherTypeNone        = 0x00000000
  139. WICBitmapPaletteTypeCustom     = 0x00000000
  140. WICBitmapCacheOnDemand         = 0x00000001
  141. WICBitmapLockWrite             = 0x00000002
  142. WICDecodeMetadataCacheOnDemand = 0x00000000
Процесс загрузки изображения начинается с создания фабрики объектов типа IWICImagingFactory, с помощью которой мы в дальнейшем будем создавать декодеры, модификаторы и все прочие инструменты для работы. Тут ничего сложного, обычная работа с COM.

Читать статью целиком »
Просмотров: 248 | Комментариев: 1

Исследование защиты программы PhotoFiltre Studio

24.07.2022 | Категория: Темная сторона Силы | Автор: ManHunter

Скриншот программы PhotoFiltre Studio

PhotoFiltre Studio - программа для ретуши и редактирования изображений. На борту много разных инструментов для работы с графикой, этакий фотошопчик на минималочках. Зато цена к минимальным значениям точно не относится. Не то, чтобы прямо ощущался дефицит программ для редактирования фотографий, но для тренировки сгодится.

Читать статью целиком »
Просмотров: 415 | Комментариев: 2

Как добавить просмотр миниатюр SVG в Проводник

19.07.2022 | Категория: Software | Автор: ManHunter

Как добавить просмотр миниатюр SVG в Проводник

Сейчас у меня появилась необходимость работать с достаточно большим объемом картинок в формате SVG, в связи с чем возник целый ряд проблем. Вопрос с просмотром SVG-файлов я для себя уже решил, другие задачи тоже разрулил, но осталось еще одно - отображение превьюшек файлов в Проводнике. Для обычных картинок там создаются соответствующие миниатюры, а для SVG по умолчанию только иконка связанной с ними программы. И, как ни странно, даже в современных системах такой возможности "из коробки" не предусмотрено. Неудобно.

Читать статью целиком »
Просмотров: 479 | Комментариев: 8

prev 01 02 03 04 05 06 07 08 09 ... 21
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2022
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.13 сек. / MySQL: 3 (0.0505 сек.) / Память: 5 Mb
Наверх