Сейчас на форуме: _MBK_, Adler (+5 невидимых)

 eXeL@B —› Вопросы новичков —› Повисший процесс ничем не снимается.
Посл.ответ Сообщение

Ранг: 17.4 (новичок)
Активность: 0.020
Статус: Участник

Создано: 05 мая 2011 22:25 · Поправил: Usulgurt
· Личное сообщение · #1

Есть ли какие-нибудь программы помощнее для того, чтобы снять его всё-таки?

Качал из топ гугла всякие прожки. Не помогли.
Завис он когда я к нему приатачился.
Но не в этом суть.
А то что уже надоели процессы в винде, которые не снимаются через стандартные средства съёма.

Суть истории:

Скажу так мне надо было отладить одну DLL загружаемую перед процессом через QueueUserAPC.
Которую я пустил сначала в холостой ход на точке останова через while(1) Sleep(1); и потом приатачился к ней.
После отладки я решил терминировать этот брак.
А сам процесс возможно даже не успел загрузиться.
Но процесс отказывался...сниматься.



Ранг: 60.6 (постоянный), 87thx
Активность: 0.060
Статус: Участник

Создано: 05 мая 2011 22:37
· Личное сообщение · #2

Обычно все нормально снимается, особенно с помощью программ. В каком состоянии находятся потоки процесса, не Wait:Executive часом?



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 05 мая 2011 22:46 · Поправил: ELF_7719116
· Личное сообщение · #3

Процессы просто так не вешаются
Вполне вероятно что это знак того, что на компе руткит(ы).
А прочее: я знаю случаи когда на борту X-Fi SB с одной малоизвестной игрушкой вешала наглухо ее процесс. Но там все было из-за ошибки самих разработчиков игры с кодом для аппаратного ускорения звука.



Ранг: 222.2 (наставник), 115thx
Активность: 0.140.01
Статус: Участник

Создано: 05 мая 2011 22:52
· Личное сообщение · #4

Rootkit Unhooker 3.8 SR2 (для x86 систем, работает на уровне режима ядра) - http://www.kernelmode.info/ARKs/RkU3.8.388.590.rar
Process Lasso (для x86 и x64 систем, работает на уровне режима пользователя) - http://www.bitsum.com/prolasso.php

-----
все багрепорты - в личные сообщения




Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 05 мая 2011 23:02
· Личное сообщение · #5

Usulgurt пишет:
А то что уже надоели процессы в винде, которые не снимаются через стандартные средства съёма.

Поставь антивирус.
Киляй непонятные процессы из автозапуска.
Переустанови винду (и ни когда не ставь сборки, даже свои).
и тд.
А по теме; гугли имена своих висячих, и скорее всего много об этом узнаешь...



Ранг: 17.4 (новичок)
Активность: 0.020
Статус: Участник

Создано: 05 мая 2011 23:40 · Поправил: Usulgurt
· Личное сообщение · #6

Vovan666 пишет:
Поставь антивирус.

ELF_7719116 пишет:
Вполне вероятно что это знак того, что на компе руткит(ы).


Так я же говорю идёт отладка собственной программы.

Kaimi пишет:
В каком состоянии находятся потоки процесса, не Wait:Executive часом?

Ну думаю что Wait:Executive.
А какой прогой узнать?

HandMill пишет:
Rootkit Unhooker 3.8 SR2 (для x86 систем, работает на уровне режима ядра) - http://www.kernelmode.info/ARKs/RkU3.8.388.590.rar

Не помог.




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 06 мая 2011 00:13
· Личное сообщение · #7

Вопрос не в тему:
Если в Olly ставишь бряк на CreateFileA, он сработает при вызове из потока? Или только из текущего процесса?

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





Ранг: 127.3 (ветеран), 44thx
Активность: 0.090
Статус: Участник

Создано: 06 мая 2011 00:25
· Личное сообщение · #8

Isaev пишет:
Если в Olly ставишь бряк на CreateFileA, он сработает при вызове из потока?

сработает при всех вызовах из всех потоков процесса

