Форум программистов, компьютерный форум, киберфорум
Бета-тестирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/48: Рейтинг темы: голосов - 48, средняя оценка - 4.60
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21

KernelExplorer without driver

25.10.2020, 03:26. Показов 11761. Ответов 74
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как-то давно поставил себе цель сделать некий инструмент на подобии WinDbg и Process Hacker но без использования драйвера.
Посмотреть как далеко может пустить ОС код, запущенный из-под обычного юзера, путем повышения прав, привилегий и т.д.
Но на какое-то время забросил этот проект. И вот сейчас решил восстановить, добавил функционала, поправил ошибки.

Из возможностей на данный момент:
1. открытие дескриптора любого процесса (Protected и ProtectedLite процессы открываются только для чтения)
2. вывод информации о DACL, SACL, таблиц доступа и аудита (в планах добавление функционала для изменения этих данных)
3. полный контроль над токеном процесса (включение, отключение и удаление привилегий)
4. завершение процесса (кроме Protected и ProtectedLite процессов)
Всё что я сейчас перечислил, Process Hacker делает только с включенным драйвером.
5. создание процесса с учетной записью SYSTEM
Здесь немного подробнее расскажу. Перед созданием процесса нужно открыть процесс, на основе которого будет создан новый.
Если открывается процесс, запущенный в SessionId 0, то и новый процесс будет запущен в нулевой сессии.
Это означает, что оконную процедуру вы не увидите, т.к. у каждой сессии свая станция (Windows Station) и у каждой станции свой рабочий стол.
Если открывается процесс, запущенный в SessionId 1, то и новый процесс будет запущен в этой же сессии с оконными процедурами, но как NT_AUTHORITY\SYSTEM (будь то блокнот или ещё что), при условии если parentprocess тоже был SYSTEM.
В следующем обновлении будет реализован механизм выбора рабочего стола (с Winlogon уже экспериментировал и запускал программы на экране блокировки, т.е. чтобы что запустить программу не нужно знать логин и пароль от ОС).

На данный момент никакой нумерации билдов не виду, т.к. попутно проектирую GUI версию (на ней планирую делать нумерацию).

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

Пример вывода информации

Манипуляции с токеном


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

PS: для запуска необходимы права администратора (в дальнейшем эту проблему решу так же, как и у Process Hacker), и набор библиотек VC++ runtime (проект собран на VS2019).
Вложения
Тип файла: 7z KernelExplorer.7z (21.9 Кб, 37 просмотров)
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.10.2020, 03:26
Ответы с готовыми решениями:

MS SQL driver type 4 ошибка: [Microsoft][SQLServer JDBC Driver]No ResultSet set was produced.
Всем привет! Может мне кто-нибудь помочь с моей проблемой связанной с MS SQL driver type 4? Я использую для разработки проекта следующее:...

Ошибка при создании драйвера. Device driver does not install on any devices, use primitive driver if this is intended
Не могу создать драйвер ядра из-за данной ошибки. Помогите пожалуйста))) INF ФАЙЛ ; ; hellodriver.inf ; ...

wpd file system volume driver has a driver problem
Добрый вечер. Выносной хард видит диск но его нельзя открыть. Пробовал встроенным фиксом, он пишет wpd file system volume driver has a...

74
85 / 1 / 0
Регистрация: 22.02.2016
Сообщений: 103
10.12.2020, 13:04
Студворк — интернет-сервис помощи студентам
Очень интересный инструмент! Хотел бы помочь в развитии, возможно помочь с формами.
Так же, считаю, что очень не хватает ключей запуска. Например, сейчас вашим инструментом отлично бы выполнил задачу из рода - запустить процесс во всех активных сессиях. Чтобы была не 0 сеанс.

Ещё для тестирования и возможных выборок из кода для "доп фич", хотелось бы получить исходный код, если это возможно. Или выложить на GitHub. Ну или в лс (как решите).
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
10.12.2020, 22:57  [ТС]
Цитата Сообщение от dj-12l Посмотреть сообщение
хотелось бы получить исходный код
постараюсь на выходных выложить часть исходников здесь.
времени пока нет ни на что.
0
85 / 1 / 0
Регистрация: 22.02.2016
Сообщений: 103
11.12.2020, 01:12
Я пока что за добавление на все ваши проекты "ключей" запуска, чтобы можно было использовать в других проектах. Потом сделать формы, чтобы уже было удобнее
0
85 / 1 / 0
Регистрация: 22.02.2016
Сообщений: 103
11.12.2020, 11:28
Кстати, касательно ошибки ERROR_NOACCESS (998):

