Вернуться   Forum 3Dnews Tech > Софт > Программное обеспечение > Программирование
Вход через: 

Ответ Создать новую тему
 
Опции темы Опции просмотра
Старый 03.08.2024, 14:49   Вверх   #21
_lunar_
Мужской Новенький
Автор темы
 
Регистрация: 16.01.2021
Новая версия
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 36
Размер:	90.4 Кб
ID:	63894
Переход IDE от Visual Studio VC++ на Pelles C.
Полностью GUI, уменьшено количество вспомогательных файлов (всё управление утилитой из одного исполняемого файла).

Из ключевых особенностей:
- переход в терминальную сессию (окружение ядра ОС) на любой версии Windows
- снятие защиты с protected служб\сервисов и перезапуск процесса (уже не защищенного)
- удаление "занятых" файлов
- включение\выключение привилегий
- создание системного процесса в любой сессии (терминальной и пользовательской)
- информация об объектах ядра (процесс, сервис, токен), двойной щелчок левой кнопкой мыши по спискам (правая кнопка мыши - обновление списков)
Нажмите на изображение для увеличения
Название: 2.jpg
Просмотров: 33
Размер:	84.7 Кб
ID:	63896

Инструкция:
1. SystemResearch.zip - основная утилита (для удобства сделаны куча подсказок на английском языке)
Следующие пункты можно не выполнять, если вам не нужна терминальная сессия.
2. UI0Detect.zip - сервис для перехода в терминальную сессию
2.1. Wls0wndh.dll - вспомогательная утилита для возврата из терминальной сессии
UI0Detect.exe и Wls0wndh.dll необходимо разместить в папке Windows\System32
Если файл UI0Detect.exe уже существует (а это все ОС до Windows 10 build 1709 включительно), то заменять его не нужно.
Тоже самое касается файла Wls0wndh.dll - в Windows 7 он уже существует.
3. FDUI0Input.zip - драйвер клавиатуры и мыши для терминальной сессии. Без него Input устройства работать не будут.
Читайте справку для какой ОС какая версия. Если у вас Windows 10 build 1709 и более ранние, то этот драйвер устанавливать не нужно.
4. После установки драйвера FDUI0Input.sys обязательно перезагрузить компьютер.

Предельно внимательно пользуйтесь данной утилитой. SystemResearch может положить систему и\или вызвать BSOD за один щелчок по кнопке (утилита работает с правами как сама ОС).

Virus Total - https://www.virustotal.com/gui/file/...b558?nocache=1 (файл чист)

Последний раз редактировалось _lunar_; 03.08.2024 в 14:54.
_lunar_ вне форума  
Ответить с цитированием
Старый 05.08.2024, 14:43   Вверх   #22
XaXoL
Мужской Модератор
 
Аватар для XaXoL
 
Регистрация: 17.03.2004
Адрес: K-PAX
Цитата (_lunar_) »
Virus Total - https://www.virustotal.com/gui/file/...b558?nocache=1 (файл чист)
Прошёл по ссылке, а там:
Цитата
2/74 security vendors flagged this file as malicious
XaXoL вне форума  
Конфигурация ПК
Ответить с цитированием
Старый 05.08.2024, 15:47   Вверх   #23
_lunar_
Мужской Новенький
Автор темы
 
Регистрация: 16.01.2021
Цитата (XaXoL) »
Прошёл по ссылке, а там:
И?
Какие-то ноунейм аверы ложно сработали. И то что остальные 72 авера промолчали это мелочи?
Мой код не подписан сертификатом и не является драйвером, который был бы интегрирован в ОС и ни один авер в жизни не ругнулся.

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

Да и в целом, можно ознакомиться с алгоритмами детекта и понять как работают ноунейм аверы и аверы, которые только накапливают базу.
_lunar_ вне форума  
Ответить с цитированием
Старый 05.08.2024, 16:02   Вверх   #24
XaXoL
Мужской Модератор
 
Аватар для XaXoL
 
Регистрация: 17.03.2004
Адрес: K-PAX
_lunar_
я без претензий, просто зашёл, увидел, сообщил.
XaXoL вне форума  
Конфигурация ПК
Ответить с цитированием
Старый 05.08.2024, 16:19   Вверх   #25
_lunar_
Мужской Новенький
Автор темы
 
Регистрация: 16.01.2021
XaXoL
обычно нужно смотреть всего не несколько нормальных аверов: AVG, BitDefender, DrWeb, Avast + ESET-NOD32 + Panda (эти с натяжкой), Malwarebytes, Kaspersky
если они молчат - ничего опасного в файле нет.

а так, если есть вопросы касаемо самой утилиты с удовольствием отвечу.
функционал не полный, можно увидеть пустые заготовки, в частности в ближайшее время планирую доработать SACL и DACL с возможностью добавления контроля над объектом.
_lunar_ вне форума  
Ответить с цитированием
Старый 06.08.2024, 00:28   Вверх   #26
XaXoL
Мужской Модератор
 
Аватар для XaXoL
 
Регистрация: 17.03.2004
Адрес: K-PAX
Цитата (_lunar_) »
а так, если есть вопросы касаемо самой утилиты с удовольствием отвечу.
Это хорошо. Но я пока даже на знаю зачем и для чего эту утиль мне использовать.
XaXoL вне форума  
Конфигурация ПК
Ответить с цитированием
Старый 06.08.2024, 12:37   Вверх   #27
_lunar_
Мужской Новенький
Автор темы
 
