Перейти к содержанию

Запуск процессов из под службы


Рекомендуемые сообщения

Помогите пожалуйста!

 

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

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

 

1) Речь идет о Windows XP

2) У меня есть небольшой сервис (запущенный под систем эккаунтом), который является пускачем другой программы (запускает эту программу в сессии пользователя, но под System эккаунтом) которая в свою очередь является UI частью программы.

3) По всей видимости если на компьютерах стоит антивирус касперского (по крайней мере версия 5.0) происходит такое чудо, что пускач не может пускануть эту программу (коды ошибок к сожалению не могу дать, в логах системных ничего нет).

4) всякие доверенные программы и так далее не помогают.

5) Я обратил внимание, что даже другие сервисы, которые должны быть запущены под SYSTEM эккаунтом вроде как под ним и не запущены, по крайней мере в диспетчере задач имя пользователя у них пустое

6) данный способ работает уже много где и под Windows XP и под Windows Vista и под Windows 7 и с антивирусами других производителей, но ничего похожего нет.

 

Что делать? ААА :acute: жду... спасибо.

 

п.с. поподробнее здесь приведу код, который запускает процесс тут инвоки Win32 апишных функций

 

public static int? CurrentSessionID()

{

int dwSessionId = 0;

IntPtr WTS_CURRENT_SERVER_HANDLE = IntPtr.Zero;

IntPtr pSessionInfo = IntPtr.Zero;

int dwCount = 0;

 

WTSEnumerateSessions(WTS_CURRENT_SERVER_HANDLE, 0, 1, ref pSessionInfo, ref dwCount);

 

Int32 dataSize = Marshal.SizeOf(typeof(WTS_SESSION_INFO));

 

Int32 current = (int)pSessionInfo;

for (int i = 0; i < dwCount; i++)

{

WTS_SESSION_INFO si = (WTS_SESSION_INFO)Marshal.PtrToStructure((System.IntPtr)current, typeof(WTS_SESSION_INFO));

if (WTS_CONNECTSTATE_CLASS.WTSActive == si.State)

return si.SessionID;

 

current += dataSize;

}

return null;

}

 

 

 

public static bool StartProcessAndBypassUAC(String applicationName, out PROCESS_INFORMATION procInfo)

{

uint winlogonPid = 0;

IntPtr hUserTokenDup = IntPtr.Zero, hPToken = IntPtr.Zero, hProcess = IntPtr.Zero;

procInfo = new PROCESS_INFORMATION();

 

var sss = CurrentSessionID();

if (sss == null)

return false;

int dwSessionId = sss.Value;

 

Process[] processes = Process.GetProcessesByName("winlogon");

foreach (Process p in processes)

{

if ((uint)p.SessionId == dwSessionId)

{

winlogonPid = (uint)p.Id;

}

}

 

hProcess = OpenProcess(MAXIMUM_ALLOWED, false, winlogonPid);

 

if (!OpenProcessToken(hProcess, TOKEN_DUPLICATE, ref hPToken))

{

CloseHandle(hProcess);

return false;

}

 

SECURITY_ATTRIBUTES sa = new SECURITY_ATTRIBUTES();

sa.Length = Marshal.SizeOf(sa);

 

if (!DuplicateTokenEx(hPToken, MAXIMUM_ALLOWED, ref sa, (int)SECURITY_IMPERSONATION_LEVEL.SecurityIdentification, (int)TOKEN_TYPE.TokenPrimary, ref hUserTokenDup))

{

CloseHandle(hProcess);

CloseHandle(hPToken);

return false;

}

 

STARTUPINFO si = new STARTUPINFO();

si.cb = (int)Marshal.SizeOf(si);

si.lpDesktop = @"winsta0\default";

 

int dwCreationFlags = NORMAL_PRIORITY_CLASS | CREATE_NEW_CONSOLE;

 

bool result = CreateProcessAsUser(hUserTokenDup, // client's access token

null, // file to execute

applicationName, // command line

ref sa, // pointer to process SECURITY_ATTRIBUTES

ref sa, // pointer to thread SECURITY_ATTRIBUTES

false, // handles are not inheritable

dwCreationFlags, // creation flags

IntPtr.Zero, // pointer to new environment block

null, // name of current directory

ref si, // pointer to STARTUPINFO structure

out procInfo // receives information about new process

);

 

CloseHandle(hProcess);

CloseHandle(hPToken);

CloseHandle(hUserTokenDup);

 

return result; }

Ссылка на комментарий
Поделиться на другие сайты

Здравствуйте!

Добро пожаловать на форум!

 

Если проблемы с версией антивируса 5.0, дальше говорить смысла нет. Она уже давно не поддерживается (и, по идее, даже работать должна с трудом :acute:), даже корпоративная.

Ссылка на комментарий
Поделиться на другие сайты

Здравствуйте!

Добро пожаловать на форум!

 

Если проблемы с версией антивируса 5.0, дальше говорить смысла нет. Она уже давно не поддерживается (и, по идее, даже работать должна с трудом :)), даже корпоративная.

 

то есть вы хотите сказать, что если лицензия куплена до августа 2010 года, то продукт не поддерживается? :acute:

 

:ninja:

Ссылка на комментарий
Поделиться на другие сайты

Нет. Есть таблица поддержки продуктов: http://support.kaspersky.ru/support/support_table

 

ну на самом деле с современными версиями этот трюк не проходит, так что может дело не только в версии касперского. То есть на помощь мне не сильно надеяться?

