加解密相关系统基础知识
Unicode编码格式
- Unicode编码中使用2字节对字符进行编码,对ASCLL码的支持通过愿为不变,高位补零实现
- 一个字有2字节,Intel在存入储存器时低位入低地址,高位入高地址(Little-endian)
- 另一种方式与之相反(Big-endian),这种方式更多用于PowerPc和网络通信
Windows中的主要子系统
- Kernel(由KERNEL.DLL实现),操作系统核心功能服务,包括进程与线程控制,内存管理,文件访问等
- User(由USER32.DLL实现),负责处理用户接口,包括键盘和鼠标的输入,窗口和菜单管理
- GDI(由GDI32.DLL实现),图形设备接口,允许程序在屏幕和打印机上显示文本和图形
- 其他:对象安全性与注册表操作(ADVAPI32.DLL),通用控件(COMCIL32.DLL),公共对话框(COMDLG32.DLL),用户界面外壳(SHELL32.DLL),网络(NETAPI32.DLL)
WOW64(windows-on-windows 64-bit),64位windows的子系统,可使大多数32位应用程序在不修改的情况下运行于64位的操作系统
64位系统文件位于 “System32”,32位系统文件位于 “SysWOW64”
每一个程序都有独立的4GB地址空间,其中2GB由系统使用,即都以00000000h到FFFFFFFFh,虚拟内存管理器将其映射到对于的物理内存,其中细节无需操心,开始时,虚拟内存管理器将程序代码读入物理内存,并分配一个虚拟地址(这个地址在不同环境,不同机器下一般是相同的),这是程序自己的独立地址空间,不论在什么机器上,都可以通过此地址访问到自己的代码,就好像一个人带着书包出远门,在家里时水是放在书包第一格的位置,到了学校,水还是在这个位置。程序的地址空间就是书包,而真实的物理地址就不用操心了,因为实际意义不大。