Необходимо использовать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main()
{
    DWORD dwWritten = NULL;
 
    HDESK hDesk = GetThreadDesktop(GetCurrentThreadId());
 
    HANDLE hPipe = CreateFile(TEXT("\\\\.\\pipe\\Pipe"), GENERIC_READ | GENERIC_WRITE,
        FILE_SHARE_READ | FILE_SHARE_WRITE, nullptr, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, nullptr);
 
    if (hPipe == INVALID_HANDLE_VALUE)
        exit(-1);
 
    if (hPipe != INVALID_HANDLE_VALUE) {
        if (!WriteFile(hPipe, &hDesk, sizeof(HDESK), &dwWritten, nullptr)) {
            std::wcout << TEXT("WriteFile: Error - ") << GetLastError() << std::endl;
        }
        CloseHandle(hPipe);
    }
 
    std::wcin.get();
    return 0;
}
Вы же передаете значение hDesk, а не адрес на переменную (&hDesk).
Было:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main()
{
    DWORD dwWritten = NULL;
 
    HDESK hDesk = GetThreadDesktop(GetCurrentThreadId());
 
    HANDLE hPipe = CreateFile(TEXT("\\\\.\\pipe\\Pipe"), GENERIC_READ | GENERIC_WRITE,
        FILE_SHARE_READ | FILE_SHARE_WRITE, nullptr, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, nullptr);
 
    if (hPipe == INVALID_HANDLE_VALUE)
        exit(-1);
 
    if (hPipe != INVALID_HANDLE_VALUE) {
        if (!WriteFile(hPipe, hDesk, sizeof(HDESK), &dwWritten, nullptr)) {
            std::wcout << TEXT("WriteFile: Error - ") << GetLastError() << std::endl;
        }
        CloseHandle(hPipe);
    }
 
    std::wcin.get();
    return 0;
}
1
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
14.12.2020, 16:58  [ТС]
Тема с пайпом не прошла GetThreadDesktop и Session0

Но я кое-что заметил при изучении рабочего стола Disconnect.
Когда я использовал утилиту FireDaemon Zero для перехода на рабочий стол сессии 0, я выставил цвет фона рабочего стола Default (Background COLOR_DESKTOP).
Проверка заключалась следующим образом: в FireDaemon Zero был выставлен синий цвет, далее через мою программу я запускал какой-либо процесс в сессии 0 на рабочем столе Default. Здесь всё четко и ошибок с рабочими столами быть не может, т.к. при переходе через FireDaemon Zero я лицезрел тот самый цвет, который выбрал (синий), и запущенный процесс через мою программу.
Через какое-то время я удалил FireDaemon Zero (триал закончился), но настройки цвета фона рабочего стола остались в системе (в реестре или ещё где).
А теперь внимательно смотрим на этот скриншот https://www.cyberforum.ru/post15073773.html
Цвет фона рабочего стола Disconnect в сессии 1 точно такой же как у рабочего стола Default в сессии 0.
Покопавшись в реестре я частично вычистил настройки цвета и при повторном запуске рабочего стола Disconnect цвет его фона стал дефолтовым, т.е. черным (как цвет фона рабочего стола Winlogon).
Далее, в ходе совершенно другого эксперимента, я применил несколько гуишных api функций, дизассемблированых из UI0Detect.exe
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
typedef LRESULT(WINAPI* _SetTaskmanWindow)(
    HWND hWnd
    );
_SetTaskmanWindow SetTaskmanWindow;
 
typedef LRESULT(WINAPI* _SetShellWindow)(
    HWND hWnd
    );
_SetShellWindow SetShellWindow;
 
auto hModule = GetModuleHandle(_TEXT("user32"));
if (hModule) {
    SetTaskmanWindow = (_SetTaskmanWindow)GetProcAddress(hModule, "SetTaskmanWindow");
    SetShellWindow = (_SetShellWindow)GetProcAddress(hModule, "SetShellWindow");
}
 
