Форум программистов, компьютерный форум, киберфорум
Winapi
Войти
Регистрация
Восстановить пароль
Старый
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
Запись от bedvit размещена 28.01.2026 в 12:35. Обновил(-а) bedvit 28.01.2026 в 12:43
Показов 2074 Комментарии 0
Метки com, vb, winapi

Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы исходники Crypto++
Использованы алгоритмы сжатия WinApi.

Нажмите на изображение для увеличения
Название: VariantToFromFile.PNG
Просмотров: 83
Размер:	89.3 Кб
ID:	11456

Функционал:
+ Сохранять данные из VARIANT в файл
+ Загружать данные из файла в VARIANT
+ Шифровать данные...
Аватар для bedvit
Старый
Рейтинг: 5.00. Голосов: 1.
Доступ к терминальной сессии (Session 0) после обновления 22H2
Запись от _lunar_ размещена 08.02.2023 в 12:40
Показов 7323 Комментарии 0
Метки c, c++, winapi

Дополнительная информация и аттач для скачивания тут

Давно я ничего не писал в блоге, да и ценности в жизни меняются - занимаюсь кодингом всё меньше и меньше, но окончательно бросить всё же не могу (после стольких лет моего увлечения программированием).
А сподвигло меня на новый анализ ядра...
Аватар для _lunar_
Старый
Рейтинг: 5.00. Голосов: 5.
Разбираемся в новом API KLoader. Часть 2: Deep Internal Research
Запись от _lunar_ размещена 04.06.2022 в 01:55
Показов 2068 Комментарии 0
Метки c, c++, winapi

Разбираемся в новом API KLoader. Часть 1: Общие сведения

Из первой части исследования стало известно, что в реестре Windows 11 есть раздел, который не доступен с правами администратора.
И чтобы узнать что в нём находится пришлось повысить права реестра до уровня СИСТЕМА.
Следовательно, такими...
Аватар для _lunar_
Старый
Рейтинг: 4.43. Голосов: 7.
Разбираемся в новом API KLoader. Часть 1: Общие сведения
Запись от _lunar_ размещена 25.05.2022 в 00:56
Показов 2539 Комментарии 0
Метки c, c++, winapi

Во-первых, сразу уточню, что новый API доступен только в Windows 11. В более старых версиях ОС не ищите, его там нет.

Уже и не помню каким образом я наткнулся на ветку реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\KLoader
но результат запроса на открытие меня немного удивил
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 441
Размер:	84.2 Кб
ID:	7549
Отказано в доступе с учётом того, что Реестр по умолчанию открывается с правами администратора с соответствующим запросом UAC.

"Не...
Аватар для _lunar_
Старый
Рейтинг: 5.00. Голосов: 2.
Стек вызовов Windows API
Запись от _lunar_ размещена 11.04.2022 в 14:59
Показов 2369 Комментарии 0
Метки c, c++, winapi

В этой записи я постараюсь простым понятным языком объяснить что такое API в целом, а также его разновидности в зависимости от того, где это API исполняется.

