Blog. Just Blog

Быстрый поиск

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

Парсинг метаданных 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. Штука интересная, с нее и начнем. Но сперва пачка структур и констант, которые нам понадобятся для работы.
  1. struct SymbolicLinkReparseBuffer
  2.     SubstituteNameOffset dw ?
  3.     SubstituteNameLength dw ?
  4.     PrintNameOffset      dw ?
  5.     PrintNameLength      dw ?
  6.     Flags                dd ?
  7.     PathBuffer           rw MAX_PATH*2
  8. ends
  9.  
  10. struct MountPointReparseBuffer
  11.     SubstituteNameOffset dw ?
  12.     SubstituteNameLength dw ?
  13.     PrintNameOffset      dw ?
  14.     PrintNameLength      dw ?
  15.     PathBuffer           rw MAX_PATH*2
  16. ends
  17.  
  18. struct GenericReparseBuffer
  19.     DataBuffer           db ?
  20. ends
  21.  
  22. struct REPARSE_DATA_BUFFER
  23.     ReparseTag dd ?
  24.     ReparseDataLength dw ?
  25.     Reserved dw ?
  26.     union
  27.         SymbolicLink SymbolicLinkReparseBuffer
  28.         MountPoint   MountPointReparseBuffer
  29.         Generic      GenericReparseBuffer
  30.     ends
  31. ends
  32.  
  33. FSCTL_GET_REPARSE_POINT      = 0x000900A8
  34. FILE_FLAG_BACKUP_SEMANTICS   = 0x02000000
  35. FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000
  36. IO_REPARSE_TAG_MOUNT_POINT   = 0xA0000003
  37. IO_REPARSE_TAG_SYMLINK       = 0xA000000C
Первым делом для вашего процесса надо активировать привилегию SeBackupPrivilege. Это мы уже делали, тут ничего нового нет. В оригинале эта привилегия нужна для выполнения резервного копирования файлов, а по факту она предоставляет доступ на чтение для любого файла, независимо от списка контроля доступа. Именно это нам требуется для получения информации из символической ссылки.

Читать статью целиком »
Просмотров: 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

01 ... 11 12 13 14 15 16 17 ... 73
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2024
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.21 сек. / MySQL: 3 (0.0224 сек.) / Память: 4.5 Mb
Наверх