auto hWnd = CreateWindowEx(WS_EX_NOACTIVATE, _TEXT("$$$UI0Background"), _TEXT("Shell0 Window"), WS_POPUP | WS_CLIPCHILDREN,
    NULL, NULL, GetSystemMetrics(0), GetSystemMetrics(1), nullptr, nullptr, nullptr, nullptr);
ShowWindow(hWnd, SW_SHOW);
 
SetTaskmanWindow(hWnd);
SetShellWindow(hWnd);
и цвет фона рабочего стола Disconnect снова стал синим!

Пока не совсем понимаю, но рабочий стол Disconnect каким-то образом связан с рабочим столом Default причем в сессии 0.
Возможно это не совсем рабочий стол, т.к. я уже говорил
Очень странный рабочий стол - сообщение для перехода не появляется, приходится переходить обратно на Default по таймеру.
К тому же, загруженный Explorer++ как-будто сломан - окно отображено, но на нём нет никаких контролов (ListView, кнопки и прочее) и оно не активно (переместить либо закрыть нельзя).
а что-то типа инструмента отсоединения и присоединения рабочих столов в межсессионной оконной станции, как бы прослойка для перехода на рабочий стол Default в сессию 0 из сессии 1.
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
14.12.2020, 17:16  [ТС]
Если кто-то хочет поэкспериментировать с рабочими столами, выкладываю тестовую сборку.
Введена новая команда sw, при использовании которой нужно ввести имя рабочего стола Winlogon или Disconnect.
Вы будете перенаправлены на соответствующий рабочий стол.
В Winlogon реализован возврат на Default при помощи сообщения.
В Disconnect с отображением оконных процедур есть проблемы, поэтому переход реализован по таймеру: через 5 секунд программа автоматически вернёт вас на Default.

Можете попробовать подгрузить какие-либо программы на данные рабочие столы и посмотреть что из этого получится.
Напоминаю, что Winlogon это рабочий стол входа в систему, поэтому всё что вы загрузите туда, вы сможете лицезреть эти программы при нажатии клавиш Win+L (заблокировать систему) и перемещаться по окнам через Alt+Tab
Вложения
Тип файла: 7z KernelExplorer.7z (665.8 Кб, 10 просмотров)
0
Всегда онлайн
 Аватар для MrOnlineCoder
1084 / 788 / 295
Регистрация: 07.04.2013
Сообщений: 2,703
15.12.2020, 15:24
Цитата Сообщение от _lunar_ Посмотреть сообщение
Напоминаю, что Winlogon это рабочий стол входа в систему, поэтому всё что вы загрузите туда, вы сможете лицезреть эти программы при нажатии клавиш Win+L (заблокировать систему) и перемещаться по окнам через Alt+Tab
Если это можно будет как-то автоматизировать, то даже можно будет найти приминение, чтобы вынести какую-то программу на екран блокировки, без надобности вводить пароль / выполнять вход
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
15.12.2020, 15:29  [ТС]
Цитата Сообщение от MrOnlineCoder Посмотреть сообщение
вынести какую-то программу на екран блокировки, без надобности вводить пароль / выполнять вход
да, я уже думал над этим (загрузить проводник поинтересней, чтобы было ощущение полноценной ОС и всё учётка уже не нужна будет ).
на рабочем столе Winlogon всё отлично работает и драйверы и сервисы, даже запускал игру на нём)
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
17.01.2021, 11:20  [ТС]
Новая сборка:
- токен доступа заменён на учетную запись TrustedInstaller (в связи с чем добавлен новый модуль NtAuthHR.dll)
- доработано описание сервиса (команда op)
- при создании сервиса UI0Detect в реестр вносятся соответствующие записи для его запуска (при удалении данного сервиса, записи в реестре удаляются)
- переработан код main функции (уменьшен её размер, код открытия файла вынесен в отдельный модуль)
- программа сама определяет версию Windows и использует нужный код (если в системных либах ОС нет новых оптимизированных функций, которые есть в Win10, то используются устаревшие функции)
- общие улучшения и оптимизация кода

