Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] Народ! Кто-нить писал дрова под винды???? 11.08.01 16:25
Автор: Ruslan Статус: Незарегистрированный пользователь
|
ЛЮДИИИИ!!!! Если кто-нить писал дрова под винды, то у меня есть вопрос - чем они отличаются от обычного Win32-приложения.
Просто необходимо написать прогу, которая будет следить в фоновом режиме, возможно кольцо 0-го уровня, за выполнением программы.
Нужно для отслеживания закрытия приложения и его рестарта, а также если апп выдает, что он Not Responded, чтобы драйвер или прога, я не знаю точно, его рестартил (в смысле апп).
|
|
[Win32] Народ! Кто-нить писал дрова под винды???? 11.08.01 17:40
Автор: Glory <Mr. Glory> Статус: Elderman
|
> ЛЮДИИИИ!!!! Если кто-нить писал дрова под винды, то у меня > есть вопрос - чем они отличаются от обычного > Win32-приложения. Тем что драйвер имеет полный доступ к аппаратным ресурсам, а приложение - нет. То есть драйвер работает от учетной записи NTAUTHORITY/SYSTEM, а прога от имени текущего юзера
> Просто необходимо написать прогу, которая будет следить в > фоновом режиме, возможно кольцо 0-го уровня, за выполнением > программы. > Нужно для отслеживания закрытия приложения и его рестарта, > а также если апп выдает, что он Not Responded, чтобы > драйвер или прога, я не знаю точно, его рестартил (в смысле > апп). Для этого драйвер необязательно писать, можно обычной прогой сделать.
|
| |
[Win32] Народ! Кто-нить писал дрова под винды???? 11.08.01 19:20
Автор: Ruslan Статус: Незарегистрированный пользователь
|
> Для этого драйвер необязательно писать, можно обычной > прогой сделать. Слушай, если знаешь как, то хотелось бы услышать...
И все таки почему необязательно драйвер писать?
|
| | |
Исходник (внутри). 12.08.01 17:37
Автор: Glory <Mr. Glory> Статус: Elderman
|
Если я тебя правильно понял, прога должна следить за другой прогой и если та закрывается - стартовать ее заново. Вот исходник подобной программы, которая стартует calc.exe и проверяет, не закрыт ли он. Если закрыт - стартует его опять. Реализация на VC++ 6.0, Win32 Application.
Конечно реализованный здесь алгоритм не защищен, то есть можно закрыть процесс этой программы, а потом и calc. Для обеспечения защиты необходимо реализовать программу в виде потока, который приаттачивает себя к другому процессу (лучше к сервису, напр. к csrss.exe).
==============================================================
#include "stdafx.h"
#include <windows.h>
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
STARTUPINFO info;
info.cb = sizeof(STARTUPINFO);
info.cbReserved2 = NULL;
info.lpReserved = NULL;
info.lpReserved2 = NULL;
info.dwFlags = STARTF_USESHOWWINDOW;
info.wShowWindow = SW_SHOW;
info.lpDesktop = NULL;
info.lpTitle = NULL;
PROCESS_INFORMATION *pinfo = new PROCESS_INFORMATION;
pinfo->dwProcessId = -1;
while (1)
{
if (!OpenProcess(PROCESS_QUERY_INFORMATION, false, pinfo->dwProcessId))
if (!CreateProcess("c:\\winnt\\system32\\calc.exe", NULL, NULL, NULL, true, NORMAL_PRIORITY_CLASS, NULL, NULL, &info, pinfo))
{
MessageBox(NULL, "Can not create process", "Error", MB_OK + MB_ICONHAND);
return -1;
}
Sleep(1000);
}
delete pinfo;
return 0;
}
|
| | |
[Win32] Народ! Кто-нить писал дрова под винды???? 12.08.01 12:13
Автор: Glory <Mr. Glory> Статус: Elderman
|
> Слушай, если знаешь как, то хотелось бы услышать... Надо попробовать написать что-нить в таком духе. Если получится - напишу исходник.
> И все таки почему необязательно драйвер писать? Драйвер необязательно писать потому, что не надо иметь прямого доступа к аппаратуре для того чтобы закрыть какое-либо приложение. Вот подумай сам - грузишь ты операционку, запускается шелл, который "связывает" тебя с операционкой (в виндах это Explorer.exe). Из шелла ты можешь запускать и закрывать приложения, которые в принципе закрывает шелл. Но ведь explrorer работает не как драйвер, а как обычная прога...
|
| | | |
[Win32] Народ! Кто-нить писал дрова под винды???? 12.08.01 22:02
Автор: Ruslan Статус: Незарегистрированный пользователь
|
> > Слушай, если знаешь как, то хотелось бы услышать... > Надо попробовать написать что-нить в таком духе. Если > получится - напишу исходник. > > И все таки почему необязательно драйвер писать? > Драйвер необязательно писать потому, что не надо иметь > прямого доступа к аппаратуре для того чтобы закрыть > какое-либо приложение. Вот подумай сам - грузишь ты > операционку, запускается шелл, который "связывает" тебя с > операционкой (в виндах это Explorer.exe). Из шелла ты > можешь запускать и закрывать приложения, которые в принципе > закрывает шелл. Но ведь explrorer работает не как драйвер, > а как обычная прога... Привет! Так вот задача и стоит как раз написать свой шелл. Эксплорер не катит, по причине низкой безопасности. По правде сказать перспектива писать свой шелл - не очень, но другого пути я не нашел. Хотя можно заменить 98 форточки на 2000, но на это не пойдет начальство. Слушай, если у тебя есть еще идеи буду очень признателен...
P.S. Спасибо за исходник.
|
| | | | |
Ставь Win2k. 14.08.01 12:18
Автор: Glory <Mr. Glory> Статус: Elderman
|
> Хотя можно заменить 98 форточки на > 2000, но на это не пойдет начальство. Почему? Ты начальству то скажи, что в Win2k и безопасность в 100 раз выше, и устойчивость и вообще Win98 операционкой то трудно назвать.
Поэтому ставишь Win2k, в ключе HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\ создаешь значение RestrictRun=0x00000001 (типа DWORD), потом создаешь в этом ключе ключ RestrictRun и прописываешь туда значения типа "1" = notepad.exe, "2" = mspaint.exe, etc.
Вообще, для повышения безопасности можно кучу всяких возможностей запретить, ограничить доступ к реестру и т. д.
В любом случае, настроить систему на приемлемый уровень безопасности будет проще, чем писать собственный шелл. Просто я свой шелл как-то писал, и знаю какой это гимор.
|
| | | | | |
Ставь Win2k. 15.08.01 03:09
Автор: Ruslan Статус: Незарегистрированный пользователь
|
Да я уже говорил тысячу раз!!!! Даже не одну просто понимаешь 200 компов!!! и на все лицензию покупать... ну сам понимаешь...
Без лицензии они не будут работать!
Вот в этом и есть вся проблема. Поэтому придется писать свой шелл.
Блин, как это не противно....
|
| | | | | | |
Там Microsoft вроде предоставляет какие-то групповые лицензии (то есть лицензия на 200 компов должна быть гораздо дешевле чем 200 лицензий). 15.08.01 11:50
Автор: Glory <Mr. Glory> Статус: Elderman
|
|
|
|