TGViewer
Codeby Codeby @codeby_sec · 37.1K subscribers
Post #8455 4.89K
В третьей статье цикла обсудим архитектуру объектов USER и GDI, которые отвечают за графику и интерфейс Windows. Например, объект типа *Window* включает почти все элементы окна — кнопки, поля ввода, списки и чекбоксы, а GDI добавляет обрамление, фигуры, цвет и шрифты.

⚙️Память и пулы Windows

Вся физическая память распределяется через системный диспетчер. Он выделяет большие объёмы через VirtualAlloc() и мелкие через HeapAlloc(), которые на уровне ядра обращаются к NtAllocateVirtualMemory() и RtlAllocateHeap().

Память делится на Paged Pool (может выгружаться на диск) и NonPaged Pool (всегда в ОЗУ). При старте создаётся несколько базовых пула для каждого пользователя в своей сессии, а также для всех системных служб. Это помогает системно управлять памятью и разграничивать процессы.

⚙️USER и GDI: Память и объектная таблица

🔸 USER-объекты (интерфейсные элементы) хранятся в куче рабочего стола.
🔸 GDI-объекты (графические примитивы) получают память из NonPagedSessionPool.

Объекты GDI привязаны к контексту создающего их процесса. Например, передача кисти из одного процесса в другой с высокой вероятностью может привести к сбоям.

Дескрипторы объектов управляются глобальной таблицей в каждой сессии и индексируются в фиксированной таблице с лимитом в 65,536 объектов. Например, GDIProcessHandleQuota в реестре ограничивает доступный для процесса лимит (по умолчанию — 10,000 дескрипторов).

⚙️Объекты USER

USER-объекты индексируются в таблице дескрипторов каждой сессии, которая отображается в пользовательском пространстве каждого GUI-процесса. Указатель на таблицу USER хранится в win32k!gSharedInfo, и её записи отображаются через массив HANDLEENTRY, предоставляя быстрый доступ процессам без необходимости в вызовах ядра.

🗣️ GDI и USER объекты — основа графической подсистемы Windows, которая позволяет управлять интерфейсом и графикой на уровне ядра.


➡️ Читать подробнее
  • 🔥 11
  • 👍 8
  • ❤ 7
More from @codeby_sec
  1. Oct 10, 2026Ты ещё используешь Sherlock или уже перешёл на что-то другое? Прогоняешь никнейм, получаеш…
  2. Oct 10, 2026🚩 Новые задания на платформе HackerLab! 🧰 Категория PWN — Я в своём познании настолько п…
  3. Oct 9, 2026✈️ Telegram Desktop — критическая уязвимость в обработке tg://-ссылок (CVE-2026-107181) В…
  4. Oct 9, 2026Как прошла Кибербитва GIS DAYS 2026: подробности нашего участия в соревнованиях ➡️В прошло…
  5. Oct 9, 202620 октября в 12:00 (мск) пройдёт бесплатный вебинар «Мониторинг событий безопасности в MWS…
  6. Oct 9, 2026Post #10506
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →