Образ мышления: Assembler
То, что не удается запрограммировать на Ассемблере, приходится паять
Образ мышления: Assembler - RSS-канал
Образ мышления: Assembler - Карта сайта
Мультимедийный плеер на Ассемблере
14.04.2024 | Категория: Образ мышления: Assembler | Автор: ManHunter
Мультимедийный плеер на Ассемблере
Сегодня будем программировать нечто действительно интересное, а именно универсальный мультимедийный плеер. Универсальность реализуется мощью функционала DirectShow, а также установленными в системе аудио- и видеокодеками. И пусть это не полноценное приложение, большинство основных функций плеера в нем будут реализованы.
Читать статью целиком »
Просмотров: 698 | Комментариев: 8
Как узнать окно-владельца буфера обмена
08.04.2024 | Категория: Образ мышления: Assembler | Автор: ManHunter
Как узнать окно-владельца буфера обмена
Если какое-то приложение открыло буфер обмена при помощи функции OpenClipboard, то до момента вызова функции CloseClipboard буфер обмена будет недоступен для других приложений. Обычно такого не происходит, работа с буфером сводится к последовательному открытию, получению или записи данных и закрытию, но от случайных сбоев никто не застрахован. Если ваше приложение также активно работает с буфером обмена, то будет полезным уметь обрабатывать такие ситуации и уведомлять пользователя, что в какой-то сторонней программе что-то пошло не так.
Читать статью целиком »
Просмотров: 370 | Комментариев: 0
Конвертирование изображений с помощью библиотеки FreeImage
18.03.2024 | Категория: Образ мышления: Assembler | Автор: ManHunter
Конвертирование изображений с помощью библиотеки FreeImage
FreeImage - бесплатная библиотека с открытым исходным кодом, предназначенная для работы с изображениями. С ее помощью можно менять размеры изображений, накладывать на них различные эффекты, поворачивать, обрезать, а главное, библиотека FreeImage умеет загружать изображения разных форматов и затем конвертировать их в другие. При этом не требуется установка каких-нибудь кодеков. За удобство пользования приходится платить тем, что размер вашего приложения увеличивается как минимум на 2 мегабайта, и то если упаковать dll. Для Ассемблера это много, для современных приложений, наверное, нормально.
Читать статью целиком »
Просмотров: 652 | Комментариев: 9
Выполнение скриптов JScript и VBScript из памяти
29.02.2024 | Категория: Образ мышления: Assembler | Автор: ManHunter
Выполнение скриптов JScript и VBScript из памяти
Windows Script Host - стандартный компонент операционной системы Windows - сервер выполнения скриптов на языках VBScript и JScript, а также на других, если их обработчики установлены в системе. Сценарии на WSH способны взаимодействовать с программами, имеющими объектный скриптовый интерфейс путем доступа к их объектам и свойствам. За счет этого сценарии могут выполнять операции с файлами и каталогами, системным реестром, базами данных, производить сложные расчеты, манипуляции со строками и т.п. Было бы большим упущением не задействовать подобную мощь в своих программах.
Читать статью целиком »
Просмотров: 699 | Комментариев: 4
Запись мини-дампа процесса на Ассемблере
07.02.2024 | Категория: Образ мышления: Assembler | Автор: ManHunter
Дампы или мини-дампы создаются обычно в случае аварийного падения процесса или системы. С помощью специальных программ по дампам можно восстановить примерное окружение, на котором произошел сбой, проанализировать его и установить процесс или код, который привел к критическому сбою.Для создания дампов памяти есть официально документированная функция MiniDumpWriteDump из динамической библиотеки dbghelp.dll. C ее помощью можно точно настроить, какие данные должны попасть в создаваемый дамп. Вызывается она примерно так (вариант для текущего процесса):
Code (Assembler) : Убрать нумерацию
- ; Создать файл для записи дампа
- invoke CreateFile,fname,GENERIC_WRITE,\
- FILE_SHARE_WRITE,0,CREATE_NEW,\
- FILE_ATTRIBUTE_ARCHIVE,0
- mov [desc],eax
- ; Получить ID текущего процесса
- invoke GetCurrentProcessId
- mov ebx,eax
- invoke GetCurrentProcess
- MiniDumpNormal = 0x00000000
- ; Сделать дамп
- invoke MiniDumpWriteDump,eax,ebx,[desc],MiniDumpNormal,0,0,0
- ; Закрыть файл
- invoke CloseHandle,[desc]
rundll32.exe C:\windows\System32\comsvcs.dll, MiniDump <PID> dump.dmp full
До некоторых пор таким способом можно было сохранить дамп процесса lsass.exe и затем при помощи какого-нибудь инструмента типа Mimikatz вытащить из него пароли учетных записей пользователей компьютера.
Читать статью целиком »
Просмотров: 391 | Комментариев: 0