二进制 0 1 绘图
code.org注册并完成5个课程,最后实现黑白和彩色两张二进制图片
图1↑
图1可以看出来二进制的代码和图的基本是一致的,0/1分别代表黑白两个颜色,这个是没有颜色的模式的情况下
图2↑
图2可以看出来,是6位二进制代表一个色块(没有列举所有颜色),分别是红、绿、蓝组合而成的;而一个显示器颜色组成是十六进制(RGB等其他进制先不说吗就举例十六进制)#FFFFFF ,井号是表示不做特别说明,后面的6位组成一个颜色,一个16进制是4个二进制组成,6个则是24个二进制组成,如下图
下面是16进制的↓
有以上等内容(过程的练习未全部展现)学习到二进制组成的逻辑和思维模式
二进制文件(例:文本与图片)
根据之前学习到的内容,借助软件查看文件的二进制情况,以txt文本和bmp图片为里做展示
文本:
下面是二进制文件
对照下图ASCII可以看出文本中的字母全部是由其他进制的编码进行转换对应展现的,↓截图是十进制,但解码器我用的是十六进制,也能专其他进制,逻辑是一样的,就是系统中做了有了设置的(中文相关会在后面做说明)
bmp二进制图片:
8*8的全黑图片
用来两个图片做比对,一个是全黑的一个是全白的,发现坐标3a之后是颜色的修改内容,坐标3a之前是头文件的相关内容(用bmp做距离是因为相关的对比简单好找,png中会有其他的内容,想jpg这种带有压缩编码的比对难度更大,这里不做多说明了)
白↓ 黑↑
二进制、八进制、十进制、十六进制内容及转换
二进制:0 1
八进制:0,1,2,3,4,5,6,7 (三个二进制=一个八进制;000=0 001=1 111=7)
十进制八进制和二进制一样不过是除8
十进制:0,1,2,3,4,5,6,7,8,9(二进制从小数点个位为0次幂逐一增加乘后相加)
1001 0110
127+026+025+124+023+122+121+020=150(小数部分是2-1、2-2开始一致往后负数)
十进制整数转换成二进制采用“除2倒取余”,十进制小数转换成二进制小数采用“乘2取整”
十六进制:0,1,2,3,4,5,6,7 ,8,9,a,b,c,d,e,f (四个二进制=一个十六进制;)
十进制十六进制和二进制一样不过是除16
ASCII、UrlEncode和Unicode
ASCII码:在二进制文件的时候有说明,其实就是美国定义的一种编码方式来显示字母数字符合等内容
Unicode:统一码,也叫万国码、单一码(Unicode)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求(双字节编码)。定义处处是百度百科;
上图是16进制Unicode编码
修改植物大战僵尸1的游戏存档关卡和金额
在C判路径下找到dat文件【C:\ProgramData\PopCap Games\PlantsVsZombies\userdata】
打一局后如下图样子2
再打一局变成了下图3
比对两个内容修改数据,能够直接跳过出现商店图鉴等内容,但是改为20进入关卡报错,后来从20改为0f不报错了,又打了一句在修改关卡数据就不咋报错了(只要打完金币前置关卡在修改关数就不报错了)
当前商点金额
修改位置18 19 1a 三个位置
修改后金额
在修改过程中发现了能改为负数
结果
第四位多少和这个符号正负号有点关系,不过不是为了做破解而是为了做了解编码所所以不做深究了
根据以上内容学习到了,所有计算机文件的内容都可以通过二进制软件进行打开,并且能够做对应修改,前提是找到对应规律