Windows逆向工程入门之进制拓展(BIN OCT DEC HEX)

  • 公开视频 -> 链接点击跳转公开课程
  • 博客首页 -> ​​​链接点击跳转博客主页

目录

一、进制基础

1. 什么是进制?

二、二进制、八进制、十六进制的定义和规则

1. 二进制 (Binary)

示例:

2. 八进制 (Octal)

示例:

3. 十六进制 (Hexadecimal)

示例:

三、进制映射关系

1. 二进制与八进制映射

示例:

2. 二进制与十六进制映射

示例:

四、进制运算原理

1. 二进制运算

五、进制转换算法

1. 任意进制 -> 十进制

示例:

2. 十进制 -> 任意进制

示例:

六、进制的拓展应用

                                                                                                          


进制的理解和运用是计算机科学中的基础技能,也是逆向工程的一项核心知识。

在逆向工程中,处理代码、数据、内存等信息时,广泛使用的是二进制、八进制和十六进制。


一、进制基础

1. 什么是进制?

进制指的是数的表示方式,决定了每位数字所能表示的符号数量。常见的进制包括:

  • 二进制:基数为2,仅使用符号 0 和 1
  • 八进制:基数为8,使用符号 0 ~ 7
  • 十进制:基数为10,使用符号 0 ~ 9(我们日常使用的数制)。
  • 十六进制:基数为16,使用符号 0 ~ 9 和 A(10) ~ F(15)

在计算机领域,二进制是核心数制,但由于二进制表示较长,通常扩展使用十六进制八进制作为简化形式。


二、二进制、八进制、十六进制的定义和规则

1. 二进制 (Binary)

  • 基数:2
  • 数字范围:0, 1
  • 特点:计算机的基础语言,所有数据和指令以二进制形式存储和执行。
  • 应用:逻辑运算、内存地址表示、机器码编写。
示例:

二进制数 1011 表示:


2. 八进制 (Octal)

  • 基数:8
  • 数字范围:0-7
  • 特点:在Unix系统中用于表示权限设置。
  • 应用:简化二进制的表示,3位二进制对应1位八进制。
示例:

八进制数 157 表示:


3. 十六进制 (Hexadecimal)

  • 基数:16
  • 数字范围:0-9, A-F
  • 特点:常用于表示内存地址、颜色编码。
  • 应用:简化二进制数据表示,4位二进制对应1位十六进制。
示例:

十六进制数 2F 表示:


三、进制映射关系

1. 二进制与八进制映射

二进制每 3位 转换成 1位八进制数字

二进制八进制
0000
0011
0102
0113
1004
1015
1106
1117
示例:

二进制 110011 转换为八进制:

二进制分组: 110 011

转换为八进制:6 3

结果:63(八进制)


2. 二进制与十六进制映射

二进制每 4位 转换成 1位十六进制数字

二进制十六进制
00000
00011
00102
00113
01004
01015
01106
01117
10008
10019
1010A
1011B
1100C
1101D
1110E
1111F
示例:

二进制 110110101 转换为十六进制:

二进制分组: 0001 1011 0101

转换为十六进制:1 B 5

结果:0x1B5(十六进制)


四、进制运算原理

除了进制之间的转换,理解进制运算在逆向工程中也非常重要。

