简单任务管理器.ppt_第1页
简单任务管理器.ppt_第2页
简单任务管理器.ppt_第3页
简单任务管理器.ppt_第4页
简单任务管理器.ppt_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用C语言实现 西安电子科技大信安协会龚潇 简单任务管理器 西安电子科技大信安协会龚潇 主函数参数argc argv 列出进程名和PID函数GetProcess void 结束选定的进程函数KillProcess intpid 调用CreateToolhelp32Snapshot函数得到系统所有进程快照 调用Process32First和Process32Next函数得到每个进程的名字和PID 调用CloseHandle函数关闭系统进程快照 封装GetKillPriv 函数进行提权 调用OpenProcess函数打开需要结束的进程的句柄 调用TerminateProcess函数结束我们需要结束的进程 1 主函数 西安电子科技大信安协会龚潇 主函数main intargc char argv 不必多说了 argc表示参数个数 argv 0 是文件名 argv 1 表示传入的第一个参数 我们可以利用一个判断句 if argc 2 strcmp argv 1 list 0 进入我们GetProcess里 或者if argc 3 strcmp argv 1 kill 0 进入KillProcess里 注意 字符串想比较大小得用strcmp函数 不能直接用argv 1 kill 来比较 2 GetProcess函数 西安电子科技大信安协会龚潇 这个函数没有参数 作用是得到系统所有正在运行的进程快照 先定义一个句柄变量hProcessSnap 则hProcessSnap CreateToolhelp32Snapshot TH32CS SNAPPROCESS 0 TH32CS SNAPPROCESS指定了进程快照类型 一般都是这个参数 0代表获取系统所有进程快照 我们再定义一个BOOL类型变量bProcess 使bProcess Process32First hProcessSnap 大家可以去MSDN上查找PROCESSENTRY32的定义 2 GetProcess函数 西安电子科技大信安协会龚潇 while bProcess wprintf L s d n pe32 szExeFile pe32 th32ProcessID bProcess Process32Next hProcessSnap 当bProcess TRUE时 说明获取快照成功了 就需要将获取的信息打印出来 pe32 szExeFile是进程名 pe32 th32ProcessID是进程PID 我们只需要这两项 输出即可 直到bProcess FALSE了 说明进程列举完了 我们的while语句也不执行了 注意 因为我们的pe32 szExeFile是TCHAR类型 被宏解释成wchar t类型 程序使用unicode编码 所以需要用到wprintf输出字符串 3 KillProcess函数 西安电子科技大信安协会龚潇 刚才列举出了系统所有进程 如果我们想kill掉一个进程 就需要进入我们这个函数 函数有一个参数 Pid 我们需要结束进程的PID 我们需要定义一个句柄变量hProcesshProcess OpenProcess PROCESS ALL ACCESS FALSE Pid 意思是打开Pid进程 有对它进行所有操作的权限 PROCESS ALL ACCESS 进程句柄不可继承 FALSE 返回该进程句柄 若失败则返回NULL 3 KillProcess函数 西安电子科技大信安协会龚潇 最后一个函数 结束进程的函数 TerminateProcess hProcess 0 参数是刚才返回该进程的句柄hProcess 后面的0是进程退出时的代码 一般都是0 这个函数返回值是BOOL 成功为TRUE 我们所有的程序也就只有这几个函数 如果去掉那些判断函数是否正确运行的if语句 程序的代码其实很短 4 提权函数 西安电子科技大信安协会龚潇 如果在NT之前的系统我们这个程序就能正常运行了 但NT以后的系统执行KillProcess之前我们还需要提权 之前我也不是很清楚提权这个事 运行程序以后发现可以列出进程 但不能结束进程 记得以前看书上介绍编写开关机的函数需要提权 我才想到这个程序是否也要提权 这里就不讲提权的那几个API函数了 网上都有封装好的提权函数 我们可以直接拿来用 我们这个程序需要SE DEBUG NAME权限 以前做的开关机程序需要的是SE SHUTDOWN NAME权限 只需要在封装的提权函数里将这个参数更改 使之可以得到不同权限 5 总结 西安电子科技大信安协会龚潇 我简单的介绍了制作一个 任务管理器 的需要的步骤和用到的函数 因为是命令提示符下的程序 没有界面 我们可以在cmd下运行它 我们还能用快捷方式运行 但不如在cmd下直观 这一个星期我对进程编程有了一定的了解 并通过自己的努力克服了许多困难成

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论