Blog. Just Blog

Образ мышления: 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 ее помощью можно точно настроить, какие данные должны попасть в создаваемый дамп. Вызывается она примерно так (вариант для текущего процесса):
  1.         ; Создать файл для записи дампа
  2.         invoke  CreateFile,fname,GENERIC_WRITE,\
  3.                 FILE_SHARE_WRITE,0,CREATE_NEW,\
  4.                 FILE_ATTRIBUTE_ARCHIVE,0
  5.         mov     [desc],eax
  6.  
  7.         ; Получить ID текущего процесса
  8.         invoke  GetCurrentProcessId
  9.         mov     ebx,eax
  10.  
  11.         invoke  GetCurrentProcess
  12.  
  13.         MiniDumpNormal = 0x00000000
  14.  
  15.         ; Сделать дамп
  16.         invoke  MiniDumpWriteDump,eax,ebx,[desc],MiniDumpNormal,0,0,0
  17.  
  18.         ; Закрыть файл
  19.         invoke  CloseHandle,[desc]
Некоторое время назад исследователи безопасности обнаружили, что над этой функцией имеется обертка - недокументированная функция MiniDumpW из динамической библиотеки comsvcs.dll. Вся прелесть заключается в том, что ее элементарно использовать даже из командной строки с использованием только штатных утилит. Что-то типа

rundll32.exe C:\windows\System32\comsvcs.dll, MiniDump <PID> dump.dmp full
До некоторых пор таким способом можно было сохранить дамп процесса lsass.exe и затем при помощи какого-нибудь инструмента типа Mimikatz вытащить из него пароли учетных записей пользователей компьютера.

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

Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2025
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.07 сек. / MySQL: 2 (0.0002 сек.) / Память: 4.5 Mb
Наверх