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

KernelExplorer without driver

25.10.2020, 03:26. Показов 11704. Ответов 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,596
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,596
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,596
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
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru