精华内容
下载资源
问答
  • Windows自带命令强杀进程

    千次阅读 2006-03-13 12:53:00
    ntsd -c q -p PIDtasklist //查看进程tskill PID //杀进程

    ntsd -c q -p PID

    tasklist   //查看进程

    tskill PID   //杀进程

    展开全文
  • ForceKillProcess(强杀进程),除几个基础核心Windows进程以外几乎通杀。 使用方法1: 在配置文件(config.ini)内配置好需要杀除的进程名,需要包含后缀名,多个用“;”间隔。 注意:区分大小写,需要包含后缀名。...
  • Attach 到进程进行内存清零.这里提供了两种方法.原理是一样 KeAttachProcess方法 与 KeStackAttachProcess方法. 其中第一种属于旧方法了.根据MSDN所说API已经升级为了KeStackAttachProcess #include <ntifs.h>...

    原理

    Attach 到进程进行内存清零.这里提供了两种方法.原理是一样

    KeAttachProcess方法 与 KeStackAttachProcess方法. 其中第一种属于旧方法了.根据MSDN所说API已经升级为了KeStackAttachProcess

    #include <ntifs.h>
    
    NTKERNELAPI UCHAR* PsGetProcessImageFileName(IN PEPROCESS Process); //未公开的进行导出即可
    
    
    NTKERNELAPI VOID NTAPI KeAttachProcess(PEPROCESS Process);
    NTKERNELAPI VOID NTAPI KeDetachProcess();
    
    void DriverUnLoad(PDRIVER_OBJECT pDriverObj)
    {
        KdPrint(("驱动卸载成功"));
    }
    /*
    1.枚举所有进程.  2^31方
    */
    PEPROCESS GetEprocessByPid(HANDLE pid)
    {
        //根据PID 返回PEPROCESS
        PEPROCESS pEpro = NULL;
        NTSTATUS ntStatus = STATUS_UNSUCCESSFUL;
        ntStatus = PsLookupProcessByProcessId(pid, &pEpro);
        if (NT_SUCCESS(ntStatus))
        {
            return pEpro;
        }
        return NULL;
    }
    
    
    
    //新方法
    void MemKillProcess(HANDLE pid)
    {
        PEPROCESS proc = NULL;
        NTSTATUS ntStatus = STATUS_UNSUCCESSFUL;
        PKAPC_STATE pApcState = NULL;
    
    
        PsLookupProcessByProcessId((HANDLE)pid,&proc);
        if (proc == 0)
        {
            
            return;
        }
        
        //KeAttachProcess(proc);
        //KeDetachProcess()  等都已经过时.所以使用新的
        pApcState = (PKAPC_STATE)ExAllocatePoolWithTag(NonPagedPool, sizeof(PKAPC_STATE), '1111');
        if (NULL == pApcState)
        {
            ObDereferenceObject(proc);
            return;
        }
        __try{
            KeStackAttachProcess(proc, pApcState);
            //KeAttachProcess(proc);
            for (int i = 0x10000; i < 0x20000000; i += PAGE_SIZE)
            {
                __try
                {
                    memset((PVOID)i, 0, PAGE_SIZE);
                }
                __except (1)
                {
                    ;       //内部处理异常
                }
            }
            KeUnstackDetachProcess(pApcState);
            //KeDetachProcess();
            ObDereferenceObject(proc);
            return;
        }
        __except (1)
        {
            DbgPrint("强杀出错\r\n");
            KeUnstackDetachProcess(pApcState);
            ObDereferenceObject(proc);
        }
    
    
        return;
    }
    HANDLE GetPidByProcessName(char *ProcessName)
    {
        PEPROCESS pCurrentEprocess = NULL;
        HANDLE pid = 0;
        DbgPrint("寻找名为%s的PID\r\n", ProcessName);
        for (int i = 0; i < 2147483647; i += 4)
        {
            pCurrentEprocess = GetEprocessByPid((HANDLE)i);
            if (pCurrentEprocess != NULL)
            {
                /*DbgPrint("进程名字为: %s 进程PID = %d 进程的父Pid = %d\r\n",
                    PsGetProcessImageFileName(pCurrentEprocess),
                    PsGetProcessId(pCurrentEprocess),
                    PsGetProcessInheritedFromUniqueProcessId(pCurrentEprocess));*/
                pid = PsGetProcessId(pCurrentEprocess);
                if (strstr(PsGetProcessImageFileName(pCurrentEprocess), ProcessName) != NULL)
                {
                    ObDereferenceObject(pCurrentEprocess); //解引用
                    DbgPrint("找到了\r\n");
                    return pid;
                }
                ObDereferenceObject(pCurrentEprocess); //解引用
            }
        }
        DbgPrint("未找到\r\n");
        return (HANDLE)-1;
    }
    //旧方法
    void OldMemKillProcess(HANDLE pid)
    {
        SIZE_T i = 0;
        //依附进程
        PEPROCESS proc = 0;
        PsLookupProcessByProcessId(pid, &proc);
        if (NULL == proc)
        {
            return;
        }
        KeAttachProcess((PEPROCESS)proc); //这里改为指定进程的 EPROCESS
        for (i = 0x10000; i < 0x20000000; i += PAGE_SIZE)
        {
            __try
            {
                memset((PVOID)i, 0, PAGE_SIZE); //把进程内存全部置零
            }
            _except(1)
            {
                ;
            }
        }
        //退出依附进程
        KeDetachProcess();
        ObDereferenceObject(proc);
    }
    
    NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObj, PUNICODE_STRING pRegPath)
    {
        ULONG iCount = 0;
        NTSTATUS ntStatus;
        pDriverObj->DriverUnload = DriverUnLoad;
    
        MemKillProcess(GetPidByProcessName("calc.exe")); //新方法
        OldMemKillProcess(GetPidByProcessName("calc.exe"));//旧方法
        return STATUS_SUCCESS;
    }
    
    展开全文
  • 意天Windows助手(进程强杀/进程守护/进程查询) v1.0.0.30简体中文绿色免费版 该软件是一款真正永久免费软件,您无需为使用软件支付任何费用! 进程树图: 用树的模式显示进程列表,让您可以轻松了解父进程与子进程间的...
  • 强杀进程

    2019-06-02 15:58:00
    // ProcessDemo.cpp : 定义控制台应用程序的入口点。 // ...Windows.h> #include <stdio.h> #include <conio.h> #include <iostream> #include <string> us...
    // ProcessDemo.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include <Windows.h>
    #include <stdio.h>
    #include <conio.h>
    #include <iostream>
    #include <string>
    using namespace std;
    #include <Psapi.h>
    #pragma comment(lib,"psapi.lib")
    
    
    BOOL KillProcess(string strProcessName)
    {
    	DWORD dwProcessID[256]={0};		//进程ID
    	DWORD dwNeed=0;					//当前运行进程的字节
    	DWORD dwProcessCount=0;			//当前运行进程的个数
    	//枚举所有进程
    	EnumProcesses(dwProcessID,sizeof(dwProcessID),&dwNeed);
    	dwProcessCount=dwNeed/sizeof(DWORD);
    	//打开进程
    	HANDLE hProcess=NULL;
    	char strPathName[256]={0};		//记录进程路径
    	HMODULE hModule=NULL;
    	DWORD dwIndex=0;				//记录是否找到进程
    	for(DWORD i=0;i<dwProcessCount;++i)
    	{
    		//打开进程
    		 hProcess=OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_TERMINATE,FALSE,dwProcessID[i]);
    		if(hProcess)
    		{
    			//枚举进程模块
    			 EnumProcessModules(hProcess,&hModule,sizeof(HMODULE),&dwNeed);
    			 memset(strPathName,0,sizeof(strPathName));
    			//获取进程具体路径及名称
    			GetProcessImageFileNameA(hProcess,strPathName,sizeof(strPathName));
    			cout<<strPathName<<'\t'<<dwProcessID[i]<<endl;
    			//关闭进程
    			//比较输入路径与搜索路径是否相同
    			string strTemp=strPathName;
    			if(strTemp.find(strProcessName)!=-1)
    			{
    				//结束进程
    				TerminateProcess(hProcess,0);	
    				dwIndex++;
    			}
    		}
    		else
    			cout<<"打开进程失败"<<endl;
    	}
    	if(dwIndex>0)
    	{
    		CloseHandle(hProcess);
    		return TRUE;
    	}
    	else
    		return FALSE;
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	string strProcessName;
    	char ch='a';
    	while(ch!=27)
    	{
    		system("cls");
    		cout<<"输入要查杀的进程名:";
    		cin>>strProcessName;
    		if(KillProcess(strProcessName))
    			cout<<endl<<"结束进程成功"<<endl;
    		else
    			cout<<endl<<"结束进程失败"<<endl;
    		
    		cout<<endl<<"随意键继续 ESC退出"<<endl;
    		ch=getch();
    	}
    	return 0;
    }
    

      

    转载于:https://www.cnblogs.com/gd-luojialin/p/10963188.html

    展开全文
  • Windows杀进程

    千次阅读 2016-08-30 09:46:22
    一、普通杀死 Tasklist:列出所有的计算机正在运行的...二、强杀 1. 用Windows自带的工具就能杀大部分进程:     c:>ntsd -c q -p PID   只有System、SMSS.EXE和CSRSS.EXE不能杀。前两个是

    一、普通杀死

    Tasklist:列出所有的计算机正在运行的进程 cmd——》tasklist

    Tskill:杀死进程 tskill+进程名


    二、强杀

    1.    用Windows自带的工具就能杀大部分进程:  

      

        c:>ntsd -c q -p PID   

      只有SystemSMSS.EXECSRSS.EXE不能杀。前两个是纯内核态的,最后那个是Win32子系统,运行ntsd本身需要它。  

      ntsd命令是从2000开始的系统自带的调试工具。被调试器附着(attach)的进程会随调试器一起退出,所以可以用来在命令行下终止进程。  

      使用ntsd自动就获得了debug权限,从而能杀掉大部分的进程。用法:开个cmd.exe窗口,输入:  

      ntsd -c q -p PID   

    把最后那个PID,改成你要终止的进程的ID。如果你不知道进程的ID,任务管理器->进程选项卡->查看->选择列->勾上"PID(进程标识符)",然后就能看见了。 

    2. 使用专门的软件来杀进程

      任务管理器杀不掉的进程,你可以使用专门的软件关闭。有很多软件可以杀进程,下面是一个VB编写的杀进程的例子代码,供参考。

    Dim objWMIService As Object
    Dim colProcesslist As Object
    Dim objProcess As Object
    Set objWMIService = CreateObject("winmgmts:{impersonationLevel=Impersonate}!root\cimv2")
    Set colProcesslist = objWMIService.ExecQry("select * from win32_process where ")
    For Each objProcess In colProcesslist
        objProcess.Terminate
    Next 

    展开全文
  • void kill_process(std::wstring p_name) { HANDLE h_process_snap = NULL; PROCESSENTRY32 pe32; DWORD dw_priority_class; bool bFind = false; // Take a snapshot of all processes in the system. ...
  • 1. cmd 进入命令行; 2. netstat -ano ,找到端口号位8080的那一列和进程号,回车; 3. tskill  进程号,回车。
  • 取名:ForceKillProcess(强杀进程) 除几个基础核心Windows进程以外几乎通杀。 使用方法1: 在配置文件(config.ini)内配置好需要杀除的进程名,需要包含后缀名,多个用“;”间隔。 注意:区分大小写,需要包含...
  • 软件名称:超强杀进程工具作者:jjony开发工具:Delphi 7运行环境:Windows 2000/xp/2003联系作者:jzj_jony@126.com软件说明: 本软件具有超强杀进程功能,无论是顽固进程(有自我保护功能的进程或系统关键进程)或者服务...
  • 意天Windows助手 1.0.0.29_内核模式时可强杀任何进程_简体绿化免费版谢谢你下载我的软件,希望这个软件能帮助你! 更多精彩内容,欢迎来我的论坛逛逛! 快乐论坛630 http://hanranran.5d6d.com/bbs.php 快乐网赚...
  • 一:windows 1.查看进程 netstat -ano | findstr 8764 2.进程 tskill 3776 二:linux 1.查看进程 (根据端口查进程) netstat -anp | grep 8761 2.查看进程(根据关键字查进程) ps -ef | grep eureka ps...
  • 我前段时间发现我的机子里多了一个进程,只要开机就在,我用任务管理器却怎么关也关不了答1:杀进程很容易,随便找个工具都行。比如IceSword。关键是找到这个进程的启动方式,不然下次重启它又出来了。顺便教大家一招...
  • 此方法不仅适用于RN,还适用于windows旗下一切找端口pid,并且进程的懒人方法。 adb连接不上android 报错5037端口 ,例如:我想找到5037端口pid同时掉该进程。其他端口只需要改最前面的数字即可 netstat -ano|...
  • 答1:杀进程很容易,随便找个工具都行。比如IceSword。关键是找到这个进程的启动方式,不然下次重启它又出来了。顺便教大家一招狠的。其实用Windows自带的工具就能杀大部分进程:  c:>ntsd -c q -p PID  只有...
  • 1.cmd下netstat -aon|findstr "端口号",查出来对应的进程号10524。 2.强杀进程,执行tskill 10524 杀进程 杀完之后查一下,端口没有对应的进程了吧
  • windows批量结束进程

    2019-10-12 10:32:48
    方法1 taskkill /IM python.exe /f 方法2 ntsd -c q -pn python.exe 方法3 使用HackerJLY进程管理器,这个貌似更些有些taskkill批量不了的它也可以
  • NTSD的功能非常的强大,用它强行结束某个比较顽固的进程还是很好用的,基本上除了WINDOWS系统自己的管理进程,ntsd几乎都可以掉。 解压放到/windows/system32下,然后在cmd下,就可以进行操作了。 命令格式:ntsd ...
  • NTSD的功能非常的强大,用它强行结束某个比较顽固的进程还是很好用的,基本上除了WINDOWS系统自己的管理进程,ntsd几乎都可以掉。XP下是自带的,但是Win7没有,下载后解压到C:/windows/system32下,然后在cmd下,就...
  • 意天Windows进程管理助手是一款集删除进程,网络监控于一体的安全辅助软件。... 意天Windows进程管理助手是一款免费软件,你可以不用花一分钱拥有的的删除进程、网络监控、垃圾文件清理功能,还不马上用一用。
  • 6种进程方案和源码.rar

    热门讨论 2010-09-27 14:30:31
    优点:通用性较,任意的windows平台均可防止任务管理器杀进程 缺点:只能针对windows任务管理起到防杀作用 5.双进程保护 原理:主进程和守护进程互相监控,发现对方不在就启动对方。为了避免父子进程关系,主进程启动...
  • NTSD的功能非常的强大,用它强行结束某个比较顽固的进程还是很好用的,基本上除了WINDOWS系统自己的管理进程,ntsd几乎都可以掉。XP下是自带的,但是Win8没有,下载后解压到C:/windows/system32下,然后在cmd下,就...
  • Windows-查看端口占用-并进程

    万次阅读 2020-03-10 18:55:10
    本人在使用IDE进行开发Web程序下,IDE退-程序还在继续运行导致本机端口被占用, 解决方式: 1.对想查看的端口做截取: netstat -ano | findstr "8081" 2.通过PID 强制死指定的服务: taskkill /pid 14396 -t -f...
  • ---防止windows某个进程强杀(ctrl+alt+delete任务管理器)---
  • windows查杀端口

    2020-08-21 14:36:28
    最近遇到好多次需要端口占用的情况,每次都需要百度,趁有空记录下,达到强化记忆的效果。 查看某个端口被哪个进程...死该程序 taskkill /f /t /im java.exe 执行完前三步,就可以解除端口占用,启动程序即可 ...

空空如也

空空如也

1 2 3 4 5 6
收藏数 102
精华内容 40
关键字:

windows强杀进程