系统
wiki
虚拟机:VM16P,除了NT3.51,都能装;virtualbox,弥补VM的不兼容。
分析:HxD,OllyDBG。主机无法通过进程获取VM虚拟系统的内存,如果无法使用OD,不会用debug。可以通过VB的进程查看内存
前言
UCS-2⊊Unicode
UCS-2≦U+FFFF
GB2312(Win 3.2)
GBK(Win95~ME)
UCS-2(Win NT 3.51~NT 5.2 XP)
UTF-16(Win NT 6.0 Vista~NT 10)
Windows字符编码的使用和显示,是写在内核里的,如上图所示,例如win95、win98是同一系列的内核,所以都使用GBK作为字符编码,这种根植于字符在内存中是以什么样的形态存在,在这些系统中,编辑记事本等,输入字符时,字符在内存中的形态就是GBK,再此基础下,大魔王编写的游戏则是日文的编码,他想编码成Unicode、他国语言,即便工具可以做得到,但是在运行时,基于Windows字符编解码的话,还是会乱码。直到NT系统、XP之后,Windows核心字符编码使用了Unicode
ANSI:AMERICAN NATIONAL STANDARDS INSTITUTE,只是因为各国有自己的编码标准,所以微软只是将这些标准分为某个编号,ANSI可以简单的理解为标准编码,只不过这个标准是对应系统语言的
windows的文本显示,基于内核,例如早期版本只支持一个文字编码,这使得系统如果遇到不是自身编码支持的文本,不借助外部工具的话,无力为止。而在系统支持Unicode和多国编码后,可以修改设置以正确解码文本。
2.1 仅是图形化的文件管理器
3.2 是第一个支持中文的系统,也是唯一一个使用GB2312为字符编码的中文系统,之后的中文系统都使用GBK字符编码
NT3.1 第一款32位系统
NT3.5 第一款不基于DOS的系统
NT3.51 第二款支持中文的系统,Unicode内核编码,ANSI为GBK编码
4.X / 9X,仅安装了当前语言的Code page,例如简体中文,内核是GBK
NT4.X,Unicode内核编码,9X界面,支持多国语言输入法
NT5.X(2000、XP),编码是UCS-2,但超过U+FFFF的,无法正常显示,但可以正常编解码
NT6.X,良好的支持UTF-16
DOS
DOS的时候,已经有了codepage
在安装DOS7的时候,也提示选择codepage,虽然并没有看到什么不同
Windows 2
windows 2,第一次的MS中文系统,DOS都是挂载额外的中文部件,才能显示中文
Win2的记事本
Windows 3
语言设置,这里就开始有,但是随后的9X取消了,修改为其他国家的语言,需要DLL文件
Win3的造字程序,两个区域的国标码,可以自造字形
尚未支持GBK,仅支持GB2312