-----
zzz


| Сообщение посчитали полезным: Isaev


Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 06 мая 2011 00:28
· Личное сообщение · #9

ELF_7719116 пишет:
Вполне вероятно что это знак того, что на компе руткит(ы).

Может и вероятно, вопрос насколько...

У меня консольки, бывает, виснут, исчезают из списка процессов, а потому их никак и ни чем не снять. Но при этом окна с консолями также благополучно перемещаются по экрану, сворачиваются и восстанавливаются. До csrss всё никак руки не дойдут, чтоб разобраться...

-----
IZ.RU




Ранг: 60.6 (постоянный), 87thx
Активность: 0.060
Статус: Участник

Создано: 06 мая 2011 02:30 · Поправил: Kaimi
· Личное сообщение · #10

Usulgurt пишет:
Ну думаю что Wait:Executive.
А какой прогой узнать?


Process Explorer. На семерке сталкивался с этой проблемой, способа завершить такой поток так и не нашел



Ранг: 17.4 (новичок)
Активность: 0.020
Статус: Участник

Создано: 06 мая 2011 04:01 · Поправил: Usulgurt
· Личное сообщение · #11

Kaimi пишет:
способа завершить такой поток так и не нашел


Так это даже не поток, а процесс.
У меня XPSP3
Может отлаживаемый процесс после аттача вообще становится защищённым от кила.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 06 мая 2011 05:54
· Личное сообщение · #12

Usulgurt пишет:
Может отлаживаемый процесс после аттача вообще становится защищённым от кила.

Если стоят плагины для оли типа фантома то да.

-----
Yann Tiersen best and do not fuck




Ранг: 369.8 (мудрец), 400thx
Активность: 0.390
Статус: Участник

Создано: 06 мая 2011 07:42
· Личное сообщение · #13

