注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

熊猫正正的博客

熊猫正正的天空

 
 
 

日志

 
 

黑客编程(六)枚举进程  

2011-06-29 23:49:24|  分类: C/C++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <string.h>
#include <tlhelp32.h>

int KillProcess(DWORD Pid)
{
//打开进程得到进程句柄
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,Pid);
if(hProcess == NULL)
{
printf("OpenProcess error \n");
return 0;
}

//结束进程
if(TerminateProcess(hProcess,0))
{
printf("结束进程成功\n");
return 0;
}
else
{
printf("结束进程失败\n");
return 0;
}
}

int GetProcess()
{
char buff[1024] = {0};
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(pe32);
//获得系统内所有进程快照
HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hProcessSnap == INVALID_HANDLE_VALUE)
{
printf("CreateToolhelp32Snapshot error");
return 0;
}

//枚举列表中的第一个进程
BOOL bProcess = Process32First(hProcessSnap,&pe32);
while(bProcess)
{
//格式化进程名和进程ID
wsprintf(buff,"%s-----------------%d\r\n",pe32.szExeFile,pe32.th32ProcessID);
//输出进程名和进程ID
printf(buff);
memset(buff,0x00,1024);
//继续枚举进程
bProcess = Process32Next(hProcessSnap,&pe32);
}

CloseHandle(hProcessSnap);
return 0;
}



int main(int argc, char* argv[])
{
if(argc == 2 && strcmp(argv[1],"list") == 0)
{
GetProcess();
}

if(argc == 2 && strcmp(argv[1],"Kill") == 0)
{
KillProcess(atoi(argv[2]));
}

return 0;
}

  评论这张
 
阅读(65)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017