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

Исследование защиты программы Franzis NEAT projects 2
11.01.2021 | Категория: Темная сторона Силы | Автор: ManHunter

Скриншот программы Franzis NEAT projects 2
Вообще я стараюсь придерживаться правила, что после выкладывания разбора очередной защиты, больше не трогать ни одной программы этого разработчика. Но тут уж очень классная программа, да и защита немного поменялась, так что пусть это будет шпаргалка для самого себя. Franzis NEAT projects позволяет в автоматическом режиме убирать с фотографий все движущиеся предметы. Например, в поездке вы делаете несколько снимков какой-нибудь достопримечательности с разными интервалами времени, затем отправляете всю пачку фотографий в программу, она анализирует все возможные статичные области и составляет из них чистое изображение. Словно по волшебству из кадра пропадает вся человечина. Причем даже не обязательно пользоваться штативом, программа сама выровняет все кадры.
Читать статью целиком »
Просмотров: 1915 | Комментариев: 9

Исследование защиты программы SVG To PNG Converter
03.11.2020 | Категория: Темная сторона Силы | Автор: ManHunter

Скриншот программы SVG To PNG Converter
SVG To PNG Converter - весьма толковая программа для пакетного конвертирования файлов из векторного формата SVG в более привычный формат PNG. Сейчас на сайте разработчика 1533 программы, в числе которых различные конвертеры, надстройки над офисными пакетами и всякое подобное. Если циферками не зашло, продублирую буковками: у разработчика в списке релизов числятся более полутора тысяч программ. Часть из них используют бесплатные утилиты других авторов, другая часть, как мне кажется, какие-то бесплатные компоненты. Пора воплощать в жизнь марксистский термин "экспроприация экспроприаторов".
Читать статью целиком »
Просмотров: 1866 | Комментариев: 10

Вывод изображения на Ассемблере с помощью OLE
21.09.2019 | Категория: Образ мышления: Assembler | Автор: ManHunter
Ранее я уже разбирал загрузку и вывод изображения с помощью GDI+, но это далеко не единственный способ загрузки изображения из файла. В дополнение к этой теме предлагаю рассмотреть еще один способ, как можно загрузить изображение из файла средствами OLE. Сперва пропишем GUID объекта IID_IPicture и создадим структуру для методов интерфейса IPicture. В MSDN методы перечислены в алфавитном порядке, а не так, как они фактически идут в интерфейсе, имейте это в виду.Code (Assembler) : Убрать нумерацию
- ; GUID {7BF80980-BF32-101A-8BBB-00AA00300CAB}
- IID_IPicture dd 7BF80980h
- dw 0BF32h
- dw 0101Ah
- db 08Bh, 0BBh, 0h, 0AAh, 0h, 030h, 00Ch, 0ABh
- ; IPicture Interface
- struct IPicture
- ; IUnknown
- QueryInterface dd ?
- AddRef dd ?
- Release dd ?
- ; IPicture
- get_Handle dd ?
- get_hPal dd ?
- get_Type dd ?
- get_Width dd ?
- get_Height dd ?
- Render dd ?
- set_hPal dd ?
- get_CurDC dd ?
- SelectPicture dd ?
- get_KeepOriginalFormat dd ?
- set_KeepOriginalFormat dd ?
- PictureChanged dd ?
- SaveAsFile dd ?
- get_Attributes dd ?
- SetHdc dd ?
- ends
Code (Assembler) : Убрать нумерацию
- ; Прочитать файл в память
- invoke _lopen,fname,OF_READ
- cmp eax,-1
- je loc_free_1
- mov ebx,eax
- ; Получить размер файла
- invoke GetFileSize,ebx,NULL
- mov [file_size],eax
- ; Выделить память под файл
- invoke GetProcessHeap
- mov [hProcHeap],eax
- invoke HeapAlloc,[hProcHeap],0,[file_size]
- mov [hLock],eax
- ; Загрузить картинку в память
- invoke _lread,ebx,[hLock],[file_size]
- invoke _lclose,ebx
Читать статью целиком »
Просмотров: 3346 | Комментариев: 0

Градиентный фон на PHP
31.07.2019 | Категория: Web-мастеру и не только | Автор: ManHunter

Градиентный фон на PHP
Продолжаем работать с графикой на PHP. Сегодня будем рисовать градиентную заливку фона, когда один цвет плавно перетекает в другой.
Читать статью целиком »
Просмотров: 2214 | Комментариев: 1

Получение реального формата изображения
08.04.2019 | Категория: Web-мастеру и не только | Автор: ManHunter
Одно из основных правил при разработке web-приложений - не доверять никаким данным, полученным от пользователя. Они могут быть перепутаны случайно, но могут быть специально модифицированы в злонамеренных целях. Это касается в том числе и загружаемых изображений. Чтобы применять к ним функции типа ImageCreateFromXXX, просто ориентироваться на расширение файла недостаточно, оно запросто может не соответствовать содержимому. Для определения реального типа изображения я всегда проверяю внутренний формат файла, его служебные заголовки, и только на основании этого принимаю решение, как обрабатывать этот файл. Для этого у меня написана вот такая функция:Code (PHP) : Убрать нумерацию
- //-------------------------------------------------------------------
- // Функция получения реального формата изображения
- // (C) ManHunter / PCL
- // https://www.manhunter.ru
- //-------------------------------------------------------------------
- function get_real_image_type($file_path) {
- // По умолчанию файл имеет неизвестный формат
- $type=false;
- // Анализ по внутренней структуре файла
- if ($f=fopen($file_path,'r')) {
- $data=fread($f,20);
- fclose($f);
- // Заголовок файла GIF
- if (substr($data,0,3)=='GIF'
- && (substr($data,12,1)=="\x00"
- || substr($data,12,1)=="\x01")) {
- // Проверка на классические сплойты
- if (strpos(substr($data,6,4),'/*')!==false
- || strpos(substr($data,6,4),'//')!==false) {
- $type=false;
- }
- else {
- // Проверка на более хитрые сплойты
- $tmp=preg_replace('/[^\("\']/','',substr($data,6,4));
- if ($tmp=='("' || $tmp=='(\'') {
- $type=false;
- }
- else {
- $type='gif';
- }
- }
- }
- // Заголовок файла PNG
- elseif (substr($data,0,8)==chr(137).'PNG'.chr(13).chr(10).chr(26).chr(10)) {
- $type='png';
- }
- // Заголовок файла JPEG
- elseif (substr($data,0,3)==chr(255).chr(216).chr(255)) {
- $type='jpg';
- }
- // Заголовок файла BMP
- elseif (substr($data,0,2)=='BM') {
- $type='bmp';
- }
- // Заголовок файла WebP
- elseif (substr($data,0,4)=='RIFF' && substr($data,8,4)=='WEBP') {
- $type='webp';
- }
- }
- return $type;
- }
Кроме определения типа изображения функция также проверяет GIF-файлы на наличие в них вредоносного кода. Из всех эксплойтов, которые я встречал внедренными в гифки, не прошел ни один. Если вдруг найдете образец зловреда, который не обнаруживается этой функцией, то пришлите его мне, пожалуйста, я с удовольствием доработаю проверку.
Просмотров: 1457 | Комментариев: 6
