|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июн 2, 2004 03:07:24 Hi! Есть у меня функция - пробегается по списку процессов и всех кого может убивает. Раньше все было хорошо. Вышла Каза новой версии - не могу его срубить :( Я администратор на машинке, получаю права "SeDebugPrivilege", ищу kazaa.exe и пытаюсь убить, но все равно на OpenProcess для казы возврашает 5 ( access denied). Может какая еще привилегия нужна? Схема работы такая: AdjustTokenPrivileges - получаю привилегии ( возвращает ERROR_SUCCESS) Ищу процесс с помощью CreateToolhelp32Snapshot Убиваю процесс invoke OpenProcess, PROCESS_TERMINATE , 1, [uProcess.th32ProcessID] ВОт тут-то мне и говорит ACCESS_DENIED Если кто меня научит вставлять сюда код в нормальном виде - пришлю всю функцию, вещь-то полезная :). Кстати, систему валит в синий экран "на ура" если убивать все подряд |
|
|
Дата: Июн 2, 2004 03:49:35 · Поправил: Toxic Дык кто ж в здравом рассудке казой будет пользоваться? Ставь Kazaa Lite K++. Она бесплатная, без шпионской начинки и имеет много дополнительных фич. |
|
|
Дата: Июн 2, 2004 10:34:49 Попробуй с флажками поиграть. Пишут, что можно любой флаг комбинировать с флагом STANDARD_RIGHTS_REQUIRED, только зачем он - узнать не удалось. Но попробуй с ним, есть мнение, что может помочь. А ты уверен, что правильно нашел ID процесса? Ошибка такая возможна при обращении к несуществующему процессу. |
|
|
Дата: Июн 2, 2004 12:29:30 surfcontrol Если ты ничего не пропустил, то посмотри вот эту тему: Как противостоять TerminateProcess, узнаешь для себя много нового. Если же пропустил, потому что считал, что это и дуракам понятно, то попробуй для начала проверить, работают ли стандартные утилиты - taskkill из ResourceKit для Win2K, kill для WinXP, плагин ProcessList из FAR Manageer'а... n0p Проверять лень, но мне кажется, что при обращении к несуществующему процессу должна получаться ошибка 2 (file not found). |
|
|
Дата: Июн 2, 2004 21:59:02 Спасибо за ответы. Вчера покопался еще пару часовю Вотчто выяснил: 1. Таск манагер убивает казу легко. 2. Про "неуничтожаемые процессы" - читал, сам хочу такой сделать, похоже каза не из них 3. Написал програмку - убивает казу, если ее запускаешь из эксплорера. 4. Если Я запускаю эту же программу из своей программы, то каза остается жить :( 5. Если я в код своей программы вставляю функцию убийства, то она тоже не убивает казу :( Сделал вывод, что Эксплорер как-то "не так запускает" программу. Вернее я ее запускаю не так. Я использую такой код запуска ( как параметр - имя запускаемой проги) RunExe proc lpname:DWORD, mode:BOOL LOCAL startInfo:STARTUPINFO LOCAL processI: PROCESS_INFORMATION LOCAL hProc : DWORD invoke GetStartupInfo,ADDR startInfo invoke CreateProcess,lpname, NULL,NULL,NULL,FALSE,\ NORMAL_PRIORITY_CLASS,\ NULL,NULL,ADDR startInfo,ADDR processI .if eax== 0 mov eax, -1 ret .endif mov hProc, eax .if mode== TRUE invoke WaitForSingleObject, hProc, INFINITE .endif invoke CloseHandle, hProc xor eax, eax ret RunExe endp Сейчас буду смотреть в сторону CreateProcess, хотя знаний мало :) P.S. Другие программы ( фар, ИЕ, ....) срубаются в легкую.... |
|
|
Дата: Июн 3, 2004 02:08:28 Всё. Извините за беспокойство (сами мы не местные и т.д.) Дело в том, что для получения привилегий использовал глобальную переменные, которые также использовались в другой функции для получения привилегии на перезагрузку. Как только сделал все их локальными - заработало. |