Blog. Just Blog

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

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

Распаковка ZIP-архивов на Ассемблере

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

Распаковка ZIP-архивов на Ассемблере

Если система выполняет какие-то действия "из коробки", то с очень большой вероятностью ваше приложение также сможет их использовать, надо только узнать как. Начиная с Windows XP, Проводник может работать с архивами в формате ZIP, как будто это обычные каталоги. Файлы и подкаталоги из них извлекаются обычным копированием. Давайте научимся делать то же самое.

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

Многострочные и юникодные данные в INI-файлах

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

Многострочные и юникодные данные в INI-файлах

При всех неоспоримых плюсах ini-файлов у них есть ряд недостатков, которые так любят приводить в пример их противники. Например, ini-файлы не поддерживают значения ключей в юникоде, а также не позволяют сохранять многострочные текстовые данные. Основные функции и способы работы с ini-файлами мы уже разобрали, осталось устранить выявленные недостатки и на этом можно будет закрыть тему.

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

Получение списка модулей процесса

13.06.2023 | Категория: Образ мышления: Assembler | Автор: ManHunter
Для работы с процессами в Windows есть множество различных способов, например, ранее мы уже разбирали получение списка загруженных DLL с помощью PEB_LDR_DATA. Сегодня получим список DLL процесса при помощи недокументированных отладочных функций. Пугаться не надо, с ними мы уже работали при получении динамической памяти процесса.

Начинаем с описания недостающих данных. Структура DEBUG_BUFFER есть по ссылке выше, а остальное вот.
  1. struct DEBUG_MODULE_INFORMATION
  2.         Reserved         rd 2
  3.         Base             dd ?
  4.         Size             dd ?
  5.         Flags            dd ?
  6.         Index            dw ?
  7.         Unknown          dw ?
  8.         LoadCount        dw ?
  9.         ModuleNameOffset dw ?
  10.         ImageName        rb 100h
  11. ends
  12.  
  13. PDI_MODULES = 0x01
Быстренько повторим теорию. Для приема отладочной информации процесса первым делом надо подготовить буфер в памяти, это делается с помощью недокументированной функции RtlCreateQueryDebugBuffer. Дальше заполняем его данными с помощью недокументированной функции RtlQueryProcessDebugInformation, как это делали ранее при работе с кучей. Стоит упомянуть, что огромный плюс этой функции в том, что ей для работы требуется только идентификатор процесса, сам процесс открывать не надо. Для работы с другими процессами достаточно будет привилегии SeDebugPrivilege.

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

Обработка событий IWebBrowser на Ассемблере

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

Обработка событий IWebBrowser на Ассемблере

В предыдущей статье про работу со встроенным браузером я написал, что статус полной загрузки страницы можно отслеживать при помощи таймера и вызова метода get_ReadyState интерфейса IWebBrowser2. Способ имеет место быть, но также имеет немало недостатков. Правильное решение этой задачи - получения сигналов от объекта браузера и обработка событий IWebBrowser. Пришлось провести пару бессонных ночей в отладчике, но результат меня порадовал.

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

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

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

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

Если требуется получить информацию об установленных в системе принтерах, то для этого есть несколько вариантов решения: с помощью PowerShell, WMI или различных языков программирования. У меня, как обычно, будет Ассемблер и WinAPI. Приведенный код получает информацию о всех принтерах в системе, в том числе сетевых.

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

01 ... 06 07 08 09 10 11 12 ... 72
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2024
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.08 сек. / MySQL: 3 (0.0135 сек.) / Память: 4.5 Mb
Наверх