В планах поработать над загрузкой драйвера, чтобы можно было использовать клаву-мышь в нулевой сессии на Рабочем столе Default в Windows 10 сборки 1709 и предыдущих (подробнее о проблеме читайте во второй части моего блога https://www.cyberforum.ru/blog... g6910.html ).
Ну и конечно продолжается поиск решения по переходу в нулевую сессию после Windows 10 сборки 1709.
Вложения
Тип файла: 7z KernelExplorer.7z (676.1 Кб, 9 просмотров)
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
22.01.2021, 22:42  [ТС]
Всем привет!
Так как количество файлов постепенно увеличивается (появляются новые модули, подпрограммы), появился следующий вопрос к комьюнити:
сделал новую команду utl - утилиты с быстрым доступом к оным.
В качестве примера, использовал альтернативный проводник Explorer++ и альтернативный диспетчер задач Process Hacker

Пользователем выбирается утилита и запускается с указанными характеристиками (системный процесс или elevated, на каком рабочем столе и в какой сессии).
В связи с чем, в папке с программой находятся файлы Explorer++ и Process Hacker.
Я могу просто оставить папки пустыми, а при необходимости вы сами добавите туда файлы этих программ.
Также, если есть необходимость добавить ещё какие-либо программы в раздел Утилиты, пишите какие, добавлю.

Кроме того, добавлен драйвер для мыши и клавиатуры в нулевой сессии в Windows 10.
Запуск и инициализация проверены в Windows 10 сборка 20H2 - клава-мышь работает. Осталось подправить некоторые штрихи и можно в паблик.

Начал расшифровывать права доступа к дескрипторам безопасности процессов/потоков

В связи с большим числом комбинаций флагов пока ещё продолжаю исследовать разные процессы и заносить их комбинации в базу.
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
27.01.2021, 22:26  [ТС]
Ну что товарищи, я это сделал

Долго мучал дефолтовый сервис UI0Detect от Windows 10 build 1709, пытался его запустить разными способами.
Но отсутствие запускающего кода в ядре ОС свели все попытки на нет.

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

Теперь инструкция:
1. в папке UI0Input -> нажмите правую кнопку мыши на файле FDUI0Input.inf -> Установить
1.1. ОБЯЗАТЕЛЬНО перезагрузите компьютер (даже если вы запустите сервис FDUI0Input, драйвер всё равно не встанет, и у вас не будет работать клава-мышь в сессии 0)
2. из папки Windows\System32 удалите файл UI0Detect.exe от моих старых ревизий (не стал делать авто замену, т.к. можно потереть оригинальный UI0Detect.exe)
будьте внимательны - это оригинальный UI0Detect.exe в Windows 10 build 1709
Название: 1.png
Просмотров: 142

Размер: 5.6 Кб
его удалять не нужно! если у вас есть такой файл (именно с иконкой), то служба UI0Detect работает у вас по умолчанию.
Пункт 2 делается один раз, в следующий раз удалять уже ничего не нужно.
3. запустите ReqAdmin.exe
4. введите команду ui0 (будет установлен сервис UI0Detect и запущена программа перехода в сессию 0 SwitchToSession0)
5. ОБЯЗАТЕЛЬНО введите команду utl (Enter) 2 (Enter) 2 (Enter) 1 (Enter) 1 (Enter) (в сессии 0 запуститься ProcessHacker)
6. на клавиатуре нажмите Пуск -> внизу справа Отображать скрытые значки -> правой кнопкой мыши по SwitchToSession0 -> Go to Session 0..
Название: 2.png
Просмотров: 142

Размер: 9.3 Кб
7. И вот вы попадаете на рабочий стол Default в сессии 0. Не закрывайте ProcessHacker, иначе придётся перезагружать компьютер с кнопки.
8. Чтобы выйти из сессии 0 нужно в ProcessHacker нажать:
8.1. Users -> 1: DESKTOP ... -> Logoff

8.2. затем Hacker -> Computer -> Restart


Просьба отписаться о работоспособности на Windows 10 build 1803 и новее.
Вложения
Тип файла: 7z KernelExplorer.7z (3.18 Мб, 4 просмотров)
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
27.01.2021, 22:32  [ТС]
забыл сказать - в Windows 10 build 1803 и новее файл UI0Detect.exe нужно удалить.
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
28.01.2021, 14:34  [ТС]
Цитата Сообщение от _lunar_ Посмотреть сообщение
Плюнул, и написал свой UI0Detect!
Сразу говорю - он неполноценный: отсутствует механизм переключения между сессиями.
Для перехода в сессию 0 пока что нужно пользоваться сторонней утилитой.
Для выхода из сессии 0 необходимо перезагружать компьютер.
Всё, вопрос с переходом в сессию 0 и обратно решён!

Ещё раз вкратце что и как:
1. установите драйвер FDUI0Input, перезагрузите компьютер
2. если у вас Windows Vista, Windows 7, Windows 8/8.1 и Windows 10 включительно до сборки 1709 копировать файл UI0Detect.exe не нужно
2.1. запустите ReqAdmin.exe -> выполните команду ui0 (Enter) -> выполните команду ss (Enter) -> введите UI0Detect (Enter), появится дефолтовое окно перехода в сессию 0
3. если у вас Windows 10 сборки 1803 и последующие нужно удалить файл UI0Detect.exe в папке Windows\System32 (если таковой имеется)
3.1. запустите ReqAdmin.exe и выполните команду ui0 (Enter) -> выполните команду ss (Enter) -> введите UI0Detect (Enter)
3.2. выполните команду sw (Enter) -> введите Default (Enter), будет осуществлен переход в сессию 0
4. чтобы вернуться в сессию 1 - согласитесь с соответствующим уведомлением
Вложения
Тип файла: 7z KernelExplorer.7z (2.78 Мб, 9 просмотров)
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
30.01.2021, 18:18  [ТС]
https://www.cyberforum.ru/blog... g6953.html

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

В ближайшее время займусь модулем отладчика (так и висит в районе 10% готовности).
Как только доведу до ума отладчик, займусь наконец-то GUI интерфейсом с переброской кода.
0
Дно пробито
4879 / 3021 / 395
Регистрация: 07.10.2020
Сообщений: 20,604
01.02.2021, 18:20
Цитата Сообщение от _lunar_ Посмотреть сообщение
Просьба отписаться о работоспособности на Windows 10 build 1803 и новее.
Тот функционал который меня заинтересовал на 1903 работает - как остальное не знаю ( т.е. остальные 50-60% не знаю как ).

Единственная странность - одинаковые компоненты утилиты PH2 установленной с сайта создателя и в этом архиве имеют разное количество подозрений на VirusTotal , уж не знаю почему ( причём не в пользу оригинала на удивление ) .
1
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
01.02.2021, 18:56  [ТС]
спасибо за отзыв.
актуальная версия программы в блоге (сюда не выкладывал).

Цитата Сообщение от Wadim_Ymniy Посмотреть сообщение
Единственная странность
в актуальной версии я стал добавлять PH3 (ночную сборку), в ней больше функционала и интерфейс расширен.
так то могу не добавлять сами файлы PH, а оставлять только папку (путь до неё привязан к программе), а пользователь сам уже будет качать и добавлять если нужно.
0
Дно пробито
4879 / 3021 / 395
Регистрация: 07.10.2020
Сообщений: 20,604
01.02.2021, 21:34
_lunar_ на последней версии нашёл пару недочётов - хотелось бы что-бы утилита их умела предотвращать .


1)Умудрился "уронить" главное меню с строковым интерфейсом - если выбрать утилиту файлового менеджера в меню через utl , 1 , 2 и нажать enter и снова набрать utl : командная строка будет самостоятельно до бесконечности обновлять строку "СИСТЕМА:\>"И , есть ещё пара подобных сценариев ( к примеру написать в одной строке 3 разка команду utl ) - других я не запомнил .