Сперва, предлагаю внимательно посмотреть на скриншот и запомнить последовательность вызовов
(не стал рисовать...
Аватар для _lunar_
Старый
Рейтинг: 5.00. Голосов: 2.
Объекты операционной системы. Часть 4: Отладчик уровня ядра WinDbg
Запись от _lunar_ размещена 24.12.2021 в 19:41
Показов 3561 Комментарии 0
Метки c, c++, winapi

Объекты операционной системы. Часть 1: Общие сведения
Объекты операционной системы. Часть 2: Объект ядра
Объекты операционной системы. Часть 3: Уровень целостности

В этой части я решил показать самые интересные, на мой взгляд, возможности ядерного отладчика WinDbg.
Но сначала немного слов о том, как его установить и как им пользоваться....
Аватар для _lunar_
Старый
Рейтинг: 5.00. Голосов: 2.
Объекты операционной системы. Часть 3: Уровень целостности
Запись от _lunar_ размещена 08.12.2021 в 01:51
Показов 4465 Комментарии 3
Метки c, c++, winapi

Объекты операционной системы. Часть 1: Общие сведения
Объекты операционной системы. Часть 2: Объект ядра

Честно говоря, третью часть блога "Объекты операционной системы" я хотел написать совершенно про другое.
В планах было показать работу ядерного отладчика WinDbg, но в процессе подготовки материала...
Аватар для _lunar_
Старый
Рейтинг: 5.00. Голосов: 4.
Объекты операционной системы. Часть 2: Объект ядра
Запись от _lunar_ размещена 16.11.2021 в 12:22
Показов 6679 Комментарии 3
Метки c, c++, winapi

Объекты операционной системы. Часть 1: Общие сведения

Больший интерес из всех трёх групп объектов представляет категория объект ядра.
Рассмотрим более подробно Kernel object.

Каждый объект ядра - это блок памяти, выделенный ядром ОС и доступный только ядру ОС.
Этот блок памяти представляет собой структуру данных, члены которой хранят информацию об объекте (дескриптор...
Аватар для _lunar_
Старый
Рейтинг: 5.00. Голосов: 4.
Объекты операционной системы. Часть 1: Общие сведения
Запись от _lunar_ размещена 12.11.2021 в 00:09
Показов 4626 Комментарии 5
Метки c, c++, winapi

В этом блоге я решил затронуть такую тему, как объекты операционной системы семейства Windows.
Очень часто начинающие программисты, да и обычные пользователи, не могут прийти к пониманию - что есть объект и для чего нужен дескриптор объекта.
Материал даётся с учётом того, читающий данный блог уверенно разбирается в языках программирования C и C++, а также знает основы внутренней архитектуры ОС Windows.

Начнём с определения объекта.
Объект - это структура...
Аватар для _lunar_
Старый
Рейтинг: 3.80. Голосов: 5.
Прогулка по Рабочему столу Winlogon. Часть 2: Привет, друг
Запись от _lunar_ размещена 08.06.2021 в 01:52
Показов 4303 Комментарии 2
Метки c, c++, winapi

Прогулка по Рабочему столу Winlogon. Часть 1: UAC

Когда ребята из Microsoft создавали экран приветствия, где пользователь должен ввести логин и пароль,
наверняка они хотели изобрести что-то мощное, что не дало бы не единого шанса на обход пароля и перехода к обычному Рабочему столу.
И всё бы ничего, но один эксплойт они проглядели. Давайте разбираться.

Что же такое экран приветствия? На этот вопрос нам поможет ответить всё тот же KernelExplorer
...
Аватар для _lunar_
Старый
Рейтинг: 3.67. Голосов: 6.
Прогулка по Рабочему столу Winlogon. Часть 1: UAC
Запись от _lunar_ размещена 02.06.2021 в 00:55
Показов 6332 Комментарии 7
Метки c, c++, winapi

В современной операционной системе Windows есть области ядра, в которые Microsoft не хотела бы пускать обычных пользователей. Сделано это, естественно, в целях безопасности.
Это могут быть процессы, сервисные службы, и даже Рабочие столы. Немного освежим память для целостности...
Аватар для _lunar_
Старый
Рейтинг: 5.00. Голосов: 1.
Постоянная ссылка на Google Диск для скачивания моих утилит
Запись от _lunar_ размещена 03.03.2021 в 10:55
Показов 9334 Комментарии 0
Метки c, c++, winapi

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

KernelExplorer

Исходный код на GitHub

Скачать с GitHub

ВНИМАНИЕ!!!
В связи с ненормальной политикой Microsoft в отношении...
Аватар для _lunar_
Старый
Рейтинг: 5.00. Голосов: 2.
Вскрываем защиту ProtectedLite процессов на уровне пользовательского кода
Запись от _lunar_ размещена 20.02.2021 в 12:19
Показов 5159 Комментарии 0
Метки c, c++, winapi

Начну немного с теории - как это работает и для чего это нужно.
При разработке нового ядра, отличного от ядра Windows XP, в Microsoft придумали такую штуку как изоляция критических процессов.
Следствием этого стали защищенные процессы (Process Protected), которые могли создавать только...
Аватар для _lunar_
Старый
Двойная буферизация GDI
Запись от Замабувараев размещена 10.02.2021 в 13:17
Показов 2271 Комментарии 2
Метки freebasic, winapi

Чтобы рисовать «в памяти», нужен контекст устройства в памяти. Создать его можно через `CreateCompatibleDC`. Однако проблема в таком устройстве в том, что по умолчанию в нём выбран чёрно‐белый BITMAP размером 1 на 1 пиксель. Поэтому рисунок в контексте устройства в памяти будет чёрно‐белым. Чтобы рисунок был цветным, необходимо создать BITMAP на основе оконного или дисплейного контекста устройства и выбрать его в контекст устройства в памяти:

PureBasic
1
Const MOVE_DY = 10
...
Аватар для Замабувараев
COM‐пропагандист
Старый
Рейтинг: 5.00. Голосов: 3.
Исследование сервиса "Обнаружение интерактивных служб" (UI0Detect) Часть 3: Эпилог
Запись от _lunar_ размещена 30.01.2021 в 13:33
Показов 7418 Комментарии 0
Метки c, c++, winapi

Исследование сервиса "Обнаружение интерактивных служб" (UI0Detect) Часть 1: Windows Vista - Windows 7
Исследование сервиса "Обнаружение интерактивных служб" (UI0Detect) Часть 2: Windows 8 - Windows 10

В заключительной части много слов не будет. Я лишь скажу то, что мне всё таки удалось восстановить вырезанную Майкрософтом часть системы - сервис...
Аватар для _lunar_
Старый
Рейтинг: 5.00. Голосов: 2.
Исследование сервиса "Обнаружение интерактивных служб" (UI0Detect) Часть 2: Windows 8 - Windows 10
Запись от _lunar_ размещена 10.01.2021 в 12:16
Показов 6713 Комментарии 0
Метки c, c++, winapi

Исследование сервиса "Обнаружение интерактивных служб" (UI0Detect) Часть 1: Windows Vista - Windows 7

Первая часть блога по исследованию сервиса UI0Detect в больше степени касается таких операционных систем, как Windows Vista и Windows 7.
Механизм переключения на Рабочий стол нулевой сессии в этих ОС одинаков (за исключением некоторых неважных мелочей).
Но в Windows 8/8.1 и Windows 10 ядро было переписано в угоду "безопасности". Коснулись...
Аватар для _lunar_
Старый
Рейтинг: 4.20. Голосов: 5.
Исследование сервиса "Обнаружение интерактивных служб" (UI0Detect) Часть 1: Windows Vista - Windows 7
Запись от _lunar_ размещена 06.11.2020 в 12:15
Показов 9788 Комментарии 3
Метки c, c++, winapi, windows

После насквозь "дырявой" Windows XP в Microsoft прикинули расклад и задались вопросом - как же изолировать систему от пользователя?
Ведь в XP пользователь работал в той же среде, что и ядро операционной системы.
Поэтому с выходом Windows Vista компания представила новый механизм...
Аватар для _lunar_
Старый
Рейтинг: 3.40. Голосов: 5.
Быстрая реализация поиска строк в csv/txt(ANSI) файлах (WinAPI + С++)
Запись от bedvit размещена 06.06.2020 в 23:22
Показов 7661 Комментарии 37
Метки c++, vba, winapi

Реализация для XLL как функция Excel. В планах, реализация в СОМ. Реализовано.
Часть библиотеки BedvitXLL
Особенности реализации:
1.WinAPI: CreateFile + ReadFile
2.Асинхронность в чтения с диска и выполнения рабочего кода.
3.Возможность отключения системного кеширования.
4.Посему чтение блоками, кратно степени двойки - по 16 Мб.(16777216 байт), в большинстве hdd - такого размера свой кеш.
...
Аватар для bedvit
Старый
Рейтинг: 5.00. Голосов: 3.
Обход Anti-Malware Scan Interface (AmsiScanBuffer bypass)
Запись от _lunar_ размещена 01.01.2020 в 19:15
Показов 7236 Комментарии 0
Метки c, c++, winapi

С релизом Windows 10 компания Microsoft представила новый интерфейс, который могут использовать приложения и службы, отправляя «контент» поставщику антивирусного ПО, установленному в системе (например Windows Defender).
Называется этот интерфейс Anti-Malware Scan Interface и представлен в системной...
Аватар для _lunar_
Старый
Рейтинг: 4.33. Голосов: 6.
Windows Internal на примере user32.dll!__ClientLoadLibrary (Часть 1.0)
Запись от _lunar_ размещена 29.10.2019 в 16:15
Показов 11241 Комментарии 0
Метки c, c++, winapi

Internal (или внутренние) функции операционной системы Windows как известно не входят в таблицу экспорта и используются исключительно самой библиотекой для различных вычислений.
Кроме того, системные библиотеки Windows условно можно разделить на 2 группы:
- пользовательские...
Аватар для _lunar_
Старый
Рейтинг: 5.00. Голосов: 4.
Правильный прототип LdrLoadDll
Запись от _lunar_ размещена 22.07.2019 в 15:14
Показов 11655 Комментарии 0
Метки c, c++, winapi

Почему-то везде в интернете ходит один и тот же неправильный прототип nt-функции LdrLoadDll
C++
1
2
3
4
5
6
7
8
9
NTSYSAPI
NTSTATUS
NTAPI
LdrLoadDll(
    _In_opt_ PWSTR DllPath,
    _In_opt_ PULONG DllCharacteristics,
    _In_ PUNICODE_STRING DllName,
    _Out_ PVOID *DllHandle
    );
ведать один написал (ещё со времен какой-нить висты) и все с него бездумно копируют.

...
Аватар для _lunar_
Старый
Рейтинг: 5.00. Голосов: 4.
Чтение данных PE заголовка
Запись от _lunar_ размещена 27.03.2019 в 13:13
Показов 9130 Комментарии 1
Метки c, winapi

Несмотря на то, что исполняемые файлы имеют чёткую структуру и документированное описание, найти полезную информацию в интернете о том как читать PE заголовок достаточно сложно (если вообще возможно).

Переписывать документацию наверное не имеет смысла. Вместо этого...
Аватар для _lunar_
Старый
Пара нюансов при создании службы (Windows Service) и не только
Запись от Jin X размещена 26.03.2019 в 16:27
Показов 15733 Комментарии 0

Пара нюансов при создании службы (Windows Service) и не только

Пишу службу (Windows Service) на Delphi через VCL. В том же EXE-шнике делаю конфигуратор с оконным интерфейсом.
Получается так:
  • При запуске с опцией /install служба устанавливается (встроенная фича TServiceApplication).
  • При запуске с опцией /uninstall служба удаляется (встроенная фича TServiceApplication).
  • При запуске с опцией /config запускается конфигуратор.
  • Запуск службы
...
Аватар для Jin X
Asm/C++/Delphi/Py/PHP/VBA
Старый
Рейтинг: 4.14. Голосов: 7.
Клеточные автоматы ч.2 - Conway's Game of Life (С++ WinAPI)
Запись от bedvit размещена 01.03.2019 в 21:15
Показов 10473 Комментарии 16
Метки c++, winapi

Решил сделать свой велик.
Программа Life
Видео и новые версии программы на сайте.

Продукт написан на С++, GUI на WinAPI.
Предыдущая часть: Клеточные автоматы ч.1 - Conway's Game of Life in Excel

Основные параметры:
1. Размер игрового поля 2^32 на +2^32 клеток (рамка примерно 4,3*4,3 млрд. клеток) - поле закольцовано по X, Y координатам.
2. Масштаб от 32 пикселей - одна клетка, до 1 млр. клеток на один пиксель (можно загрузить...
Аватар для bedvit
Старый
Рейтинг: 5.00. Голосов: 2.
Прототип RtlCreateUserProcessEx
Запись от _lunar_ размещена 29.01.2019 в 10:25
Показов 6488 Комментарии 0
Метки c, winapi

Потребовалось недавно создать процесс средствами Native API.
Из всего набора функций ntdll.dll имеются следующие варианты:
1. NtCreateProcess(Ex) - создаётся элементарно просто (NtOpenFile -> NtCreateSection -> NtCreateProcess -> NtGetContextThread -> NtCreateThread) но связать процесс с csrss слишком геморно, поэтому дальше...
Аватар для _lunar_
Старый
Рейтинг: 5.00. Голосов: 3.
Загрузка динамических библиотек без kernel32.dll
Запись от _lunar_ размещена 22.01.2019 в 13:08
Показов 6296 Комментарии 0
Метки c, winapi

Решил написать небольшой пример для загрузки DLL средствами NativeAPI (полностью независимого от Kernel32.dll кода).
Самое главное, я напишу именно 64 битный код, т.к. в интернете одно 32 битное старье и то не доделано до конца.
Для этого я буду использовать 64 битный указатель *__ptr64....
Аватар для _lunar_
Старый
Рейтинг: 3.40. Голосов: 5.
Библиотека COM (OLE Automation). Часть 1 - ArraySort (String)
Запись от bedvit размещена 13.11.2018 в 21:46
Показов 6939 Комментарии 18
Метки c++, vba, winapi

Теперь часть библиотеки BedvitCOM.
См. Часть 2.
Решил запустить пробный шар, и если будет время и интерес к данной тематике, возможно сделаю что-то годное в своих COM и XLL библиотеках.
Цель - скорость и удобство работы, создание для скриптовых языков, языков с поддержкой COM - того, чего там нет или есть, но хочется лучше.
В данном момент ориентир на VBA.
Добавил новый класс - "VBA" к двум уже существующим (см. ссылку выше).
Добавил новый...
Аватар для bedvit
Старый
Рейтинг: 3.00. Голосов: 2.
Велосипеды (C++,WinApi)
Запись от Avazart размещена 01.10.2016 в 19:25 / Мой блог
Показов 9184 Комментарии 5


Название: index.jpg
Просмотров: 7798

Размер: 10.6 Кб

Ссылка на исходники https://github.com/Avazart/Bicycle

Решил поделиться некоторыми своими велосипедами, подумал что возможно кому-то будет интересно взглянуть, а кто-то может еще и укажет на баги/недочеты.

Основа- классы:
  • Process
  • SerialPort
  • TcpClient
являющие собой обвертки над WinApi и Winsoсks.

Для этих классов есть специальный класс-поток TextStream позволяющий читать из объектов...
Аватар для Avazart
Старый
C++ - WinAPI - Простой таймер высокого разрешения
Запись от castaway размещена 24.07.2015 в 12:59
Показов 546 Комментарии 2
Метки c++, timer, winapi

Код с примером
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <cstdio>
#include <cstdint>
#include <cmath>
 
class hr_timer {
    double  m_resolution;
 
public:
    hr_timer() {
        uint64_t frequency;
        QueryPerformanceFrequency( (LARGE_INTEGER *)&frequency );
        m_resolution = 1e6 / float(frequency);
    }
 
    void wait( uint64_t us /* microseconds */ ) {
        if ( us ) {
...
Старый
Рейтинг: 4.00. Голосов: 1.
C++ - WinAPI - IP Sniffer
Запись от castaway размещена 20.07.2015 в 21:24
Показов 614 Комментарии 2
Метки c++, network, sniffer, winapi

Простой IP сниффер на WinAPI.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <winsock2.h>
#include <ws2tcpip.h>
#include <windows.h>
#include <mstcpip.h>
 
#include <cstdio>
#include <cstdint>
#include <cctype>
#include <string>
#include <map>
 
///
/// [url]https://en.wikipedia.org/wiki/IPv4[/url]
///
struct ip_header {
    uint8_t     ver_ihl;
    uint8_t     dscp_ecn;
    uint16_t    len;
...
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru