问题标签 [hex-editors]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3691 浏览

security - 是否可以从二进制可执行文件中提取常量和其他预定义值?

假设我们这里有这个程序

现在,在构建这个程序之后,有没有办法使用十六进制编辑器或其他一些实用程序从编译的二进制文件中提取值“foo”和“bar”?

还让我们假设不允许使用内存编辑器。

这适用于 C++ 等所有编译语言吗?在 Java 或 C# 等其他环境中运行的那些呢?

0 投票
1 回答
3264 浏览

windows - 深入理解二进制文件

我正在专门学习有关二进制文件结构/操作的 C++,由于我对二进制文件、位、位和十六进制数字的主题完全陌生,因此我决定退后一步,对这些主题建立一个扎实的理解。

在我下面的图片中,我blue thief在一个.txt文件中写了两个单词( )。

在此处输入图像描述

原因是当我使用 hexeditor 解码文件时,我想了解信息是如何以十六进制格式存储的。现在,不要误会我的意思,我并不是想整天以阅读十六进制格式为生,而只是对二进制文件组成的基础知识有最低程度的了解。我也知道所有文件都有不同的结构,但为了理解起见,我想知道“蓝色小偷”和单个' '(空格)这两个词究竟是如何转换成这些字符的。

还有一件事,我听说二进制文件包含三种类型的信息:

header, ftm& 和data! 那只涉及音频,视频等多媒体文件吗?因为,我似乎看不到任何东西,除了它看起来像data这个文件中的一个块。

0 投票
0 回答
37 浏览

binary - 使用十六进制值将取消值返回到启动执行文件

我正在编辑程序的启动执行文件以删除错误消息并自动返回如果消息存在时您将按下的“取消”按钮的值。

我在十六进制文件中找到了错误消息,它的 WRITTEN .LIKE .THIS,我猜是因为“。” 是程序中的转义键,以便将其解释为文本。然后我在 Visual Basic 中打开文件,发现它的十六进制键是 10160,我将文件中的值更改为 00 以尝试返回 0,但这只是在启动时使程序崩溃。

我需要放入二进制文件以使其自动获取该值的取消按钮值是多少?

0 投票
2 回答
31176 浏览

linux - 使用vi和hexedit打开一个二进制文件,为什么内容不同?

我正在尝试直接编辑二进制文件,我知道两个编辑器,vi 和 hexedit。但是当我使用它们单独打开一个二进制文件时,cotens 是不同的。下面是我所做的。

首先我使用“dd if=/dev/sda of=mbr bs=512 count=1”来生成包含mbr数据的二进制文件。然后我使用“hexedit mbr”打开它,它显示:开始:

结尾:

我使用“vi mbr”打开它并输入“:%!xxd”,它显示:开始:

结尾:

hexedit 显示是我在 mbr 中所期望的。但是 vi 显示该说些什么呢?而且 vi 显示似乎是错误的,因为有超过 512 个字节。

感谢您的任何解释!

0 投票
1 回答
883 浏览

c# - 更改c#exe中的十六进制代码

如何使用 C# 将图像更改为十六进制代码http://prntscr.com/1oiw50

Exe 不能以这种方式工作,但我正在尝试。

0 投票
1 回答
107 浏览

linux - 如何安全地学习使用十六进制编辑器?

我想以纯粹探索的方式尝试十六进制编辑简单程序。我知道这会危及相关程序的功能(这很好),但是运行随机编辑的二进制文件对我的系统(Linux)有什么风险?

可能发生的最坏情况是什么?是否有一些我应该始终避免的变化,我可以采取的预防措施?有没有与此相关的资源?(我已经搜索过,但找不到任何与此相关的内容)

编辑:我应该指定我实际上并不打算随机编辑;这只是一个假设。

0 投票
1 回答
507 浏览

linux - hexdump 和 hexedit 的输出差异

我一直在尝试手臂组装,并查看组装机产生的十六进制输出。现在当我组装这个时:

我期待一个输出,ff11 1111 11但在 hexdump 中查看向我展示了这一点:11ff 1111 0011起初我很困惑,并认为我可能在我的汇编程序中发现了一些晦涩难懂的东西(显然我没有在这里使用 .align 指令,所以这段代码是不正确的在现实生活中,我认为汇编器可能会因此而做一些奇怪的事情)。但是,当我使用程序 hexedit 检查输出时(如果您不熟悉它,它只是一个简单的命令行 hexeditor),它向我展示了我所期望的(ff 11 11 11 11)。有谁知道为什么我会收到这个奇怪的输出?这是 hexdump 中的一个错误,还是 hexdump 的行为不像我期望的那样,因为某些其他原因?

0 投票
1 回答
5557 浏览

elf - 使用十六进制编辑器在 ELF 可执行文件中查找整数声明的变量

我想通过使用十六进制编辑器更改可执行文件中声明的整数变量的值,仅假设我知道代码中声明了一个变量类型 int 并且变量是这样的:

整数值 = 1337;

我想使用十六进制编辑器编辑可执行文件搜索值 1337 并将其更改为其他值,我在 ubuntu 中尝试了 ghex,但我不知道如何搜索它我将其转换为十六进制但我没有找到它,在此先感谢各位。

0 投票
3 回答
2399 浏览

c - 为什么将字符插入可执行二进制文件会导致它“中断”?

为什么将字符插入可执行二进制文件会导致它“中断”?

而且,有没有办法在不破坏编译程序的情况下添加字符?

背景

我早就知道可以使用十六进制编辑器来更改已编译的可执行文件中的代码,并且仍然可以正常运行...

例子

作为下面应用程序中的示例,Facebook可以将其更改为Lacebook,并且程序仍然可以正常执行:

在此处输入图像描述

在此处输入图像描述

但它打破了新角色

我也知道,如果添加了新字符,它会破坏程序并且它不会运行,或者它会立即崩溃。例如,My在前面添加Facebook将实现此目的:

在此处输入图像描述

我知道的

我不知道的

  • 我不太明白操作系统和可执行文件之间的关系。我猜当您输入程序名称并按回车键时,您基本上是在指示操作系统“执行”该文件,这基本上意味着将文件加载到内存中,将处理器的指针设置为它,并告诉它'去!'
  • 我明白为什么二进制文件的文本字符串中有多余的字符会导致问题

我想知道的

  1. 为什么多余的字符会导致程序中断?
  2. 是什么决定了程序坏了?操作系统?操作系统是否也将此程序保持为沙盒状态,以便它现在不会使整个系统崩溃?
  3. 有没有办法通过十六进制编辑器将额外字符添加到已编译程序的文本字符串中,而不会使应用程序中断?
0 投票
2 回答
605 浏览

vim - 启动时执行外部命令

我经常使用 vim 来满足我的所有需求。在极少数情况下,我需要通过十六进制编辑器查看打开二进制文件,为此我在文件上启动 vim,然后通过 xxd 通过命令运行它:%!xxd

我的问题是,如果选项存在,我怎样才能让我的命令行以这种方式直接打开文件?像打字:gvimbin <file>然后它以正确的方式打开。

编辑:需要明确的是,我正在寻找一个允许在启动时运行 vim exec 命令的完整解决方案。