Blog. Just Blog

Образ мышления: Assembler

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

Получение информации о шрифте с помощью функции GetFontResourceInfo

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

Получение информации о шрифте с помощью функции GetFontResourceInfo

В статье о загрузке шрифтов из памяти я упомянул об использовании недокументированной функции GetFontResourceInfo, но не привел никаких примеров ее вызова. А функция интересная, так что самое время исправить этот пробел в знаниях.

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

Парсинг метаданных DSF-файлов на Ассемблере

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

Парсинг метаданных DSF-файлов на Ассемблере

Во время очередного пиратского набега на торренты мне попался музыкальный альбом в формате DSF. Это контейнер для аудиопотока в супер-мега качестве, разработанный компаниями Sony и Philips. В результате и файлы получаются по 400-500 мегабайт на одну песню. Может быть для аудиофилов такое качество как-то можно обосновать, но для меня этот формат представляет исключительно спортивный интерес. А точнее, как из таких файлов извлечь метаданные.

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

Как защитить DLL от выгрузки через FreeLibrary

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

Как защитить DLL от выгрузки через FreeLibrary

Небольшой трюк, позволяющий защитить вашу DLL от выгрузки из процесса при помощи функции FreeLibrary. Например, если процесс обнаружил инжект посторонней библиотеки в свое адресное пространство и пытается от нее избавиться.

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

Как получить список поддерживаемых кодировок

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

Как получить список поддерживаемых кодировок

Сегодняшний небольшой пример кода - получение списка всех поддерживаемых кодировок в системе. Примерно такой список можно увидеть в меню сохранения в текстовых редакторах или в браузерах, когда надо выбрать кодировку страницы. Если ваше приложение умеет работать с разными кодировками, то значит должно уметь и получать их список.

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

Устраняем косяки функций PathRemoveExtension и PathRenameExtension

24.10.2023 | Категория: Образ мышления: Assembler | Автор: ManHunter
В комментариях к статьям иногда проскакивают мысли, мол, зачем изобретать велосипед, если уже существуют готовые WinAPI. Ну так вот, в библиотеке shlwapi помимо кучи других полезных функций есть две функции для работы с расширениями файлов. PathRemoveExtension служит для удаления расширения из строки с путем файла, а PathRenameExtension для замены имеющегося расширения на другое. Это очень удобно в случае, когда, например, надо сгенерировать имя файла данных или файла с настройками по имени исполняемого файла. Но, к сожалению, у них есть фатальные косяки в реализации. Это проще показать на примерах. Вот удаление расширения:

c:\test\file1.txt -> PathRemoveExtension -> c:\test\file1
c:\test\file2 -> PathRemoveExtension -> c:\test\file2
c:\test\.htaccess -> PathRemoveExtension -> c:\test\
c:\test\.htaccess.bak -> PathRemoveExtension -> c:\test\.htaccess

И аналогично для замены расширения, например, на ".ini":

c:\test\file1.txt -> PathRenameExtension -> c:\test\file1.ini
c:\test\file2 -> PathRenameExtension -> c:\test\file2.ini
c:\test\.htaccess -> PathRenameExtension -> c:\test\.ini
c:\test\ -> PathRenameExtension -> c:\test\.ini
c:\test\.htaccess.bak -> PathRenameExtension -> c:\test\.htaccess.ini

Как видите, если имя файла начинается с точки и при этом файл не имеет расширения, то обе функции работают неправильно. Кроме этого, функция замены расширения дает неправильный с точки зрения логики результат, если имя файла в строке вообще отсутствует.

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

prev 01 ... 07 08 09 10 11 12 13 ... 75 next
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2026
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.1 сек. / MySQL: 2 (0.0032 сек.) / Память: 4.5 Mb
Наверх