Рекомендую ProcessHacker. Это грамотно написанная опенсорсная тулза умеющая килять "защищенные" процессы. Только думаю дело не в руткитах, а в том, что какой-то глючный драйвер делает KeWaitForSingleObject(Executive, KernelMode... в контексте пользовательского процесса. Возьми тулзу autoruns и посноси всякие левые дрова.

-----
PGP key <0x1B6A24550F33E44A>





Ранг: 209.5 (наставник), 42thx
Активность: 0.10
Статус: Участник
WinCE ARM M@sTeR

Создано: 06 мая 2011 08:50 · Поправил: Getorix
· Личное сообщение · #14

Я тоже все никак не могу прибить один процесс - putty.exe.
Запускаешь его, цепляешься к железке по UART, слушаешь аутпут, ВНЕЗАПНО выдергиваешь кабель, закрываешь putty, при этом окно закрывается а процесс остается. И ниче его не берет, ни TaskManager, ни ProcessExplorer, ни ProcessHacker, даже винда закрыть не может при выходе, так и висит в шатдауне. Еще и порт собака держит так что больше не подцепишься, только ребут.
Как эта апликуха может так лочить свой процесс?
Ведь если сначала putty закрыть, потом кабель выдернуть - все ништяк
Вся эта бадяга на Win7 Ultimate SP1 x64, которая установлена в BootCamp раздел и загружена через VMware.

-----
Get busy living or get busy dying ©




Ранг: 369.8 (мудрец), 400thx
Активность: 0.390
Статус: Участник

Создано: 06 мая 2011 09:16
· Личное сообщение · #15

Getorix пишет:
Как эта апликуха может так лочить свой процесс?

Наверно используется usb2com кабель или другие нестандартные драйвера? Описанное тобой - типичный симптом того, что драйвер вызывает KeWaitForSingleObject(Executive, KernelMode... обрабатывая запрос процесса, такое ожидание не может принудительно завершаться, и процесс будет висеть пока не наступит ожидаемое событие.

-----
PGP key <0x1B6A24550F33E44A>





Ранг: 209.5 (наставник), 42thx
Активность: 0.10
Статус: Участник
WinCE ARM M@sTeR

Создано: 06 мая 2011 09:26
· Личное сообщение · #16

ntldr пишет:
Наверно используется usb2com кабель или другие нестандартные драйвера?

Да не, сам кабель обычный - usb2usb, всмысле на железке UART выход уже в виде USB (че там внутри находится я не вкурсе), а дровина для него находится такая: "Silicon Labs CP210x USB to UART Bridge"

Кстати после того как запостил, решил снова покопать проблему и обнаружил что этот процесс убивается сам каким то макаром ровно через 5 минут. Мистика епт

-----
Get busy living or get busy dying ©





Ранг: 238.8 (наставник), 67thx
Активность: 0.20
Статус: Участник
CyberHunter

Создано: 06 мая 2011 09:34
· Личное сообщение · #17

Есть неплохая тулза Advanced Process Termination v4.2 - DiamondCS

KERNEL-MODE TERMINATION METHODS
Kernel-mode termination methods are the most powerful in APT's arsenal. A kernel-mode system driver is saved to \Windows\system32\drivers\apt.sys which essentially performs the termination operations at the operating system level (rather than at the higher user level like user-mode termination methods). Another advantage of kernel-mode termination is that they generally bypass any attempted user-mode API hooks..

Kernel Kill 1 - Attempts to terminate the target process by terminating each thread in the target process using the kernel-mode version of TerminateThread - ZwTerminateThread.
Main functions: ZwTerminateThread (ntoskrnl.exe)

Kernel Kill 2 - Attempts to terminate the target process by calling the kernel-mode version of TerminateProcess - ZwTerminateProcess.
Main functions: ZwTerminateProcess (ntoskrnl.exe)


USER-MODE TERMINATION METHODS
These are the more conventional termination methods. Processes are for the most part user-mode objects which is why there is such a large variety of attacks.

Kill #1 - Attempts to terminate the target process using the TerminateProcess function. This is the same as the End Process function in Windows Task Manager, but as APT aquires SeDebugPrivilege before calling TerminateProcess it is typically able to terminate more processes than Task Manager can. This is the most common method of forceful process termination.
Main functions: TerminateProcess (kernel32.dll)

Kill #2 - Attempts to terminate the target process by sending Close messages (called WM_CLOSE) to all windows in the target process. This method only works if 1) the target process has at least one window, and 2) the target process doesn't handle the WM_CLOSE message (most programs usually don't).
Main functions: SendMessage & PostMessage (WM_CLOSE) (user32.dll)

Kill #3 - Attempts to terminate the target process by sending Quit messages (called WM_QUIT) to all windows in the target process. This method only works if 1) the target process has at least one window, and 2) the target process doesn't handle the WM_QUIT message (most programs usually don't).
Main functions: SendMessage & PostMessage (WM_QUIT) (user32.dll)

Kill #4 - Attempts to terminate the target process by sending system Close messages (called SC_CLOSE) to all windows in the target process. This method only works if 1) the target process has at least one window, and 2) the target process doesn't handle the SC_CLOSE message (most programs usually don't).
Main functions: SendMessage & PostMessage (SC_CLOSE) (user32.dll)

Kill #5 - Attempts to terminate the target process by terminating every individual thread in the target process by using the TerminateThread function. When the last active thread is terminated the target process is also terminated.
Main functions: TerminateThread (kernel32.dll)

Kill #6 - Attempts to terminate the target process by creating a new thread in the context of the target process, which has a starting address (stored in the EIP register) which is the address of the ExitProcess function in kernel32.dll.
Main functions: CreateRemoteThread, ExitProcess (kernel32.dll)

Kill #7 - Attempts to terminate the target process by using the EndTask function in user32.dll. This is the same as the End Task function in Windows Task Manager.
Main functions: EndTask (user32.dll)

Kill #8 - Attempts to terminate the target process by attaching to it as a debugger, using the DebugActiveProcess function in kernel32.dll. To terminate the target process, the debugger process simply needs to terminate itself, at which point the process being debugged (the target process) is also terminated.
Main functions: DebugActiveProcess (kernel32.dll)

Kill #9 - Attempts to terminate the target process by modifying the EIP register of all existing threads so that they all point to the ExitProcess function in kernel32.dll. This is similar to Kill #3, but doesn't involve the creation of any new thread. Instead, existing threads are used.
Main functions: SetThreadContext (kernel32.dll)

Kill #10 - Attempts to terminate the target process using the undocumented WinStationKillProcess function. This method only works if the Terminal Services service is enabled.
Main functions: WinStationKillProcess (winsta.dll)

Kill #11 - Attempts to terminate the target process by loading a DLL into the process. As soon as the DLL is loaded it calls ExitProcess.
Main functions: CreateRemoteThread, LoadLibrary, ExitProcess (kernel32.dll)

Kill #12 - Unlike the other kill methods Kill #12 actually gets another process to do the termination instead of it's own apt.exe process. (You can even use the target process as the accomplice process). When this kill method is used APT will ask you for a process ID to use as the accomplice. APT will then temporarily inject a small payload into the accomplice process and create a remote thread there. The payload is simply a short segment of code which calls TerminateProcess, so it's essentially the same as Kill #1 but with the termination being performed by the process of your choice instead of apt.exe. The payload is then removed from the accomplice process.
Main functions: WriteProcessMemory, CreateRemoteThread, TerminateProcess (kernel32.dll)


CRASH METHODS
Fatally crashing a process has the same outcome as terminating it (albeit not quite as gracefully!) so it's equally important for security software to be protected against crash attacks.

Crash #1 - Attempts to fatally crash the target process by setting each page of its virtual memory to PAGE_NOACCESS.
Main functions: VirtualProtectEx (kernel32.dll)

Crash #2 - Attempts to fatally crash the target process by overwriting each page of its virtual memory with null characters (code 0).
Main functions: VirtualProtectEx, WriteProcessMemory (kernel32.dll)



SUSPENSION METHODS
Suspending a process doesn't have the same fatal outcome as terminating or crashing it, but it does render the process technically useless while it is suspended. One reason why a trojan might suspend a process rather than terminate it is so that it still looks (to the user) like the process is running - there are no visual indications that the process is suspended (except for frozen windows and controls, but they generally won't be noticed on minimized windows or system tray applications).

Suspend #1 - Attempts to freeze the target process by individually suspending all of its threads.
Main functions: OpenThread, SuspendThread (kernel32.dll)

Suspend #2 - Attempts to freeze the target process by directly calling NtSuspendProcess in ntdll.dll.
Main functions: NtSuspendProcess (ntdll.dll)



de0c_05.05.2011_EXELAB.rU.tgz - Advanced Process Termination v4.2 - DiamondCS.rar

-----
Nulla aetas ad discendum sera





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 06 мая 2011 10:08
· Личное сообщение · #18

Думаю, познавательно будет поглядеть.
http://blogs.technet.com/b/markrussinovich/archive/2005/08/17/unkillable-processes.aspx



Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 06 мая 2011 11:20
· Личное сообщение · #19

про unlocker забыли



Ранг: 369.8 (мудрец), 400thx
Активность: 0.390
Статус: Участник

Создано: 06 мая 2011 11:43
· Личное сообщение · #20

Getorix пишет:
дровина для него находится такая: "Silicon Labs CP210x USB to UART Bridge"

Вот эта дровина и виновата в глюке.

Getorix пишет:
Кстати после того как запостил, решил снова покопать проблему и обнаружил что этот процесс убивается сам каким то макаром ровно через 5 минут. Мистика епт

Никакой мистики, просто истекает таймаут ожидания.

-----
PGP key <0x1B6A24550F33E44A>





Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

Создано: 06 мая 2011 16:28
· Личное сообщение · #21

Кстати, никто не сталкивался со странным глюком (у меня на двух машинах такое уже наблюдалось): firefox последней версии вешается и не убивается ни через диспетчер, ни через process manager. Наблюдал на семере и на хр. Странно как-то)

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.