1. 二进制运算

  • 加法
    按位相加,进位规则与十进制相同。
  • 逻辑运算(常见于位操作):

    • AND(与 &:只有两位都为1,结果才为1。
    • OR(或 |:只要两位有一个为1,结果就为1。
    • XOR(异或 ^:两位不同,结果为1;相同则为0。
    • NOT(取反 ~:将位上的0变为1,1变为0。
  • 移位运算

    • 左移(<<):将所有位向左移动若干次,用0填充右侧。
    • 右移(>>):将所有位向右移动若干次,用0或符号位填充左侧。

五、进制转换算法

1. 任意进制 -> 十进制

将每一位数字乘以对应进制的权值(幂),再求和。

示例:

二进制数 1101 转为十进制:

1 * 2^3 + 1 * 2^2 + 0 * 2^1 + 1 * 2^0 = 8 + 4 + 0 + 1 = 13 结果:13(十进制)


2. 十进制 -> 任意进制

采用除基取余法,从高位到低位依次取商的余数。

示例:

十进制数 123 转换为二进制:

123 / 2 = 61 余 1 61 / 2 = 30 余 1 30 / 2 = 15 余 0 15 / 2 = 7 余 1 7 / 2 = 3 余 1 3 / 2 = 1 余 1 1 / 2 = 0 余 1 结果:1111011(二进制)


六、进制的拓展应用

  1. 计算机内存中的数据表示

    • 字节(Byte)和位(Bit):1字节通常表示8位的二进制。
    • 地址:内存地址通常用十六进制表示,如0x7FFF1234
  2. 字符编码

    • ASCII:每个字符占用1个字节,十六进制应用广泛(如:A -> 0x41)。
    • Unicode:支持更多字符,每个字符占用2字节或更多,十六进制如U+0041
  3. 位图图像
    像素的颜色数据以二进制或十六进制储存,例如:

    • 黑色:0x000000
    • 白色:0xFFFFFF
  4. 逆向工程与调试

    • 反汇编代码:常用十六进制高效表示指令的机器码。
    • 内存查看:调试器如IDA Pro和x64dbg中内存地址以十六进制显示。
  5. 加密与编码

    • 哈希值(Hash):如MD5输出为十六进制。
    • Base64编码:原始数据以二进制表示,经过编码变为文本。

                                                                                                          

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/967411.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】_堆的实现

目录 1. 堆的实现 1.1 Heap.h 1.2 Heap.c 1.3 Test_Heap.c 专栏前文中&#xff0c;已经介绍了入堆及向上调整算法&#xff0c;出堆及向下调整算法&#xff0c;详情见下文&#xff1a; 【数据结构】_堆的结构及向上、向下调整算法-CSDN博客文章浏览阅读352次&#xff0c;点…

重启电脑之后vscode不见了

某天重启电脑之后发现vscode被删除 双击发现是 后面追溯到文件夹下面发现有一个文件夹的名字叫_ 把这个文件夹打开发现之前的包全在这里面 只需要把这个包里面的文件全部移到上一级即可

高级加密标准AES候选算法之一Crypton

目录 (1)轮密钥加 (2)列混合变换 (3)字节替代变换 (4)字节置换变换 Crypton的加密算法 Crypton的解密算法 密钥扩展算法 高级加密标准AES候选算法之一Crypton Crypton算法是由Chae Hoon Lim于1998年设计的,它是被接受为AES侯选者的15种分组密码之一。该算法是…

2025最新主流深度学习算法全解析

深度学习&#xff1a;开启智能时代的钥匙 在当今数字化时代&#xff0c;深度学习无疑是人工智能领域中最为耀眼的明星。它如同一把神奇的钥匙&#xff0c;开启了智能时代的大门&#xff0c;让计算机从简单的数据处理迈向了复杂的智能决策。深度学习通过构建具有多个层次的神经网…

51单片机(国信长天)矩阵键盘的基本操作

在CT107D单片机综合训练平台上&#xff0c;首先将J5处的跳帽接到1~2引脚&#xff0c;使按键S4~S19按键组成4X4的矩阵键盘。在扫描按键的过程中&#xff0c;发现有按键触发信号后(不做去抖动)&#xff0c;待按键松开后&#xff0c;在数码管的第一位显示相应的数字:从左至右&…

如何在浏览器中搭建开源Web操作系统Puter的本地与远程环境

文章目录 前言1.关于Puter2.本地部署Puter3.Puter简单使用4. 安装内网穿透5.配置puter公网地址6. 配置固定公网地址 前言 嘿&#xff0c;小伙伴们&#xff01;是不是每次开机都要像打地鼠一样不停地点击各种网盘和应用程序的登录按钮&#xff0c;感觉超级麻烦&#xff1f;更让…

【JavaScript】this 指向由入门到精通

this 的概念 this 在JavaScript 及其其他面向对象的编程语言中&#xff0c;存在的目的是为了提供一种在对象方法中引用当前对象的方式。 它为方法提供了对当前实例的引用&#xff0c;使得方法能够访问或者修改实例的成员变量。 注意点&#xff1a; this 的绑定和定位的位置…

javaEE-10.CSS入门

目录 一.什么是CSS ​编辑二.语法规则: 三.使用方式 1.行内样式: 2.内部样式: 3.外部样式: 空格规范 : 四.CSS选择器类型 1.标签选择器 2.类选择器 3.ID选择器 4.通配符选择器 5.复合选择器 五.常用的CSS样式 1.color:设置字体颜色 2.font-size:设置字体大小 3…

数据中台是什么?:架构演进、业务整合、方向演进

文章目录 1. 引言2. 数据中台的概念与沿革2.1 概念定义2.2 历史沿革 3. 数据中台的架构组成与关键技术要素解析3.1 架构组成3.2 关键技术要素 4. 数据中台与其他平台的对比详细解析 5. 综合案例&#xff1a;金融行业数据中台落地实践5.1 背景5.2 解决方案5.3 成果与价值 6. 方向…

Linux磁盘空间使用率100%(解决删除文件后还是显示100%)

本文适用于&#xff0c;删除过了对应的数据文件&#xff0c;查看还是显示使用率100%的情况 首先使用df -h命令查看各个扇区所占用的情况 一、先对系统盘下所有文件大小进行统计&#xff0c;是否真的是数据存储以达到了磁盘空间 在对应的扇区路径下使用du -sh * | sort -hr 命…

DeepSeek--教师备课效能100%

关键功能深度解析 深度思考&#xff08;R1&#xff09; 开启这个功能&#xff0c;就如同为 DeepSeek 赋予了深度思考的 “大脑”。当你向它咨询备课问题时&#xff0c;它会像经验丰富的教师一样&#xff0c;在 “脑海” 中梳理思路&#xff0c;不仅给出答案&#xff0c;还会展…

基于Java的自助多张图片合成拼接实战

目录 前言 一、图片合成需求描述 二、图片合成设计与实现 1、编程语言 2、基础数据准备 3、图片合成流程 4、图片合成实现 三、总结 前言 在当今数字化时代&#xff0c;图像处理技术在各个领域都发挥着至关重要的作用。从社交媒体到电子商务&#xff0c;从在线教育到虚拟…

大模型基本原理(四)——如何武装ChatGPT

传统的LLM存在几个短板&#xff1a;编造事实、计算不准确、数据过时等&#xff0c;为了应对这几个问题&#xff0c;可以借助一些外部工具或数据把AI武装起来。 实现这一思路的框架包括RAG、PAL、ReAct。 1、RAG&#xff08;检索增强生成&#xff09; LLM生成的内容会受到训练…

电控--PWM

理论知识 脉宽调制&#xff08;Pulse Width Modulation&#xff0c;PWM&#xff09; 对脉冲信号的宽度改变并输出出来高频的PWM波可以让设备进行频繁开关、通断 PWM波形的参数 周期(T)&#xff1a;完整脉冲循环时间&#xff08;单位&#xff1a;秒&#xff09;频率(f)&…

CNN卷积神经网络多变量多步预测,光伏功率预测(Matlab完整源码和数据)

代码地址&#xff1a;CNN卷积神经网络多变量多步预测&#xff0c;光伏功率预测&#xff08;Matlab完整源码和数据) 标题&#xff1a;CNN卷积神经网络多变量多步预测&#xff0c;光伏功率预测 一、引言 1.1 研究背景及意义 随着全球能源危机的加剧和环保意识的提升&#xff…

在clion中对linux的工程进行远程调试

本地主机&#xff1a;windows 远程主机:ubuntu 0. 建立一个用于同步远程工程代码的文件夹 在windows上新建了一个iot_frame_0210文件夹&#xff0c;用于远程调试&#xff0c;远程的代码会被下载到这个本地目录。 调试的时候&#xff0c;如果修改文件&#xff0c;则不会直接…

使用sunshine和moonlight串流时的音频输出问题

设备&#xff1a;电脑和平板串流&#xff0c;把平板当副屏使用 1.如果启用安装steam音频驱动程序&#xff0c;则平板有声&#xff0c;电脑无声&#xff0c;在moonlight端可以设置平板和电脑同时发声&#xff0c;但是有点卡 2.只想电脑发声&#xff0c;平板无声 禁用安装steam…

postgresql 游标(cursor)的使用

概述 PostgreSQL游标可以封装查询并对其中每一行记录进行单独处理。当我们想对大量结果集进行分批处理时可以使用游标&#xff0c;因为一次性处理可能造成内存溢出。 另外我们可以定义函数返回游标类型变量&#xff0c;这是函数返回大数据集的有效方式&#xff0c;函数调用者…

深入探索人工智能的未来:DeepSeek R1与蓝耘智算平台的完美结合

在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;和机器学习&#xff08;ML&#xff09;正以前所未有的速度改变着我们的生活和工作方式。从智能语音助手到自动驾驶汽车&#xff0c;从精准医疗到金融风险预测&#xff0c;AI的应用无处不在。深度学习作为AI的核…

树和二叉树_9

树和二叉树_9 一、leetcode-107二、题解1.引库2.代码 一、leetcode-107 二叉树的层序遍历Ⅱ 给你二叉树的根节点 root &#xff0c;返回其节点值 自底向上的层序遍历 。 &#xff08;即按从叶子节点所在层到根节点所在的层&#xff0c;逐层从左向右遍历&#xff09;。 样例输…