
Образ мышления: Assembler
То, что не удается запрограммировать на Ассемблере, приходится паять
Образ мышления: Assembler - RSS-канал
Образ мышления: Assembler - Карта сайта

Как сделать окно размером больше монитора
17.09.2024 | Категория: Образ мышления: Assembler | Автор: ManHunter
Для изменения размера окна в WinAPI используется функции SetWindowPos или MoveWindow, два параметра которых как раз и отвечают за размер. Обе функции прекрасно работают с окнами, размер которых не превышает размер монитора. Но есть неприятная особенность. При попытке увеличить окно до размеров, значительно превышающих размер монитора, оно действительно увеличится, но при любом последующем действии с окном оно тут же будет принудительно уменьшаться до максимально допустимого размера. Затрудняюсь сказать, с чем это связано, но факт имеет место быть. Таким образом, если ваше приложение подразумевает работу с большим окном, но оно запущено на компьютере с маленьким монитором, то с отображением возникнут проблемы. Не буду рассуждать на тему самой необходимости подобных действий, перейду сразу к реализации решения этой проблемы. Оно основано на обработке сообщения WM_GETMINMAXINFO.Code (Assembler) : Убрать нумерацию
- cmp [msg],WM_GETMINMAXINFO
- je .minmax
- ...
- ...
- .minmax:
- ; В регистре EDI указатель на структуру координат окна
- mov edi,[lparam]
- ; Принудительно прописать размеры окна
- mov [edi+MINMAXINFO.ptMaxSize.x],7000
- mov [edi+MINMAXINFO.ptMaxTrackSize.x],7000
- mov [edi+MINMAXINFO.ptMinTrackSize.x],7000
- mov [edi+MINMAXINFO.ptMaxSize.y],7000
- mov [edi+MINMAXINFO.ptMaxTrackSize.y],7000
- mov [edi+MINMAXINFO.ptMinTrackSize.y],7000
- jmp .processed
Читать статью целиком »
Просмотров: 381 | Комментариев: 1

Парсинг метаданных MMF-файлов на Ассемблере
03.09.2024 | Категория: Образ мышления: Assembler | Автор: ManHunter

Парсинг метаданных MMF-файлов на Ассемблере
SMAF (Synthetic Music Mobile Application File), он же MMF - мультимедийный формат данных, разработанный компанией Yamaha. В эпоху кнопочных сотовых телефонов этот формат использовался для создания очень компактных по размеру мелодий, хоть и невысокого качества звучания. Формат MMF может содержать не только мелодии, но и голоса, целые песни, и даже команды управления подсветкой телефона, если таковые поддерживаются аппаратом. Сейчас этот формат потерял актуальность, даже официальный сайт проекта окончательно закрылся несколько лет назад и доступен только в архиве. Описаний внутреннего формата MMF-файлов тоже практически нет, всю информацию пришлось собирать по крупицам из разных источников, в том числе и на основе анализа файлов "из дикой природы".
Читать статью целиком »
Просмотров: 433 | Комментариев: 1

Кейлоггер на Ассемблере
30.08.2024 | Категория: Образ мышления: Assembler | Автор: ManHunter

Кейлоггер на Ассемблере
Кейлоггеры - класс программ, которые перехватывают нажатия клавиш и сохраняют их в сухое прохладное место для последующего анализа. В зависимости от задачи, кейлоггеры могут относиться как к вредоносным программам, так и распространяться на вполне законных основаниях. Хороший пример условно полезного кейлоггера - автопереключатель раскладки Punto Switcher. Сегодня будем писать на Ассемблере простенький кейлоггер. До настоящей боевой малвары этому примеру как до Китая ползком, это, скорее, пример низкоуровневой работы с клавиатурой. Но в принципе, если хорошенько доработать код напильником, то получится полноценный кейлоггер, работающий в юзермоде и перехватывающий нажатия клавиш во всех приложениях.
Читать статью целиком »
Просмотров: 825 | Комментариев: 7

Парсинг метаданных файлов MO3 на Ассемблере
17.07.2024 | Категория: Образ мышления: Assembler | Автор: ManHunter

Парсинг метаданных файлов MO3 на Ассемблере
Нашел тут в закромах еще один формат трекерной музыки - MO3 (MOdule with MP3) за авторством известного Ian Luck, написавшего музыкальную библиотеку BASS. Вроде бы логично было добавить его в общий список трекерной музыки. Но в процессе исследования выяснились некоторые подробности, которые, я считаю, достойны отдельной статьи. Дело в том, что все данные, в том числе и заголовок, в котором содержится название композиции, упакованы по алгоритму LZ (Lempel-Ziv). Соответственно, чтобы их получить, требуется сперва этот заголовок распаковать. Вот этим и займемся.
Читать статью целиком »
Просмотров: 238 | Комментариев: 1

Эффект пламени на Ассемблере
29.06.2024 | Категория: Образ мышления: Assembler | Автор: ManHunter

Эффект пламени на Ассемблере
Классический эффект горящего пламени используется в различных интро и демонстрашках еще со времен MS-DOS, а может быть и раньше. Алгоритм достаточно простой, но при этом выглядит очень красиво. Суть его заключается в следующем. Сперва создается палитра, в ней должны быть только оттенки белого, желтого, красного и черный цвет. Далее создается массив, который соответствует размеру изображения и содержит значения цветов его пикселов. По нижней строчке записываются в случайном порядке пикселы или пропуски, после этого по таймеру запускается основной цикл обработки.
Читать статью целиком »
Просмотров: 838 | Комментариев: 7
