SOS!!! 在win2000/winnt下如何杀死一个系统进程?急!!!(100分)

  • 主题发起人 主题发起人 glede
  • 开始时间 开始时间
G

glede

Unregistered / Unconfirmed
GUEST, unregistred user!
请教各位大侠:
我碰到一个来历不明的程序,在WIN2000任务管理器的进程列表中可以看到,
却无法结束它。
如何编程来杀死这个进程?
我用这个函数(TerminateProcess)也不能将其杀死,
高手可有其他办法?
 
TerminateProcess应当可以啊,
你的代码怎么写的啊?
 
To cbdiy:
代码应该是没问题的,我枚举系统中所有进程,能够杀掉其他(非服务类型)进程。
唯独那个程序杀不掉。
谢谢你,再帮我想想办法吧!
 
要利用下面的流程,特别是SetPrivilege()//设置权限
OpenProcessToken()
SetPrivilege()
OpenProcess()
SetPrivilege
TerminateProcess()
CloseHandle()
 
同意楼上的,其实很简单!
 
To chenxz:
能否给段代码,测试成功就立刻给分。
谢谢!!!
 
I have a demo for c++Builder,if you need it,give your mail???
 
谢谢chenxz大侠。
v20020703@163.com

 
谢谢chenxz大侠。
程序已受到。
但是,还是杀不了。:(
何故?
帮帮我!!!
 
如果在任务管理器里都杀不了,那程序肯定是不行了。
 
杀死一个进程:
uses
Tlhelp32;

function KillTask(ExeFileName: string): Integer;
const
PROCESS_TERMINATE = $0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
Result := 0;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);

while Integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(
OpenProcess(PROCESS_TERMINATE,
BOOL(0),
FProcessEntry32.th32ProcessID),
0));
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
KillTask('notepad.exe');
end;

{ For Windows NT/2000/XP }

procedure KillProcess(hWindowHandle: HWND);
var
hprocessID: INTEGER;
processHandle: THandle;
DWResult: DWORD;
begin
SendMessageTimeout(hWindowHandle, WM_CLOSE, 0, 0,
SMTO_ABORTIFHUNG or SMTO_NORMAL, 5000, DWResult);

if isWindow(hWindowHandle) then
begin
// PostMessage(hWindowHandle, WM_QUIT, 0, 0);

{ Get the process identifier for the window}
GetWindowThreadProcessID(hWindowHandle, @hprocessID);
if hprocessID <> 0 then
begin
{ Get the process handle }
processHandle := OpenProcess(PROCESS_TERMINATE or PROCESS_QUERY_INFORMATION,
False, hprocessID);
if processHandle <> 0 then
begin
{ Terminate the process }
TerminateProcess(processHandle, 0);
CloseHandle(ProcessHandle);
end;
end;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
KillProcess(FindWindow('notepad',nil));
end;
 
如果在任务管理器里都杀不了,那程序肯定是不行了。
可能是你下载的一些东西,看看自动运行里面有什么东东,在安全模式下删除那个exe好了
 
我要杀的这个程序有如下特点:(用Trojan Remover V4.7无效)
监视注册表,一旦发现他在启动项里写的值被修改
或SYSTEM32下的下次自启动程序被删除
马上又在SYSTEM32下生成一个文件,文件名是随机的。
且在注册表中启动项又新添加一项,数值名称随机。

例如如下:
数值名称  数值数据
teYlCKzv  xfzoDN.exe C:/WINNT/Downloaded Program Files/CnsMin.dll,Rundll32

它生成的文件和RUNDLL32.EXE一样大,在NT下是12K,win2000下是10K。
在任务管理器中无法结束它的进程。

目前尚未发现它有什么破坏性,但就它监视注册表,文件名随机就可断定它
应该不是什么好东西。

各位可碰到过?还有CnsMin.dll是不是网络实名的东西,它可与网络实名有什么关系吗?
 
^_^,又是一个受害者
是3721的破东东,去网上找个pstools,里面有个pskill可以杀进程的
或者直接去3721的网站卸载就可以了
 
哈哈。就是网络实名3721。很烂的,删了过段时间还会有的!
 
我不是说过了吗?要在纯命令提示符下删除,至于那个随机产生文件的程序,
我看是木马之类的程序,找找专杀木马的东东吧,3721装之前会问你,不信任就可以了
 
谢谢各位了!
---------------------------------------
再提一问:
听说我们经理有一个软件,可以检测局域网内所有使用QQ的机器,
可以看到正在使用的QQ号码,我等诚惶诚恐啊(公司不许上班QQ)!
各位见多识广,这是什么软件?可知那里可下此软件?
 
这么神奇啊。
 
追捕以前可以的,现在不行了。
 
愚人之见解:因为QQ用的端口是4000(也可能每个人都是不一样的)而QQ的服务器端口
则用的是8000,只要用一个软件查一下这些端口,不是就可以查出了是否有人在用QQ,至于
QQ号嘛,可是通过查IP吧。。。。。不知这样行不行咯:)
 
后退
顶部