文档详情

软件保护技术-备课.doc

发布:2018-05-20约8.15万字共75页下载文档
文本预览下载声明
软件保护技术 备课笔记 步山岳 计算机工程系 第1章 基础知识 1.1文本编码方式 美国信息交换标准码(ASCII: American Standard Code for Information Interchange)是一个七位的编码标准,包括26个小写字母、26个大写字母、10个数字、32个符号、33个控制代码和一个空格,总共128个代码。如“1”的ASCII码是31H(48D),“A”的ASCII码是41H(65D),“a”的ASCII码是61H(97D)。 由于计算机通常用一个“字节( byte)”8位二进制的存储单位来进行信息交换,因此,ASCII码在计算机中用8位来表示,最高位补0。其他字符集,是对ASCII码的扩展,例如ANSI(American National Standards Institute)、Symbol、OEM等字符集是8位字符集,值在127以下的部分是和ASCII相同。 Unicode也是ASCII的一个扩展。在Unicode用两个字节来表示,是一种双字节编码机制的字符集,可表示65536个字符,使用0~65535之间的双字节无符号整数对每个字符进行编码,本书把Unicode称宽字符(Widechars) 在Unicode中,所有的7位ASCII码都被扩充为16位,高位扩充的是零。如“pediy”,它的ASCII码是: 0x70 0x65 0x64 0x69 0x79 其Unicode码的十六进制是: 0x0070 0x0065 0x0064 0x0069 0x0079 Intel处理器存放数据时,低位字节存入低地址,高位字节存入高地址。 注意:内存地址编号是“上(左)”为低地址编号,“下(右)”为高地址编号,看图1.1。 1.2 Windows API函数 1.2.1什么是API函数 1.什么是API函数? API函数是提供应用程序运行所需要的窗口管理、图形设备接口、内存管理等各项服务功能的函数,提供这些功能以函数库的形式组织在一起,形成了Windows应用程序编程接口(API Application Programming Interface),简称WinAPI。 看图1.2,Win API子系统将API调用转换成Windows操作系统的系统服务调用,在它的下面是Windows的操作系统核心,而它的上面则是Windows应用程序。可以说Win API是构筑Windows框架的核心基石。 API函数从Windows 1.0支持不到450个函数,到现在己有几千个函数。 2.API函数在计算机或操作系统的什么地方? API函数在计算机或操作系统的什么地方:动态链接库DLL(Dynamic-Link Library),Windows运转的核心就是“动态链接”。 3.什么是动态链接库DLL? DLL就是包含了若干个函数、类和资源的库文件,它可以被其它可执行文件(如.EXE文件和其它DLL文件)动态调用。 4.动态链接库的优点 使用DLL的使多个应用程序,甚至是不同语言编写的应用程序可以共享一个DLL文件,真正实现了“资源共享”,同时,节省内存,减少交换操作,节省磁盘空间DLL自己不能直接执行,但其他程序可以调用 DLL 中的一个实例。在静态链接中,链接器从静态链接库获取所有被引用的函数,并将库同代码一起放到可执行文件中。内存DLL中,如: Kernel32..dll:包括进程与线程控制、内存管理、文件访问等,提供操作系统核心功能服务; User32.dll:负责处理用户接口,包括键盘和鼠标输入、窗口和菜单管理等; Gdi32.dll:图形设备接口,允许程序在屏幕和打印机上显示文本和图形; Kernel、User和GDI是Windows三个主要的动态链接库。 Advapi32.dll:包括对象安全性、注册表操作; COMCTL32.DLL:通用控件; COMDLG32.DLL:公共对话框; SHELL32.DLL:用户界面外壳; DIBENG.DLL:图形引擎; NETAPI32.DLL:网络。 6.DLL文件位置 在Windows NT/2000/XP中,这些DLL文件通常位于系统安装目录里的Windows\SYSTEM或Windows\S YSTEM32子目录中。 1.2.2 什么是句柄 句柄(Handle)是Windows用来标识被应用程序所建立或使用的对象的唯一整数值(32位,
显示全部
相似文档