Ранг: 17.4 (новичок)
Активность: 0.020
Статус: Участник

Создано: 06 мая 2011 18:15 · Поправил: Usulgurt
· Личное сообщение · #22

Av0id пишет:
про unlocker забыли


Я ведь даже анлокером пытался разблокировать. Но в окошке с захватчиками файлов появлялся regsrv.exe, который по ходу этот unlocker и запускает.


ntldr пишет:
Возьми тулзу autoruns и посноси всякие левые дрова.

Гдежты эти дрова-то найдёшь. Яж в юзермоде работал.


PE_Kill пишет:
Если стоят плагины для оли типа фантома то да.


Скажу так мне надо было отладить одну DLL загружаемую перед процессом через QueueUserAPC.
Которую я пустил сначала в холостой ход на точке останова через while(1) Sleep(1); и потом приатачился к ней.
После отладки я решил терминировать этот брак.
А сам процесс возможно даже не успел загрузиться.

Flint пишет:

Возьмём на вооружение.

И все остальным

Спасибо за программы, надеюсь пригодятся.




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 06 мая 2011 18:38
· Личное сообщение · #23

Crawler пишет:
Кстати, никто не сталкивался со странным глюком (у меня на двух машинах такое уже наблюдалось): firefox последней версии вешается

У меня подобное, тоже на 2 компах наблюдается с оперой. Но проблем с киллом нет. На интелловском реже Проблема, действительно может быть связана со сборками, как сказал Vovan666 - ядра, может, кривые?