2)Так же есть ещё баг с командой cls - если запустить команду sw с определённой ошибкой и набрать команду очистки ( cls ) : вместо неё выполнится команда ls ( как будто "с" не считалась )

3)При наборе любой команды ( кроме cls ) на конце с командой cls - происходит выполнение команды cls только если строчка ненулевая . При этом при выполнении только команды cls - нулевая строчка перезагружается столько раз : сколько раз она была написана .

4)При наборе команды exit при присутствующей в строке другой команде возможно частичное выполнение первой команды : к примеру успевает проматываться часть списка с команд "list" .

5)Утилита Unlocker удаляет элемент LdrModuleEx.dll без его разблокировки - когда он используется в системе , хотя не может это сделать с любым ".ddl" ( к примеру LoadRAW.dll при использовании его ПО ) .

6)При выборе в меню utl и выборе значений вместо 1 или 2 другого не приводит к моментальному выводу ошибки : так к примеру в определённый момент набор : utl , 3 ( при разрешённом 1-2 ) , 1 вообще открывает утилиту "Explorer" .

7)У самого движка утилиты PH есть проблема- при определённых условиях , главная из которых : оригинальная версия была уже установлена в системе - он ещё и "заменит" её с малой вероятностью - следствие чего папку с этой утилитой невозможно будет удалить , до использования установщика PH и перезагрузки ПК .