Регистрация: 16.01.2021
Цитата (XaXoL) »
Но я пока даже на знаю зачем и для чего эту утиль мне использовать.
В Windows 10\11 есть защищенные процессы с разным уровнем защиты
Нажмите на изображение для увеличения
Название: 3.png
Просмотров: 34
Размер:	86.2 Кб
ID:	63912
Часть из них это хост-процессы, управляемые через службу\сервис.
К примеру: сервис wscsvc - Центр обеспечения безопасности
Имеет уровень защиты WindowsLite. Хост-процесс, который запускает этот сервис, имеет такой же уровень защиты.
Запускаем утилиту с токеном TrustedInstaller, останавливаем сервис, выключаем защиту и запускаем вновь.
В итоге хост-процесс запустится без защиты и к его дескриптору открыт полный доступ.

Менеджер привилегий позволяет включать и отключать привилегии в токене процесса (позже возможно реализую и в токене сервиса, хотя это бессмысленная функциональность, т.к. настройки сервиса захардкодены в ControlSet).
К примеру, чтобы получить информацию по дескриптору безопасности (Security Descriptor) необходимо включить привилегию SeSecurityPrivilege.
Или чтобы создать токен (чистый морф из ядра) требуется привилегия SeCreatePrivilege (доступна при токене LocalSystem).
Для доступа к ACL (список управления доступом) требуются определенные права в дескрипторе процесса (соответственно включаем SACL и/или DACL).

Функционал по удалению "занятого" файла. Если файл занят каким-то процессом (драйвер, вирус или ещё что) - Delete Locked File.
Принцип следующий - утилита отсоединяет поток (stream) от файловой системы и удаляет файл полностью. Остаётся только процесс, который можно грохнуть или просто перезагрузить ПК.

И массивный функционал по терминальной сессии (с чего собственно и началось проектирование данной утилиты).
При загрузке ядра, ОС создаёт окружение. Сперва создаётся терминальная сессия (SessionID = 0). В ней создаётся Рабочая станция (существуют интерактивная рабочая станция (WinSta0) для отображения GUI, и не интерактивные для расположения сервисов и служб). После создаётся рабочий стол (существуют несколько столов - Winlogon, Default, Disconnect и другие). Там запускаются минимальные процессы - System, Wininit.exe, smss.exe, csrss.exe и прочие.
Когда это всё проинициализированно, ядро создаёт новое окружение - пользовательская сессия (SessionID = 0+n). В ней запускается winlogon.exe, userinit.exe который запускает проводник (explorer.exe) а сам затем переходит в состояние зомби процесса (его идентификатор остаётся в системе, но дескриптор создаётся с ограничениями и процесса фактически не существует).
Так вот утилита даёт возможность попасть в окружение ядра ОС - в терминальную сессию SessionID = 0 и там работать без пользовательской оболочки минуя юзерские API.

Реализован небольшой функционал по обнаружению гипервизора (если он есть, то переход в терминальную сессию невозможен из-за изоляции памяти и ядра).

И создание процессов. Например можно создать процесс SystemInformer (ака ProcessHacker) или Explorer++ в терминальной сессии и там работать с проводником для GUI удобства.

Последний раз редактировалось _lunar_; 06.08.2024 в 12:50.
_lunar_ вне форума  
Ответить с цитированием
Старый 05.09.2024, 08:13   Вверх   #28
_lunar_
Мужской Новенький
Автор темы
 
Регистрация: 16.01.2021
Обновление утилиты до версии 1.3.4

Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 24
Размер:	29.2 Кб
ID:	64088 Нажмите на изображение для увеличения
Название: 2.png
Просмотров: 29
Размер:	29.8 Кб
ID:	64089

Всю информацию об объекте ядра в списки ACL я занёс, кроме SE_OBJECT_TYPE (пока используемый метод не работает, позже постараюсь решить проблему).
Из неудобств (временных) - TreeView не выводит строку длиннее 260 символов (касается некоторых списков прав доступа объекта, остальное всё умещается).
Постарался структурировать TreeView так, чтобы было удобно читать.
Пришлось повозиться с SACL процесса lsass.exe - в новых ОС он имеет два ACE. При получении структуры EXPLICIT_ACCESS (в частности перечисления ACCESS_MODE) вылетает 87 ошибка.
Вложения
Тип файла: zip SystemResearch.zip (53.6 Кб, 25 просмотров)
_lunar_ вне форума  
Ответить с цитированием
Старый 13.09.2024, 15:39   Вверх   #29
_lunar_
Мужской Новенький
Автор темы
 
Регистрация: 16.01.2021
Обновление утилиты до версии 1.3.5

1. Добавлена поддержка Windows 11 24H2
- упорядочены сигнатуры для не экспортируемой функции GetSecurityInfoEx
- исправлена битовая маска для преобразования номера билда ОС (в некоторых случаях таблицы SACL\DACL могли загружаться по неверному адресу, что приводило к аварийному завершению программы)
2. Часть строковых переменных убрана из кода в ресурсы (данные)
3. Разделение списка прав на объектные и общие (GeneralAccess) для более корректного вывода в строку TreeView
4. Мелкие фиксы кода
Вложения
Тип файла: zip SystemResearch.zip (55.6 Кб, 21 просмотров)
_lunar_ вне форума  
Ответить с цитированием
Ответ Создать новую тему


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 21:45. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4 Patch Level 5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot