什么是十六进制编辑器?

时间:2015-11-09 20:41:18

标签: binary hex editor

十六进制编辑器的目的是什么?它是一种编程语言,如C或Python,我如何学习编程?另外,有没有办法用二进制代码?我读了一篇关于史蒂夫·乔布斯的自传,有一次我认为他的一个同事不得不用二进制编写一个程序,学习怎么做似乎很酷。我没有解决现实世界的问题,我只是好奇。我对计算机有一个非常基本的了解,所以假装你正在向五年级学生解释这一点。

2 个答案:

答案 0 :(得分:0)

系统中的大多数可执行文件都是二进制文件。有时检查二进制内容可能很重要,但只读0和1的大文件是一项相当繁琐的工作。这个想法是每个四个0和1的集团可以用一个十六进制符号表示:0,1,2,3,4,5,6,7,十六进制编辑器将有助于读取任何类型的二进制内容(例如网络上的文件或tcp帧)的任务。但请注意,即使是十六进制,您也需要良好的计算机知识才能理解文件内容。

答案 1 :(得分:0)

我们使用的大多数编程语言都是高级别的,因为它们在机器可以实际识别之前被翻译了好几次。你的CPU实际上执行非常简单的指令,由0和1编码,如添加,逻辑或从存储器地址加载一个数字到寄存器(所以我们可以添加或操纵值),等等。 / p>

那么这个翻译怎么样?好吧,假设你已经在C中编写了一个简单的hello world程序。它需要被转换为机器代码,即所谓的编译过程。在此阶段,您的代码将根据您的特定CPU(程序集)转换为中间语言。这应该是人类可读的机器指令(前面提到的添加,加载等)。然后机器指令进一步转换为0和1。

例如,添加MIPS CPU架构如下:

0000 0000 0010 0010 0001 1000 0010 0000

基本上说,添加存储在寄存器1和2中的值,并将结果放在寄存器3中。

事情很长,所以我们通常不用二进制编写,而是用十六进制编写。四个0和1压缩成一个数字,我们得到:

00 22 19 20

因此,当您在十六进制编辑器中打开可执行文件时,所有这些值都包含上述指令,静态数据,库等。编辑这些值时,假设您知道自己在做什么,可以更改软件的行为。

但是,您不希望以二进制编写程序。这很痛苦。如果您对此感兴趣,我建议您查看汇编以及CPU的工作方式。

您在机器代码中编写的优势可能超过C:

  1. 您可以通过自己的工作获得更大的灵活性。您可以在整个程序中管理您的资源,这样您就可以优化所有内容。飞机上的一些时间敏感仪器是用汇编写的。

  2. 您可以全面了解该计划的每个部分的运作方式。

  3. 缺点:

    1. 要立刻记住这么多事情是非常困难的。它非常容易出错,而且很难调试。
    2. 非常耗时。你在装配中大约有十分之一的写作效率,所以在机器代码中更糟糕,因为你需要查找操作代码翻译。
    3. 它不是平台独立的。机器代码是按照CPU架构进行的,因此您的Windows代码(x86架构)无法在Mac上运行,而C程序可以立即重新编译并运行。