Быстрый поиск
Введите фрагмент названия статьи для поиска
Парсинг метаданных FLAC-файлов на Ассемблере
07.11.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter
Парсинг метаданных FLAC-файлов на Ассемблере
Продолжу тему парсинга метаданных из медиафайлов разных форматов. Сегодня разберем аудиофайлы FLAC. Это очень популярный кодек, предназначенный для сжатия аудиоданных без потерь, используется с 2001 года и поддерживается большинством плееров. Формат хорошо документирован, к тому же имеет очень простую внутреннюю структуру.
Читать статью целиком »
Просмотров: 526 | Комментариев: 0
Парсинг метаданных OGG-файлов на Ассемблере
01.11.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter
Парсинг метаданных OGG-файлов на Ассемблере
OGG - открытый формат кодирования аудио, направленный в первую очередь для хранения высококачественной музыки с высоким битрейтом. Как ни странно, на данный момент не существует официального единого стандарта записи метаданных в контейнер OGG. Так что пришлось совмещать теоретические сведения из имеющейся документации с практическими данными из дикой природы.
Читать статью целиком »
Просмотров: 641 | Комментариев: 0
Как получить путь из символической ссылки
24.10.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter
Начиная с Windows Vista, в системе появились так называемые символические ссылки, специальные файлы, в которых вместо каких-либо данных содержится путь к другому файлу или каталогу, открываемому при обращении к этой ссылке. Это позволяет, например, иметь для одного и того же файла сразу несколько разных имен.Чтобы получить целевой путь, на который указывает символическая ссылка, есть несколько методов. Обычно в этих ваших интернетах рекомендуют сложный путь через использование функции DeviceIoControl. Штука интересная, с нее и начнем. Но сперва пачка структур и констант, которые нам понадобятся для работы.
Code (Assembler) : Убрать нумерацию
- struct SymbolicLinkReparseBuffer
- SubstituteNameOffset dw ?
- SubstituteNameLength dw ?
- PrintNameOffset dw ?
- PrintNameLength dw ?
- Flags dd ?
- PathBuffer rw MAX_PATH*2
- ends
- struct MountPointReparseBuffer
- SubstituteNameOffset dw ?
- SubstituteNameLength dw ?
- PrintNameOffset dw ?
- PrintNameLength dw ?
- PathBuffer rw MAX_PATH*2
- ends
- struct GenericReparseBuffer
- DataBuffer db ?
- ends
- struct REPARSE_DATA_BUFFER
- ReparseTag dd ?
- ReparseDataLength dw ?
- Reserved dw ?
- union
- SymbolicLink SymbolicLinkReparseBuffer
- MountPoint MountPointReparseBuffer
- Generic GenericReparseBuffer
- ends
- ends
- FSCTL_GET_REPARSE_POINT = 0x000900A8
- FILE_FLAG_BACKUP_SEMANTICS = 0x02000000
- FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000
- IO_REPARSE_TAG_MOUNT_POINT = 0xA0000003
- IO_REPARSE_TAG_SYMLINK = 0xA000000C
Читать статью целиком »
Просмотров: 541 | Комментариев: 2
Сортировка Шелла на Ассемблере
06.10.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter
Сортировка Шелла на Ассемблере
Сегодня разберем еще один алгоритм сортировки - сортировку Шелла. Он назван в честь ученого Дональда Шелла, который в 1959 году опубликовал этот алгоритм. Сортировка Шелла представляет собой нечто среднее между классической пузырьковой сортировкой и сортировкой вставками, легко реализуется на разных языках программирования, при этом показывает хорошую скорость работы и не требует выделения дополнительной памяти.
Читать статью целиком »
Просмотров: 772 | Комментариев: 5
Загрузка шрифтов WOFF на Ассемблере
18.09.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter
Загрузка шрифтов WOFF на Ассемблере
WOFF или Web Open Font Format - формат шрифтов, чаще всего используемый для Web. Он основан на стандартных форматах шрифтов OpenType или TrueType, но данные в WOFF хранятся в сжатом виде, за счет чего повышается скорость загрузки. Штатными средствами система Windows с такими шрифтами работать не умеет, поэтому мне стало интересно разобраться с этим форматом.
Читать статью целиком »
Просмотров: 644 | Комментариев: 2