-----
IZ.RU




Ранг: 222.2 (наставник), 115thx
Активность: 0.140.01
Статус: Участник

Создано: 06 мая 2011 18:59 · Поправил: HandMill
· Личное сообщение · #24

Crawler пишет:
Кстати, никто не сталкивался со странным глюком (у меня на двух машинах такое уже наблюдалось): firefox последней версии вешается и не убивается ни через диспетчер, ни через process manager. Наблюдал на семере и на хр. Странно как-то)

Давно сталкивался (в каком-то из релизов 2й версии) с подобным багом. У меня он возник раз или два, когда сильно расходовал память. Процесс не мог никак убить, но через какое-то время(по таймауту) он сам подыхал. А убить я его пытался по той причине что он кушал много памяти. Затем нашёл однажды выход из подобной ситуации - хлопнул через unlocker его хэндлы к файлу подкачки(Топик Стартеру на заметку, regsrv.exe к анлокеру никакого отношения не имеет, процесс запускается из встраиваемой в проводник dll), после чего процесс сам умирал. Сейчас файрфоксом последних версий мне очень не нравится пользоваться, хоть мне на протяжении многих лет этот браузер нравился начиная с 1х версий, 4.хх огорчило на плохом соединении при подгрузке flash анимации (очень сомневаюсь что в флешевом движке не досмотрели, поскольку с остальными браузерами всё ок) весь экран становился чёрным. Раз в день стабильно я попадал на этот баг. Переполз пока на SRWare Iron, жду выхода 5 версии firefox'а.

-----
все багрепорты - в личные сообщения




Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 06 мая 2011 19:38
· Личное сообщение · #25

Usulgurt
Кстати, а что возвращает NtTerminateProcess при попытке завершить процесс?

Тут про фаерфокс разговор пошел...Помню установил сырую Win 7 с первым публичным build'ом, там повисшие процессы вообще нормой были( Особенно огнелис)



Ранг: 17.4 (новичок)
Активность: 0.020
Статус: Участник

Создано: 06 мая 2011 22:40
· Личное сообщение · #26

Даже прогой Advanced Process Termination v4.2 пробовал.
http://www.multiupload.com/OP83P1GXPF

А терминируется этот процесс только после того как выйти из приатачевшегося процесса.

ELF_7719116 пишет:
UsulgurtКстати, а что возвращает NtTerminateProcess при попытке завершить процесс?

Уже можно отложить это.


 eXeL@B —› Вопросы новичков —› Повисший процесс ничем не снимается.
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати