Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не могу убить процес, юзер из группы админов 
:(
    Опции темы
man2002ua
Дата 26.9.2003, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 943
Регистрация: 12.11.2002
Где: Киев

Репутация: нет
Всего: 2



ты под гостем?


--------------------
"Нет ничего более постоянного, чем временное"
PM MAIL   Вверх
NULL
Дата 26.9.2003, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 22.8.2003

Репутация: нет
Всего: нет



man2002ua, права не резаны админ. таскман убивает сис процессы =(((

PM MAIL ICQ   Вверх
man2002ua
Дата 26.9.2003, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 943
Регистрация: 12.11.2002
Где: Киев

Репутация: нет
Всего: 2



Приведи еще раз код


--------------------
"Нет ничего более постоянного, чем временное"
PM MAIL   Вверх
NULL
Дата 26.9.2003, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 22.8.2003

Репутация: нет
Всего: нет



вот так выглядит мой код сейчас
когда пытаюсь получить право на дебаг он перестает убивать кале лиьо процессы вобще
Код

#include <iostream.h>
#include <windows.h>
#include <TLHELP32.h>

//BOOL SetPrivilege(HANDLE hToken, LPCTSTR Privilege, BOOL bEnablePrivilege);
BOOL SetPriv(HANDLE hProc);

int main(){
HANDLE hSnap;
PROCESSENTRY32 ProcEntry;

hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(!hSnap){
 cout << "can't load tool help" << endl;
 return 0;
}

BOOL ok;
char buff[20] = "hh.exe";//killing msdn

if(Process32First(hSnap, &ProcEntry)){
 if(strcmp(buff, ProcEntry.szExeFile) == 0) ok = TerminateProcess(hSnap, 0);
 if(ok) cout << buff << " terminated!" << endl;
 HANDLE hProc = NULL;
 while(Process32Next(hSnap, &ProcEntry)){
  if(strcmp(buff, ProcEntry.szExeFile) == 0){
   
   hProc = OpenProcess(PROCESS_TERMINATE, TRUE, ProcEntry.th32ProcessID);
   ///SetPrivilege(hProc, "SeRemoteShutdownPrivilege", TRUE);
   if(!SetPriv(hProc)){
    cout << "SetPrivelege failed!" << endl;
    return 0;
   }
   if(hProc){
    ok = FALSE;    
    ok = TerminateProcess(hProc, 0);
    CloseHandle(hProc);
   }    
  }
  if(ok) cout << buff << " terminated!" << endl;
 }
 
}
CloseHandle(hSnap);
return 0;
}

/*BOOL SetPrivilege(HANDLE hToken,
     LPCTSTR Privilege,
     BOOL bEnablePrivilege){
TOKEN_PRIVILEGES tp;
LUID luid;
TOKEN_PRIVILEGES tpPrevious;
DWORD cbPrevious=sizeof(TOKEN_PRIVILEGES);

if(!LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &luid)) return FALSE;

tp.PrivilegeCount = 1;
tp.Privileges[0].Luid = luid;
tp.Privileges[0].Attributes = 0;

AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), &tpPrevious, &cbPrevious);

if (GetLastError() != ERROR_SUCCESS) return FALSE;

tpPrevious.PrivilegeCount = 1;
tpPrevious.Privileges[0].Luid = luid;
if(bEnablePrivilege) {
 tpPrevious.Privileges[0].Attributes |= (SE_PRIVILEGE_ENABLED);
}
else {
 tpPrevious.Privileges[0].Attributes ^= (SE_PRIVILEGE_ENABLED &
 tpPrevious.Privileges[0].Attributes);
}
AdjustTokenPrivileges(hToken, FALSE, &tpPrevious, cbPrevious, NULL, NULL);

if (GetLastError() != ERROR_SUCCESS) return FALSE;

return TRUE;
}*/

BOOL SetPriv(HANDLE hProc){
LUID luid;
TOKEN_PRIVILEGES tp;
HANDLE hToken;

if(!OpenProcessToken(hProc, TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hToken)) return FALSE;
if(!LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &luid)){
 CloseHandle(hToken);
 return FALSE;
}
tp.PrivilegeCount = 1;
tp.Privileges[0].Luid = luid;
tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
return AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), NULL, NULL);
}

PM MAIL ICQ   Вверх
man2002ua
Дата 26.9.2003, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 943
Регистрация: 12.11.2002
Где: Киев

Репутация: нет
Всего: 2



Ты привилегии назначаешь процессу, к-й грохаешь smile.gif)) ну насмешил, молодец smile.gif) Своему, вообще-то, надо назначить их, чтобы иметь права грохать их.
if(!SetPriv(GetCurrentProcess())){ ...

А что обозначает конструкция
if(strcmp(buff, ProcEntry.szExeFile) == 0) ok = TerminateProcess(hSnap, 0); // hSnap это же дескриптор образа и все...



Это сообщение отредактировал(а) man2002ua - 26.9.2003, 16:50


--------------------
"Нет ничего более постоянного, чем временное"
PM MAIL   Вверх
mr.DUDA
Дата 26.9.2003, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



И ещё раз обращаю внимание, что "hh.exe" не пройдет - нужен полный путь к грохаемой EXE'шке, либо сравнение по маске или strncmp.


--------------------
user posted image
PM MAIL WWW   Вверх
NULL
Дата 29.9.2003, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 22.8.2003

Репутация: нет
Всего: нет



mr.DUDA, ну я ж впринципе strncmp и юзаю.
PM MAIL ICQ   Вверх
mr.DUDA
Дата 29.9.2003, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Цитата
mr.DUDA, ну я ж впринципе strncmp и юзаю

Вот твой код
Код
if(strcmp(buff, ProcEntry.szExeFile) == 0)

сравнивает строки полностью. Если в "ProcEntry.szExeFile" будет что-то вроде "c:\Program Files\Common Files\Microsoft Shared\Help\hh.exe", а ты сравнишь с "hh.exe", который в "buff" лежит - что мы получим ? Что строки не равны.

ЗЫ, а ещё такую офигительную прогу написал... не мог уже со строками разобраться smile.gif


--------------------
user posted image
PM MAIL WWW   Вверх
NULL
Дата 30.9.2003, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 22.8.2003

Репутация: нет
Всего: нет



[QUOTE]ЗЫ, а ещё такую офигительную прогу написал... не мог уже со строками разобраться [CODE]
лесно, лесно smile.gif
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1225 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.