欢迎来到天天文库
浏览记录
ID:43172417
大小:957.00 KB
页数:56页
时间:2019-10-01
《网络安全教程4》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第三章网络安全编程基础内容提要网络安全编程主要涉及的是操作系统编程,在Windows平台下,目前主要采用C/C++语言。本章将介绍Windows操作系统的基本原理以及C语言的四个发展阶段,每一阶段都用典型的案例说明。详细说明在网络安全领域如何使用C/C++语言实现Socket编程、注册表编程、定时器编程、驻留程序编程和多线程编程。网络安全编程概述从理论上说,任何一门语言可以在任何一个操作系统上编程,C语言可以在Windows下编程,同样也可以在Linux下编程。编程是一项比较综合的工作,除了熟练使用编程工具以外,还要了解系统本身的内部工作机理和编程语言。Windows内
2、部机制Windows是一个“基于事件的,消息驱动的”操作系统。在Windows下执行一个程序,只要用户进行了影响窗口的动作(如改变窗口大小或移动、单击鼠标等)该动作就会触发一个相应的“事件”。系统每次检测到一个事件时,就会给程序发送一个“消息”,从而使程序可以处理该事件。每次检测到一个用户事件,程序就对该事件做出响应,处理完以后,再等待下一个事件的发生。八个基本概念与Windows系统密切相关的八个基本概念分别是:窗口、程序、进程、线程消息、事件、句柄、API与SDK。1、窗口窗口是Windows本身以及Windows环境下的应用程序的基本界面单位,但是很多人都误以为只
3、有具有标题栏、状态栏、最大化、最小化按钮这样标准的方框才叫窗口。其实窗口的概念很广,例如按钮和对话框等也是窗口哦,只不过是一种特殊的窗口罢了。2、程序通常说的程序都是指一个能让计算机识别的文件接触得最多的是以exe或者com作为扩展名的文件。3、进程进程就是应用程序的执行实例(或称一个执行程序),进程是程序动态的描述。一个以exe作为扩展名的文件,在没有被执行的时候称之为应用程序,当用鼠标双击执行以后,就被操作系统作为一个进程执行了。当关机或者在任务栏的图标上单击鼠标右键选“退出”时,进程便消亡,彻底结束了生命。进程经历了由“创建”到“消亡”的生命期,而程序自始至终存在
4、于你的硬盘上,不管计算机是否启动。4、线程线程是进程的一个执行单元,同一个进程中的各个线程对应于一组CPU指令、一组CPU寄存器以及一个堆栈。进程本来就具有动态的含义,是通过线程来体现的。5、消息消息是应用程序和计算机交互的途径,在计算机上几乎做每一个动作都会产生一个消息鼠标被移动会产生WM_MOUSEMOVE消息,鼠标左键被按下会产生WM_LBUTTONDOWN的消息,鼠标右键按下便产生WM_RBUTTONDOWN消息等等。事件句柄:6、事件从字面意思就可以明白它的含义,如在程序运行的过程中改变窗口的大小或者移动窗口等,都会触发相应的“事件”,从而调用相关的事件处理函
5、数。7、句柄:单单一个“柄”字便可以解释它的意思了,句柄是一个指针,通过句柄就可以控制该句柄指向的对象。编写程序总是要和各种句柄打交道的,句柄是系统用来标识不同对象类型的工具,如窗口、菜单等,这些东西在系统中被视为不同类型的对象,用不同的句柄将他们区分开来。8、API与SDKAPI是英文ApplicationProgrammingInterface的缩写,意思是“应用程序接口”,泛指系统为应用程序提供的一系列函数接口。在编程的时候可以直接调用,而不必知道其内部实现的过程,只知道它的原型和返回值就可以了。SDK是英文SoftwareDevelopmentKit的缩写,意思
6、是“软件开发工具包”,微软提供了许多专门的SDK开发包,比如DirectX开发包和语音识别开发包等等。学习Windows下编程学习语言,选择语言和工具是第一步,而且是非常重要的一步工作,目前的编程语言那么多,有C、C++、C#、Java和汇编语言等等。虽然有很多语言,只要精通一门就够了。从实用的角度来讲,C/C++是最好的选择,而微软公司的VisualC++和Insprise公司(原Borland公司)的C++Builder是其相应开发工具的两大主流。开发工具在开发工具上,选择比较流行的VC++6.0,而且最好是英文版本,主界面如图3-2所示。学习编程需要经历三大步学习
7、编程需要经历三大步:一、读程序;二、写程序;三、积累功能代码段。1、读程序在没有阅读过一份完整的源代码之前,别指望能写出有多好的程序!读程序必须具备一定的语言基础知识,基础知识主要是指语法知识,最起码要能读懂程序的每一行意思。有没有程序的设计思想,在这个时期并不重要,只要具备一定的语法基础就可以了。学一门语言并不需要刻意去记条条框框的语法,看代码的时候,遇到了不明白的地方再去查相关的资料,补充基础知识再配合源程序的思路,这时的理解才是最深刻的。2、写程序刚开始写程序,不要奢望一下子写出很出色的程序来,“万丈高楼平底起”,编程贵在动手,只要
此文档下载收益归作者所有