Russian Qt Forum
Ноябрь 25, 2024, 04:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: сбор данных с rdp-сервера  (Прочитано 6308 раз)
virtual_root
Гость
« : Август 13, 2012, 13:27 »

Добрый день ребята) я написала программку которая собирает некоторые данные у компьютера, а именно:
  • список открытых программ
  • заблокировна ли учетная запись
  • количество нажатых на клавиатуре клавиш
  • количество нажатий кнопок мыши
У меня возник вопрос, а как мне собирать данные если я запущу свою программу на rdp-сервере(windows) как мне по всем удаленным пользователям собрать эти данные? Не в перемешку, а как-то по раздельности, чтоб я могла знать что эту программу запустил один пользователь, другую другой. Подскажите, пожалуйста!
Записан
Bepec
Гость
« Ответ #1 : Август 13, 2012, 14:21 »

Жуткие мысли - зачем вам эта программа? Что она из себя будет представлять? И зачем Непонимающий


PS очень похоже на зловреда аля троян. % на 90 его функционал Веселый

PPS жду ответа Улыбающийся
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #2 : Август 13, 2012, 15:11 »

очень похоже на зловреда аля троян. % на 90 его функционал
Есть ещё такой вариант.
Записан
Bepec
Гость
« Ответ #3 : Август 13, 2012, 16:52 »

Отметаю как нецелесообразный для одиночной разработки Улыбающийся К тому же готовых дофига.

PS такие проги вроде не логгируют все действия Улыбающийся

PPS хотелось бы ТС услышать Улыбающийся
Записан
virtual_root
Гость
« Ответ #4 : Август 13, 2012, 21:05 »

это правда должна вестись статистика по работникам) так может мне подскажет кто с идеями реализации?
Записан
Serr500
Гость
« Ответ #5 : Август 13, 2012, 21:54 »

Идея (не проверял):
OpenProcess (http://msdn.microsoft.com/en-us/library/windows/desktop/ms684320%28v=vs.85%29.aspx)
-->
OpenProcessToken (http://msdn.microsoft.com/en-us/library/windows/desktop/aa379295%28v=vs.85%29.aspx)
-->
GetTokenInformation (http://msdn.microsoft.com/en-us/library/windows/desktop/aa446671%28v=vs.85%29.aspx)
с TokenInformationClass=TokenUser
-->
Получили структуру TOKEN_USER (http://msdn.microsoft.com/en-us/library/windows/desktop/aa379634%28v=vs.85%29.aspx), в ней - SID_AND_ATTRIBUTES (http://msdn.microsoft.com/en-us/library/windows/desktop/aa379595%28v=vs.85%29.aspx), а внутри неё - SID (http://msdn.microsoft.com/en-us/library/windows/desktop/aa379594%28v=vs.85%29.aspx).
-->
LookupAccountSid (http://msdn.microsoft.com/en-us/library/windows/desktop/aa379166%28v=vs.85%29.aspx)
Из lpName выдираем имя аккаунта.
Записан
virtual_root
Гость
« Ответ #6 : Август 13, 2012, 22:17 »

Спасибо большое буду пробовать вашу идею))
Записан
Bepec
Гость
« Ответ #7 : Август 14, 2012, 06:53 »

Помоему достаточно пихнуть программку в виде службы.
Если каждый пользователь заходит под своим логином-паролем, то их спокойно можно изъять посредством переменной среды %username%.
Записывать в виде непрерывного журнала для всех.
А дальше уже информацию фильтровать по пользователям.

PS Serr500 - зачем такие сложности? Улыбающийся
Записан
Serr500
Гость
« Ответ #8 : Август 14, 2012, 08:17 »

Помоему достаточно пихнуть программку в виде службы.
А её в любом случае пихать в виде службы. Под аккаунтом обычного пользователя какая-то из функций работы с токенами, насколько я помню, обламывается из-за недостатка привилегий. Служба должна будет работать под учёткой (LOCAL)SYSTEM.

Если каждый пользователь заходит под своим логином-паролем, то их спокойно можно изъять посредством переменной среды %username%. Записывать в виде непрерывного журнала для всех.
Переменная USERNAME имеет разные значения под разными аккаунтами. Соответственно, программа всегда будет видеть только имя пользователя, под которым запущена сама. Кроме того, это не решает проблему определения
что эту программу запустил один пользователь, другую другой.
Моя идея в том, чтобы мониторить процессы и при появлении нового таким образом определять пользователя.

PS Serr500 - зачем такие сложности? Улыбающийся
Просили идею... Пришло в голову именно это. Метод получения пользователя, запустившего процесс. Да и, вроде, не так уж сложно. Для WinAPI это вообще считается элементарным вариантом. Там "простыня" на 200 строк - вполне нормальное явление.
Записан
Bepec
Гость
« Ответ #9 : Август 14, 2012, 08:44 »

Та никто не спорит Веселый Там и функции с 9 параметрами - норма.

Можно вообще пойти по пути непротивления - сделать тупо программку-приёмщик данных. А при входе любого пользователя запускать для каждого свою программку-логер. В результате будет тот же результат, что и с токенами Веселый

PS ненавижу winApi простыни. Особенно если они чужие и в них необходимо разобраться :/
Записан
Serr500
Гость
« Ответ #10 : Август 14, 2012, 09:03 »

Можно вообще пойти по пути непротивления - сделать тупо программку-приёмщик данных. А при входе любого пользователя запускать для каждого свою программку-логер.
Можно и так. Но пользователь может её и убить. Системный сервис защищён лучше. Некоторые и с правами админа убить невозможно.
Записан
Bepec
Гость
« Ответ #11 : Август 14, 2012, 09:35 »

Есть пара способов скрытия, но есть и более крутая фишка - при выключении процесса, инициализировать выход из системы Веселый

Ну или посыл сигнала тревоги => в кабинете админа загорается красная лампочка, выезжает железный шкаф. Моторы, надсадно гудя, распахивают бронированные дверцы и на ложе из красного бархата появляется она - лопата из морёного дуба. А на ней надпись - "Любимым пользователям от злого админа!". И высвечивается месторасположение нарушителя + полное досье.
И кара настигнет нарушителя! И наш герой админ обретёт славу.
Записан
virtual_root
Гость
« Ответ #12 : Август 14, 2012, 09:57 »

Мне понравилась и идея
Цитировать
Можно вообще пойти по пути непротивления - сделать тупо программку-приёмщик данных. А при входе любого пользователя запускать для каждого свою программку-логер.
Получается мне нужно, как раньше я ловила, ловить вход и выход из системы? по нему получаю имя пользователя и уже под ним сохраняю собранные данные. и мне нужно под каждым пользователем запускать мою службу ?
Записан
Serr500
Гость
« Ответ #13 : Август 14, 2012, 10:07 »

Да. Автозапуск при входе в систему. Но учтите возможность "убийства" процесса продвинутым пользователем.
Записан
Bepec
Гость
« Ответ #14 : Август 14, 2012, 10:23 »

Лопата из морёного дуба спасёт.

А так - надо запретить пользователям вообще диспетчер задач. Нефиг им там ковыряться Веселый

PS хотя от профессионала очень сложно защиту сделать Веселый Практически нереально.

PPS ещё стоит учесть возможность "защищённой клавиатуры". У многих антивирусняков такая появилась Улыбающийся Там фиг перехватишь хуками.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 23.