Форум программистов, компьютерный форум, киберфорум
C++: WinAPI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 22.04.2019
Сообщений: 3
1

Мониторинг процессов

22.04.2019, 22:09. Показов 1293. Ответов 3

Подскажите как реализовать следующее:
Программа, что ведет протокол действий пользователя с управления процессами во время сеанса работы, должна сохранять в скрытых файлах на диске полные имена всех создаваемых процессов и дату-время их создания.
Не могу понять как контролировать создание новых процессов. Создать snapshot текущих процессов и по таймеру проверять на наличие новых не вариант. Была идея сделать глобальный хук CreateProcess,но не могу понять как именно его реализовать.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.04.2019, 22:09
Ответы с готовыми решениями:

Мониторинг процессов, вывод информации о завершённых процессах. Как рациональнее осуществить
У меня складываются в вектор завершённых процессов их PID'ы, исходя из отличия предыдущего и...

Создание задания, добавление процессов, удаление процессов
Здравствуйте. Уже который день бьюсь со своей лабораторной работой - не получается, и все. Идея...

Мониторинг файлов в папке
Хотел отследить, к какому файлу из папки обращается программа (при разных условиях, обращается к...

Мониторинг системных ресурсов С++
в общем если у кого-нибудь что-нибудь есть по данному вопросу сердечно прошу поделиться тем, что...

3
0 / 0 / 0
Регистрация: 22.04.2019
Сообщений: 3
03.05.2019, 19:02  [ТС] 2
Идея следующая. Делать CreateProcessNotifyEx в "User Mode". Суть этого метода это создать dll c экспортируемой функцией
C++Выделить код
C++
1
2
3
4
extern "C" NTSTATUS __stdcall CreateProcessNotify ( 
    LPCWSTR lpApplicationName, 
    ULONG uReason 
    ) {...}
extern "C" NTSTATUS __stdcall CreateProcessNotify (
LPCWSTR lpApplicationName,
ULONG uReason
) {...}
И прописать эту dll в
Ключ: HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls
Тип значения: REG_EXPAND_SZ
При этом наша dll будет внедрена в приложения которые могут создать процесс..
Как именно прописать dll?
Нашла примеры с блокировкой процессов. Не могу понять как просто взять имя.
Плюс надо синхронизировать доступ к файлу.
0
Maniac
Эксперт С++
1454 / 955 / 159
Регистрация: 02.01.2009
Сообщений: 2,815
Записей в блоге: 1
04.05.2019, 09:54 3
Цитата Сообщение от Kastylera Посмотреть сообщение
Как именно прописать dll?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
    TCHAR szCurPath[MAX_PATH];
    TCHAR szCurNameDll[MAX_PATH];
 
 
    if(!GetCurrentDirectory(MAX_PATH, szCurPath )) {
        printf("Cannot GetCurrentDirectory (%d)\n", GetLastError());
        return;
    }
 
    _tcscpy(szCurNameDll, szCurPath);
    _tcscat(szCurNameDll, TEXT("\\LPDll.dll"));
 
    HKEY hKey;
    if ( RegCreateKeyEx(HKEY_LOCAL_MACHINE, 
        TEXT("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\AppCertDlls"), 0,NULL,0,KEY_ALL_ACCESS,
        NULL,&hKey, NULL) != ERROR_SUCCESS ) 
    {
        printf("Cannot RegCreateKey AppCertDlls (%d)\n", GetLastError());
        return;
    }
 
    if ( RegSetValueEx(hKey, TEXT("LPDll"), 0, REG_EXPAND_SZ, 
        (BYTE*)szCurNameDll, _tcslen(szCurNameDll) * sizeof(TCHAR) ) != ERROR_SUCCESS )
    {
        printf("Cannot RegSetValue LPDll (%d)\n", GetLastError());
        return;
    }
    RegCloseKey(hKey);
Этот способ мониторинга процессов сложен в отладке. Любая ошибка в dll может убить процесс или повесить всю ос.
0
0 / 0 / 0
Регистрация: 22.04.2019
Сообщений: 3
04.05.2019, 10:06  [ТС] 4
Вписать dll в реестр я собиралась бантиком, я не могу понять что записать внутрь функции CreateProcessNofity.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.05.2019, 10:06

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Мониторинг WinAPI вызовов
Можно ли "слушать" вызовы WinAPI всех запущенных процессов без инжекта dll в процесс. Сейчас...

Мониторинг состояния процессов
День добрый. нужно написать программу, реализующую мониторинг состояния процессов Unix. Схема...

Мониторинг дочерних процессов
У меня есть задача сделать систему процессов, каждый из которых будет заниматься своей задачей....

Мониторинг запускаемых процессов
Извините пожалуйста за некро, но всёже.. Разъясните пожалуйста как это работает? Или может для...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.