吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 4306|回复: 69

[汇编] 第1章 数据的存储及表示形式

  [复制链接]
大飞哥自习室 发表于 2022-3-19 12:15 | 显示全部楼层 |阅读模式

学习过计算机的读者都知道,计算机中的各种数据都是以二进制形式进行存储的,无论是文本文件、图片文件,还是音频文件、视频文件、可执行文件等,统统都是由二进制文件存储的。学习过计算机的读者在学习计算机基础的时候一定学习过进制转换,也一定学习过数据的表示方式等,大部分人在学习这部分知识时会觉得枯燥、无用,但是对于学习逆向知识和使用逆向工具,数据的存储及表示形式是必须要掌握的。
本章借助OllyDbg这款调试工具来一起讨论数据的存储及表示形式,让读者对于学习计算机的数据存储及表示可以更加的感性,从而脱离纯粹理论性的学习。
本章内容较为枯燥,但是着实是学习逆向的基础知识,对于从来没有接触过逆向或者是刚开始接触逆向的读者,本章内容还是有一定帮助的。
本章关键字:进制数据表示数据转换数据存储
1.1  进制及进制的转换
了解进制的概念及进制的转换是学习逆向的基础,因为计算机使用的进制是二进制,它又不同于我们现实生活中使用的十进制,因此我们必须学习不同的进制及进制之间的转换。
1.1.1现实生活中的进制与计算机的二进制
我们在现实生活中会接触到多种多样的进制,通常见到的有十进制、十二进制和二十四进制等。下面分别对这几种进制进行举例说明。
十进制是每个人从上学就开始接触和学习的进制表示方法。所谓的十进制,就是逢十进一,最简单的例子就是9+1=10。这个无需过多解释。
十二进制也是我们日常生活中常见的表示方法。所谓的十二进制,就是逢十二进一,例如12个月为1年,13个月就是1年1个月。
二十四进制也是我们日常生活中常见的表示方法。所谓的二十四进制,就是逢二十四进一,例如24小时为1天,25小时就是1天1小时。
介绍了以上现实生活中的例子后,我们再来说说计算机中的二进制。根据前面各种进制的解释,我们可以想到,二进制就是逢二进一。这里举个不太恰当的例子,例如2斤就是1公斤。
在计算机中为什么使用二进制呢?简单说就是计算机用高电平和低电平来表示1和0最为方便和稳定,高电平被认为是1,低电平被认为是0,这就是所谓的二进制的来源。
由于二进制在阅读上不方便,计算机又引入了十六进制来直观地表示二进制。所谓的十六进制,就是逢十六进一。
因此在计算机中,我们常见的数据表示方法有二进制、十进制和十六进制。

1.1.2进制的定义
在学习小学数学的时候我们就学习了十进制,十进制一共有十个数字,从0一直到9,9再往后数一个的时候要产生进位,也就是逢十进一。总结十进制的定义则是,由0到9十个数字组成,并且逢十进一。
举一反一地来说,二进制的定义是,由0到1两个数字组成,逢二进一。十六进制的定义是由0到9十个数字和A到F六个字母组成,逢十六进一。
由此,我们衍生出N进制的定义是,由N个符号组成,逢N进一。表1-1所列为这三种进制的数字表。
QQ截图20220319121135.png
1.1.3进制的转换
在逆向当中,我们直接面对的通常是十六进制,而由于很多原因,我们需要将其当作十进制或二进制来查看,当然也有可能需要根据二进制转换成十六进制或十进制。所以,我们就需要掌握进制之间的转换。
1.二进制转十进制
二进制整数的每个位都是2的幂次方,最低位是2的0次方,最高为是2的(N-1)次方,我们通过一个例子进行说明。我们把二进制数10010011转换成十进制数,计算方式如下:
10010011 = 1 × 27+ 0 × 26+0× 25+1× 24+ 0 × 23+ 0 × 22+ 1 × 21+ 1 × 20= 128 + 0 + 0+16 + 0 + 0 + 2 + 1 = 147
我们得出的结果是,把二进制10010011转换成十进制后是147。我们用计算机进行验算,如图1-1和图1-2所示。
从图1-1和图1-2中可以看出,我们的计算结果是正确的,由此读者在计算二进制时按照上面转换的例子进行转换即可。

QQ截图20220319121246.png
QQ截图20220319121323.png
2.十六进制与二进制的转换
由于一个简单的数值用二进制表示需要很长的位数,这样对于阅读很不方便,因此汇编和调试器常用十六进制表示二进制。十六进制的每个位可以代表4个二进制位,因为2的4次方刚好是16。这样,在二进制与十六进制之间就产生了一个很好的对应关系,如表1-2所列。
QQ截图20220319121444.png 根据此表,我们可以很快地把二进制和十六进制进行转换,把上例的二进制10010011转换成十六进制,转换过程如下:
第一步,把10010011从最低开始按每四位分为一组,不足四位前面补0,划分结果为10010011;
第二步,把划分好的组进行查表,1001对应十六进制是9,0011对应的十六进制是3。
那么,二进制10010011转换成十六进制后的值是93。读者可以通过计算器自行进行验算。在逆向中常用的就是二进制与十进制的转换,或者是二进制与十六进制的转换,其他的转换方式读者可以自行查找资料进行学习。关于十六进制和二进制需要记住的重要一点就是,一位十六进制数可以表示四位二进制数。

评分

参与人数 16HB +16 THX +7 收起 理由
花盗睡鼠 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
消逝的过去 + 1
后学真 + 1
yexing + 1
taykey + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
凌夏随缘 + 1
于理 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
louhaihua + 2 + 1
agan8888 + 1
DeeDarrick + 2 <span class="text2Link">[吾爱汇编论坛 <a target="_blank">52HB.COM</a>]- 感谢楼主热心分享,小小评分不成敬意!</span>.
一蓑烟雨 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
ldljlzw + 1
河图 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
成丰羽 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
zxjzzh + 2 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
莣孒嬡沵芣蓜 + 4 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
JeBvf102 发表于 2022-3-19 12:17 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
vpgPGJRwInb 发表于 2022-3-19 12:27 | 显示全部楼层

看着很不错,回复一个看看
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
zvQeu064 发表于 2022-3-19 13:41 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
AjI9634 发表于 2022-3-19 14:35 | 显示全部楼层

感谢楼主
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
zwd841 发表于 2022-3-19 15:26 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
MUt309 发表于 2022-3-19 15:39 | 显示全部楼层

感谢楼主
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
heCJlyuDEv 发表于 2022-3-19 17:12 | 显示全部楼层

感谢楼主
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
NVFpaWQXA 发表于 2022-3-19 17:49 | 显示全部楼层

谢谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
MBIZaQ 发表于 2022-3-19 17:49 | 显示全部楼层

楼主的帖子不错,多发点~
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表