操作系统安全课设报告.docx

上传人:b****6 文档编号:6164850 上传时间:2023-01-04 格式:DOCX 页数:14 大小:615.39KB
下载 相关 举报
操作系统安全课设报告.docx_第1页
第1页 / 共14页
操作系统安全课设报告.docx_第2页
第2页 / 共14页
操作系统安全课设报告.docx_第3页
第3页 / 共14页
操作系统安全课设报告.docx_第4页
第4页 / 共14页
操作系统安全课设报告.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

操作系统安全课设报告.docx

《操作系统安全课设报告.docx》由会员分享,可在线阅读,更多相关《操作系统安全课设报告.docx(14页珍藏版)》请在冰豆网上搜索。

操作系统安全课设报告.docx

操作系统安全课设报告

 

CENTRALSOUTHUNIVERSITY

 

操作系统安全课程设计报告

 

题目进程监控程序的设计与开发

学生姓名郁博文

班级学号0906130205

指导教师何小贤

设计时间2015年12月

 

 

第一章设计目的、任务与要求

1.1设计的目的

操作系统安全是整个计算机系统安全的重要基础,主要针对操作系统层面的安全进行剖析,是上层运行的重要保证。

与计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。

本课程设计的目的综合应用学生所学知识,建立安全系统的概念,理解和巩固操作系统基本理论、原理和方法,掌握安全操作系统开发的基本技能。

1.2设计的任务与要求

设计的任务是完成一个Windows或Linux下的进程管理与监控程序,要求能够获得当前系统中所有进程信息并进行监控,基本功能要求如下:

1、获得进程信息

可获取当前正在运行的所有进程,包括进程PID、进程名称、CPU使用情况、当前用户名、内存占用量等

2、获得线程信息

能进一步获取各进程的所有线程情况

3、终止进程

能通过命令终止某个进程的执行,终止时能将其子孙进程全部终止

4.监控进程

能够设置某种条件对特定进程进行监控并输出日志

设计中要求综合运用所学知识,上机解决一些与实际应用结合紧密的、规模较大的问题,通过分析、设计、编码、调试等各环节的训练,深刻理解、牢固掌握操作系统安全的基本技术,掌握分析、解决实际问题的能力。

 

第二章系统分析设计

2.1需求分析

整个设计项目共有四项基本需求,可归纳为3项基本模块:

第一个是信息获取模块,第二个是进程监控模块,第三个是日志输出模块。

这三个模块彼此相互间相互影响,其连接纽带是系统当前的数据。

整个项目逻辑是信息获取模块获得当前系统实时信息并展示在系统信息栏中,进程监控模块从信息获取模块中获得特等进程信息并与用户设置的过滤条件进行匹配,如果发现不匹配则调用日志输出模块。

日志输出模块能够对输出的日志信息进行分级输出并实时更新到log文件中。

用户可以设置系统信息更新的频率、开启或结束一个进程、更删改进程监控信息、改变日志输出目录以及日志输出级别,设计流程图如下:

2.2设计要求

整个项目设计部分遵循以下设计理念

1

界面友好、简单、清晰易懂,拥有一定的动画效果

2

数据模型科学、合理、清晰

3

代码精炼、可移植性高,能够进行模块化设计

4

响应速度快、数据安全性高,有一定的商业价值

 

第三章系统实现

3.1信息获取模块

信息获取模块由获取进程信息和获取线程信息两部分构成,由于python内置模块未提供有关线程信息的部分,故线程信息需要调用win32的系统API获得。

界面如下:

进程信息类定义如下:

因为进程下线程数目较多,所以当前进程的线程信息输出在日志文件中:

获取系统进程信息代码如下:

线程信息获取需要使用c调用系统API,Windows线程信息的结构体定义如下:

获得线程信息函数定义如下:

结束进程函数定义如下:

用户可以设置获取更新系统信息的时间:

 

3.2进程监控模块

进程监控模块界面如下:

监控信息数据类定义如下:

用户已经设置好的监控信息以json的格式存储在data.json文件中

以监控进程下线程数目为例,其监控过程如下:

用户可以增加监控项目:

也可以对已有项目进行修改:

如果监控系统未发现监控进程在运行,其会输出这样的日志:

如果监控进程符合过滤条件,监控系统会输出当前进程的信息:

如果监控进程不满足监控条件,监控系统会输出优先级为warning的log,信息中包含了进程不满足的条件

 

3.3日志输出模块

输出日志结构如下:

用户可以自己设置输出日志的级别、清空日志文件的大小、日志文件的输出目录等配置信息:

日志输出到文件中效果如下:

3.4其他功能

本软件实际上还有一些其他的小功能,比如说关闭软件后会潜伏在菜单栏默默监控你的系统:

比如说有点自恋的关于:

比如说软件下方提示你当前系统各种信息的信息栏:

比如说一份很逗比的帮助文档:

第四章心得体会

刚开始接到课设题目的时候,我实际上挺为难的,我之前的兴趣在于移动开发,实际上对于桌面应用开发一窍不通。

而c++对我来说接触的很少,所以我第一时间就放弃了做第一个题目的想法。

由于暑假实习的时候参与了一些python项目的开发,所以最我想的是用python+wxpython框架完成第二个题目。

一开始我觉得第二个题目并没有什么意义,利用现成的模块读取系统数据并展示这个也就是我一个晚上的工作量,第一个题目对我来说更有吸引力,但是计算一下工作量要接近5k行c++代码,这明显不是在两个学分的课设时间里能完成的项目。

但是感觉单纯的仿写任务管理器也过去轻松,最后决定还是挑战一下自己,给我的任务管理器加上监控进程的功能。

但是在实际开发中还是遇到了一些问题,第一个就是设计一个简介美观的界面,wxpython不支持拖拽式开发,所以的界面都要通过代码实现,这个工作量超过了我的想象;第二个是获取进程的线程信息,这个需求在putil模块中没有实现,后来是查找windows的API才拿到了我想要的信息。

第三个是监控模块和信息模块的融合,由于信息刷新进程的异步性,这两个模块之间的数据同步是一直困扰我的问题。

(这是我大学以来耗费心血最多的课设,熬了5个晚上,最后整个项目大概4k行代码)

现在写完了整个项目,虽然只能说是初窥了PC端软件开发的一角,但是还是觉得软件开发没有我想象中的那么难。

虽然一个完整的PC端项目还要考虑到并发、速度、安全性等一系列在我的课设中没有考虑到的问题,但是最后看到自己写的软件能够成功使用的时候,心情还是相当棒的,感觉自己挑战了一个新的领域,自己日后有多了一个奋斗的方向,虽说这是一个很简单很基础的一个软件,但是还是为我敲开了软件开发的大门。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1