Ссылка на комментарий
Поделиться на другие сайты

Давайте так

 

Что говорит по этому поводу КИС2010?

 

мне к сожалению говорит не КАВ и не КИС, мне говорят по телефону разъяренные пользователи :acute:

 

1) мне вот не понятно вот что, я говорю службе запускаться из под эккаунта администратора

2) запускаю службу

3) в диспетчере задач не вижу чтобы процесс службы запускался под тем эккаунтом который я указал, имя пользователя пустое

 

сейчас у меня к сожалению под рукой только удаленный стол к месту где стоит 5.0

Ссылка на комментарий
Поделиться на другие сайты

Поставьте себе на комп триалку КИС2010 и проверьте

 

Ваше же программа , а не пользователей.

 

 

3) в диспетчере задач не вижу чтобы процесс службы запускался под тем эккаунтом который я указал, имя пользователя пустое

Можно увидеть скриншот?

Ссылка на комментарий
Поделиться на другие сайты

поставил кис на свежую машину XP

вижу такой же скриншот про эккаунты.... но служба смогла запустить процесс и всё работает как надо (это хорошо) :acute:

 

дистрибутив

kis9.0.0.736ru.exe

Ссылка на комментарий
Поделиться на другие сайты

мне к сожалению говорит не КАВ и не КИС, мне говорят по телефону разъяренные пользователи :acute:

 

здесь дело обстоит так:

 

Если какое то приложение переходит в разряд неподдерживаемых, то заведомо к этому сроку лицензий с оставшимся сроком действия остаться уже не должно. Именно для того, чтобы не звонили разъяренные пользователи. Т.е. скорее всего у вас лицензия на более свежую корпоративную версию, но она по каким то причинам используется с более старой 5.0. После (а на самом деле как я уже написал - гораздо заранее ) перевода приложения в разряд неподдерживаемых все активности с ней связанные (не только исправления ошибок, но и продажа ключей) полностью прекращаются. Вы и ваши пользователи имеют право перейти бесплатно на более новые версии приложений, если имеется соотв. действующая лицензия.

Ссылка на комментарий
Поделиться на другие сайты

здесь дело обстоит так:

 

Если какое то приложение переходит в разряд неподдерживаемых, то заведомо к этому сроку лицензий с оставшимся сроком действия остаться уже не должно. Именно для того, чтобы не звонили разъяренные пользователи. Т.е. скорее всего у вас лицензия на более свежую корпоративную версию, но она по каким то причинам используется с более старой 5.0. После (а на самом деле как я уже написал - гораздо заранее ) перевода приложения в разряд неподдерживаемых все активности с ней связанные (не только исправления ошибок, но и продажа ключей) полностью прекращаются. Вы и ваши пользователи имеют право перейти бесплатно на более новые версии приложений, если имеется соотв. действующая лицензия.

 

за информацию спасибо, но к сожалению замена версии антивируса в учреждении не входит в нашу компетенцию, наши люди в учреждении устанавливают оборудование и софт.

Ссылка на комментарий
Поделиться на другие сайты

А там точно стоит корпоративная 5ка?

тогда надо тренироваться на корпоративной 6 (6.0.3.837 или 6.0.4.14хх)

 

Да, кстати - какой мощности компы там? Если известно

Ссылка на комментарий
Поделиться на другие сайты

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Похожий контент

    • SK_
      От SK_
      Служба "kladminserver" остановлена из-за ошибки. #1950 (208) Generic db error: "208 'Invalid object name 'sys.database_scoped_configurations'.{42S02};' LastStatement='EXEC upgd_set_maxdop'"  
      cервер на win 8.1
      SQL Express - 10.50.4042.0
    • in-digp
      От in-digp
      Здравствуйте!
       
      Прошу помочь с восстановлением запуска службы BFE
       
      https://support.kaspersky.ru/common/error/installation/11099#error5
       
      Данная инструкция не помогает, есть ли другие способы восстановления ?
       
       

    • mamruc
      От mamruc
      Здравствуйте!
      Физически помер сервер с установленным KSC14, есть бекап сервера. На новом сервере устанавливал  KSC с новой базой, при подключении через Веб морду ничего не отображает, через MMC пишет:
      «Операция не может быть выполнена, так как программа инициализируется или деинициализируется»
      Такой статус еже несколько часов.
    • xSmashQQQ
      От xSmashQQQ
      Добрый день. Прошу помощи, переименовались файлы в службах, wuauserv_bkp, UsoSvc_bkp, BITS_bkp, WaaSMedicSvc_bkp, dosvc_bkp. wuauserv_bkp уже исправил с помощью 1 сайта, позже обнаружил UsoSvc_bkp. Я все проверил вчера на вирусы, а сейчас нашел вот это. Я начал исправлять ошибку с обновление виндовс в параметрах по видеороликам и вот наткнулся что у меня файлы переименованы в _bkp. Решил обратиться к вам за помощью.
    • Lotte
      От Lotte
      Добрый день.
       
      Помогите подскажите возможно ли так сделать? 
       
      Читал статью Запрет запуска объектов установил веб консоль на сервер там же от куда Касперский устанавливается на рабочие станции, подключился под доменным админом и дальше не могу понять.
      Пытаюсь новую политику создать и страница зависает.
       

       

       
      Kaspersky Security Center 13.2 Web Console: 13.2.571
      Версия Сервера администрирования: 13.2.0.1511
×
×
  • Создать...