【大学课件】网络安全编程基础.ppt
《【大学课件】网络安全编程基础.ppt》由会员分享,可在线阅读,更多相关《【大学课件】网络安全编程基础.ppt(64页珍藏版)》请在三一文库上搜索。
1、第1页,第三章 网络安全编程基础,3.1 网络安全编程概述 3.2 C语言发展的4个阶段 3.3 网络安全编程,http:/ 本章将介绍Windows操作系统的基本原理以及C语言的四个发展阶段,每一阶段都用典型的案例说明。 详细说明在网络安全领域如何使用C/C+语言实现Socket编程、注册表编程、定时器编程、驻留程序编程和多线程编程。,http:/ 编程是一项比较综合的工作,除了熟练使用编程工具以外,还要了解系统本身的内部工作机理和编程语言。,http:/ 系统每次检测到一个事件时,就会给程序发送一个“消息”,从而使程序可以处理该事件。 每次检测到一个用户事件,程序就对该事件做出响应,处理完
2、以后,再等待下一个事件的发生。,http:/ 窗口、程序、进程、线程 消息、事件、句柄、API与SDK。,http:/ 环境下的应用程序的基本界面单位,但是很多人都误以为只有具有标题栏、状态栏、最大化、最小化按钮这样标准的方框才叫窗口。 其实窗口的概念很广,例如按钮和对话框等也是窗口哦,只不过是一种特殊的窗口罢了。,http:/ 接触得最多的是以exe或者com作为扩展名的文件。,http:/ 一个以exe作为扩展名的文件,在没有被执行的时候称之为应用程序,当用鼠标双击执行以后,就被操作系统作为一个进程执行了。 当关机或者在任务栏的图标上单击鼠标右键选“退出”时,进程便消亡,彻底结束了生命。
3、进程经历了由“创建”到“消亡”的生命期,而程序自始至终存在于你的硬盘上,不管计算机是否启动。,http:/ 进程本来就具有动态的含义,是通过线程来体现的。,http:/ 鼠标被移动会产生WM_MOUSEMOVE消息,鼠标左键被按下会产生WM_LBUTTONDOWN的消息,鼠标右键按下便产生WM_RBUTTONDOWN消息等等。,http:/ 句柄:,6、事件 从字面意思就可以明白它的含义,如在程序运行的过程中改变窗口的大小或者移动窗口等,都会触发相应的“事件”,从而调用相关的事件处理函数。 7、句柄: 单单一个“柄”字便可以解释它的意思了,句柄是一个指针,通过句柄就可以控制该句柄指向的对象。编
4、写程序总是要和各种句柄打交道的,句柄是系统用来标识不同对象类型的工具,如窗口、菜单等,这些东西在系统中被视为不同类型的对象,用不同的句柄将他们区分开来。,http:/ Programming Interface 的缩写,意思是“应用程序接口”,泛指系统为应用程序提供的一系列函数接口。 在编程的时候可以直接调用,而不必知道其内部实现的过程,只知道它的原型和返回值就可以了。 SDK是英文Software Development Kit的缩写,意思是“软件开发工具包”,微软提供了许多专门的SDK开发包,比如DirectX开发包和语音识别开发包等等。,http:/ 虽然有很多语言,只要精通一门就够了。
5、从实用的角度来讲,C/C+是最好的选择,而微软公司的Visual C+和Insprise公司(原Borland公司)的C+ Builder是其相应开发工具的两大主流。,http:/ 1、读程序 在没有阅读过一份完整的源代码之前,别指望能写出有多好的程序!读程序必须具备一定的语言基础知识,基础知识主要是指语法知识,最起码要能读懂程序的每一行意思。有没有程序的设计思想,在这个时期并不重要,只要具备一定的语法基础就可以了。 学一门语言并不需要刻意去记条条框框的语法,看代码的时候,遇到了不明白的地方再去查相关的资料,补充基础知识再配合源程序的思路,这时的理解才是最深刻的。 2、写程序 刚开始写程序,不
6、要奢望一下子写出很出色的程序来,“万丈高楼平底起”,编程贵在动手,只要动手去写就可以了。此外,还要依照自身的能力循序渐进地写,开始的时候写一点功能简单的、篇幅短小的代码,力求简洁、完整,然后在此基础上进行扩充,一点点的添加功能。 3、积累功能代码 积累非常的重要,将平时自己写的和自己已经读通的程序分类保存起来,建一个属于自己的代码库,需要相关功能的时候,就到代码库中找相关的代码。这样既提高编码的效率又提高了正确率。,http:/ C语系中,目前两大语言如日中天:C+和Java。C+适宜做系统软件的开发、Java更适宜做网络应用开发。 虽然VC+.NET已经面世很久了,但是C+的开发工具目前主流
7、依然是VC+6.0和C+ Builder6.0。 Java流行的开发工具比较多,比如:IBM公司的Visual Age和Websphere Studio,Insprise公司JBuilder等等。,http:/ Console Application”,选择工程存放的路径,然后输入工程名“proj3_1”,然后点击按钮“OK”。出现的界面如图3-5所示。 在图3-5的界面下选择创建工程的模板,选择空模板“An empty project”,点击按钮“Finish”,出现工程总结窗口,如图3-6所示。,http:/ 程序名称:proj3_1.cpp #include void main() co
8、ut “Hello C+“endl; ,http:/ 第一行:“#include ”意思是引入C+的基本输入输出函数库,在C语言中引入的是“stdio.h”库。在iostream.h文件中定义了cout的功能是输出,endl的功能是回车换行。 第二行:“void main()”,main()函数是C/C+的主函数,void表示该函数没有返回值。 第四行:“cout “Hello C+“endl;”,“cout”功能是向屏幕输出。,http:/ 1、面向过程的C语言。 2、面向对象的C+语言。 3、SDK编程。 4、MFC编程(Microsoft Foundation Class:微软基类库)。
9、,http:/ C语言直接调用操作系统提供的API函数可以编写非常前大的程序。 C和C+的最主要区别是:C语言中没有类的概念,C+在C的语法基础上引入了类(Class),所以C+和C的语法是基本相同的。面向过程编程,最基本的程序用C语言编写如proj3_2.cpp所示。 案例名称:使用C语言编程 程序名称:proj3_2.cpp #include main() printf(“Hello DOSn“); ,http:/ 读取命令行参数,main函数是程序的主函数,程序执行的时候先从main函数开始。 该函数可以带参数,第一个参数是int型的,第二个参数是字符指针,具体使用方法如proj3_3.
10、cpp所示。 案例名称:读取命令行参数 程序名称:proj3_3.cpp #include int main(int argc, char *argv ) int i; for (i = 1; i argc; i+) printf(“%sn“, argvi); return 0; ,http:/ 定义好的一个类,然后定义一个类的实例,这个实例就叫做对象,在C+中可以用类定义对象,使用方法如程序proj3_4.cpp所示。,http:/ 程序名称:proj3_4.cpp #include class person public: int heart; char *name; int run()
11、/定义成员函数run() heart=heart+20; return heart; ;,http:/ main() int iRunStop; person ZhangSan; ZhangSan.name = “张三“; ZhangSan.heart = 72; cout“姓名:“ZhangSan.name endl; cout“跑步前心跳“ZhangSan.heartendl; /run()为对象的方法 iRunStop = ZhangSan.run(); cout“跑步后心跳“iRunStopendl; ,http:/ 案例名称:调用C库函数 程序名称:proj3_6.cpp #incl
12、ude #include int main() DeleteFile(“C:test.txt“); printf(“删除成功n“); return 0; ,http:/ 程序名称:proj3_7.cpp #include int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) MessageBox (NULL, TEXT (“Hello, Windows!“), TEXT (“HelloMsg“), MB_OK) ; return 0 ; ,http:/ 是当
13、前实例的句柄。句柄是windows编程极其重要的概念。它是一个整数,用于标识程序、窗口和资源等。在这里hInstance表示应用程序本身。 参数二:hPrevInstance总是为NULL,在Windows早期版本中,当多次同时运行同一个程序时,系统会创建该程序的多个“实例”,同一程序的所有实例共享代码和内存。程序需要检查hPrevInstance来判断自身的其他实例是否正在运行,以便从已经存在的实例中获取数据。在32位版本中,统一程序运行方式改变了,不在需要了! 参数三:lpCmdLine是运行程序的命令行。用户可以单击”开始”菜单中的”运行“选项,然后输入命令来运行一个程序,并且可以指定运
14、行程序所需的参数,这里的命令由lpCmdLine传入。 参数四:nCmdShow用于指定程序窗口最初的显示模式,可以正常显示,也可以在初始化就最大化或者最小化。,http:/ WNDCLASS wc; HWND h_wnd; MSG msg; /* 消息处理函数wndProc的声明*/ long WINAPI WindowProc(HWND,UINT,WPARAM,LPARAM); /* winMain 函数的声明*/ int PASCAL WinMain(HINSTANCE h_CurInstance,HINSTANCE h_PrevInstance,LPSTR p_CmdLine,int
15、m_Show) /*初始化wndclass结构变量*/ wc.lpfnWndProc =WindowProc; wc.hInstance =h_CurInstance; wc.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH); wc.lpszClassName =“TheMainClass“;,http:/ 注册WndClass结构变量*/ RegisterClass( ,http:/ Foundation Class)。 MFC程序的最基本的程序骨架如proj3_9.cpp所示。,http:/ class sample:public CFr
16、ameWnd public: sample() /构造函数 Create(NULL,“My Window“); MessageBox(“My Window“,“CFrame constructor“); ; class App:public CWinApp public: BOOL InitInstance(); BOOL ExitInstance(); ;,http:/ BOOL App :InitInstance() MessageBox(0,“My Window“,“InitInstance“, MB_OK|MB_ICONASTERISK); sample *obj; obj=new s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学课件 大学 课件 网络安全 编程 基础
链接地址:https://www.31doc.com/p-3025377.html