эксперименты проводились на Win 10 PRO x64 1903
1
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
01.02.2021, 21:35  [ТС]
Цитата Сообщение от Wadim_Ymniy Посмотреть сообщение
И , есть ещё пара подобных сценариев
да всё верно, я проверку не делал на ввод пользователем.
замечания учту конечно, но в планах GUI интерфейс, поэтому с консольной версией особо не занимаюсь.

что касается пункта 5 - Unlocker
перед собой я не ставил задачу делать файлы программы не удаляемыми, но думаю рассмотрю такую возможность.
тем более, как раз только сейчас добавил в программу новую функцию - "удаление не удаляемых файлов"

новый билд пока выкладывать не буду, поправлю косяки с вводом от пользователя.
0
Дно пробито
4879 / 3021 / 395
Регистрация: 07.10.2020
Сообщений: 20,604
01.02.2021, 21:37
Цитата Сообщение от _lunar_ Посмотреть сообщение
перед собой я не ставил задачу делать файлы программы не удаляемыми, но думаю рассмотрю такую возможность.
это защита dll при его использовании - что касается неудаляемой программы есть ещё одна проблемка :
Цитата Сообщение от Wadim_Ymniy Посмотреть сообщение
7)У самого движка утилиты PH есть проблема- при определённых условиях , главная из которых : оригинальная версия была уже установлена в системе - он ещё и "заменит" её с малой вероятностью в следствие чего папку с этой утилитой невозможно будет удалить , до использования установщика PH и перезагрузки ПК .
сделать бы какую-нибудь проверку потом : на использование по дефолту версии из этой папки и добавить установщик ( на этот случай ) с задачей пересоздать его в оригинальной папке и перезагрузить ПК по желанию юзера после завершения работы утилиты - шоб потом эта папка удалялась спокойно .
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
01.02.2021, 21:43  [ТС]
Цитата Сообщение от Wadim_Ymniy Посмотреть сообщение
это защита dll при его использовании
расширение dll это формальность, структура одна для всех исполняемых PE файлов.
разница лишь в точке входа и то после инициализации загрузчиком кода в ядре.

на счёт PH, когда выложу новую сборку протестируйте поведение, которые вы описали.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.02.2021, 21:43

QODBC (MS SQL SERVER) . Driver not loaded Driver not loaded
Собрал себе драйвер QODBC. mingw x86. QSqlDatabase::drivers() возвращает (QSQLITE, QMYSQL, QMYSQL3, QODBC, QODBC3, QPSQL, QPSQL7) ....

На машине клиента "QSQLITE" выдает: Driver not loaded Driver not loaded
#include &lt;QSqlDatabase&gt; #include &lt;QSqlQuery&gt; #include &lt;QSqlRecord&gt; #include &lt;QSqlError&gt; #include &lt;QDebug&gt; #include &lt;QFileDialog&gt; ...

Ошибка - Driver not loaded Driver not loaded
Собрал драйвер MySQL. Пытаюсь запустить простое приложение - подключиться к базе и выполнить sql - запрос. Но получаю сообщение , которое...

Wi-FI driver
Нету драйверов на ОС. Помогите их настроить. Прочитал множество информации по установке драйверов на Д, но все ровно не получается....

Wi-Fi driver
Здравствуйте. У меня Ubuntu 10.04 Не могу установить драйвер для вай фая. http://www.broadcom.com/support/802.11/linux_sta.php ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru