CSDN认证C1等级考试——练习(一)
1-1 用"0"和"1"绘图
通过改变二进制编码的形式改变矩形方块组的长和宽方向上方块的个数,并且通过对应顺序的二级制编码定义每个方块的颜色(1白0黑):
上边的例子是一个像素块用一个二进制数字(bits)表示,实际上一个像素块可以用多个bits表示:
二进制数字(Binary)也可以转换成十六进制(Hexadecimal),二进制编码与十六进制编码之间可以相互转换:
2^24=16777216,用24位二进制编码可以表示2^24(16^6)种不同的颜色:
1-2 掌握进制编辑器
用进制编辑器打开一个写有"JAVA"的文本,界面如下图所示:
创建一个8X8像素的位图(1.bmp),共246个字节,对应的十六进制编码如下图所示:
经过多次实践,246个字节中,前54个字节表示该位图的尺寸大小,后面192个字节全部是位图的颜色信息,因为一共有8x8=64个字节,192/64=3,即每个像素点用占用3个字节来表示,每个字节是2个十六进制数字,3x2=6,16^6=2^24,这也对应了这张图片确实是24位深度的。
经过多次修改十六进制编码,发现从第55个字节(包括)之后的192个字节竟然要倒带读取,也就是从最后的一个字节依次往前读取,且所对应的64个像素在该位图中的排列顺序是从右上角开始,按照从右往左,从上往下的顺序排列。修改的十六进制编码和另存为的位图(2.bmp)打开后如下图所示:
拓展:修改游戏存档:
以下要求的基础是要找到安装在电脑上的植物大战僵尸的userdata中的字节码文件(user1.dat),我的地址是在C:\ProgramData\PopCap Games\PlantsVsZombies\userdata。
要求1:用二进制编辑器修改《植物大战僵尸》的存档文件,能跳到指定关卡,例如「5-1]:
经过多次实践得出,修改第1行第5列(04列)的字节,可以修改当前用户的关卡存档:
要求2:用二进制编辑器修改《植物大战僵尸》的存档文件,让游戏账户有指定数量的金币:
修改第一行第9、10列(08、09列)的字节,可以修改当前用户的金币余额存档:
要求3:通过二进制编辑器修改存档文件,能解锁《植物大战僵尸》的「迷你游戏」选项:
要求4:通过二进制编辑器修改存档文件,能解锁《植物大战僵尸》的「生存模式」选项:
修改第一行第13列(0c列)的字节,可以修改当前用户的模式解锁(改成03就全部解锁了):