标签: binary-files

Mac OS X 和 Windows 中的可执行文件

我已经看到 Windows 中的每个可执行文件的扩展名都是 .exe。但 Mac OS X 不一样。

Windows 执行 .exe 文件。那么Mac OS X 执行什么样的文件呢?

两种操作系统执行应用程序的区别是什么?

即使我发现 Windows 设置具有相同的扩展名 .exe 但在 Mac 上设置的扩展名为 .dmg

您能否与我分享有关 Mac 与 Windows 上的 .dmg 和可执行文件的知识?

windows binary-files macos

12
推荐指数
2
解决办法
6万
查看次数

为什么我们不能理解编译后的二进制文件的内容?

据我所知,每个程序都由一组处理器指令组成,其中包含一些特定的数据变量(float、int、char...),用于处理处理器寄存器

因此,我(很久以前)想到的第一件事是,如果您知道%¨#$¨#(只是一个随机示例)的 ASCII 值可以解释为x86的堆栈指针寄存器(只是示例)的地址处理器。如果这是真的,每次在读取二进制文件的内容时发现这个“不可读”的值,您就可以解释堆栈指针寄存器正在用于管理某些数据变量。

不幸的是,这不会发生。下面是一个ping.exe从 Windows 中打开的程序内容示例notepad.exe

在 MS 记事本中查看的 Ping.exe

它是一个二进制文件,其数据对于我们人类来说是不可理解的(对于机器来说是可以理解的。)即使他们知道汇编代码(机器语言的最低级别),对任何人来说也没有任何意义。

所以,如果我正确理解了一切,有人可以解释一下吗

  1. 为什么二进制代码不能返回到汇编代码,因为它们在深处,同样的事情?
  2. 如果可以理解汇编代码,为什么由这段代码生成的编译后的二进制文件不再“可读”了?

windows assembly binary-files

11
推荐指数
2
解决办法
6604
查看次数

删除 /usr/bin/emacs - 不允许操作

当我偶然发现/usr/bin/emacs,/usr/bin/emacsclient/usr/bin/emacs-undumped.

angrybacon@sandman ~/ $ ll /usr/bin/emacs*
-r-xr-xr-x 1 root wheel 26929904 Dec  3 07:35 /usr/bin/emacs
-rwxr-xr-x 1 root wheel  3201184 Dec  3 07:36 /usr/bin/emacs-undumped
-rwxr-xr-x 1 root wheel    36928 Dec  3 07:36 /usr/bin/emacsclient
Run Code Online (Sandbox Code Playgroud)

我试图删除那些二进制文件但没有成功。

angrybacon@sandman ~/ $ sudo rm -f /usr/bin/emacs*
rm: /usr/bin/emacs: Operation not permitted
rm: /usr/bin/emacs-undumped: Operation not permitted
rm: /usr/bin/emacsclient: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

我已经尝试过 GNUrm和删除schg标志,但仍然没有运气。

另外,那些附带默认 Mac 设置的吗?

同样的问题,与/usr/share/emacs//usr/share/info/emacs*

permissions file-permissions binary-files macos

10
推荐指数
1
解决办法
6530
查看次数

什么是 8086 可重定位?

我跑了一些Fortran语言软件(LBLRTM)和一个shell脚本,准备输入生成许多文件与名称TAPE3TAPE4等等。出于调试目的,我以前file来识别文件类型。file告诉我:

TAPE3:  8086 relocatable (Microsoft)
Run Code Online (Sandbox Code Playgroud)

我的猜测是file这里是错误的,它只是一个二进制文件,恰好看起来像8086 relocatable. 但是,什么一个8086 relocatable

binary-files

6
推荐指数
1
解决办法
6506
查看次数

二进制文件如何在不同的机器上运行?

我一直想知道可执行二进制文件实际上是如何工作的。编译总是声明为

获取源代码并将其翻译为机器语言

但这到底意味着什么呢?即:

  1. 我可以将二进制文件从计算机 A 移动到计算机 B 并期望它正常工作吗?(假设我也移动了适当的库)
  2. 每个可执行二进制文件都适合与特定处理器一起使用吗?
  3. 可执行二进制文件中包含哪些类型的信息?
  4. 为什么Windows上的可执行文件可以在任何Windows版本上启动?(如果有效的话那就是另一个故事了)
  5. 为什么我无法在 Windows 上运行 Linux 可执行文件?它与内核有关(所以与处理器无关)吗?

请注意,我对处理器和编译器的了解有限,并且对汇编一无所知。

windows linux cpu compile binary-files

6
推荐指数
1
解决办法
5084
查看次数

是否可以反转 xxd 以从二进制文件中获取原始文件

我一直在xxd用来创建文件的六进制表示(任何文件,如 .jpg、.docx、.zip 等),像这样,..

$ xxd -p original_file.zip > hexa_format.txt
Run Code Online (Sandbox Code Playgroud)

并扭转

$ xxd -r -p hexa_format.txt > original_file.zip
Run Code Online (Sandbox Code Playgroud)

如果有人觉得这不是正确的方法,请纠正我。无论如何这不是我的问题。现在我必须将它们转换为二进制而不是六进制。所以命令是这样的,如果我是正确的。

$ xxd -p -b original_file.zip > binary_format.txt
Run Code Online (Sandbox Code Playgroud)

我的问题是
如何将其从上述命令创建的二进制文件 (binary_format.txt) 反转回原始文件。xxd 的手册页说它不能完成(在最后一行)。

-b | -bits
              Switch to bits (binary digits) dump, rather than hexdump.   This
              option  writes octets as eight digits "1"s and "0"s instead of a
              normal hexadecimal dump. Each line is preceded by a line  number
              in  hexadecimal and followed by an ascii (or ebcdic) representa?
              tion. …
Run Code Online (Sandbox Code Playgroud)

linux command-line binary-files xxd

6
推荐指数
1
解决办法
1万
查看次数

为什么压缩压缩文件不会减小其大小?

基于压缩文件是一个新的二进制文件的想法,为什么我不能通过一次又一次地压缩它来减小 Zip 的大小——直到生成一个非常小的结果文件?

compression zip binary-files

5
推荐指数
1
解决办法
6740
查看次数

如何在不运行 .exe 的情况下从 .exe(可执行文件)获取版本、作者、发布者等和其他元数据

如何找出 .exe 文件的详细信息 - 例如软件作者、供应商、日期、版本等?

当我右键单击文件并选择属性时,我没有得到这些信息。

但是,如果我将文件上传到virustotal.com(不为他们工作或与他们有任何关联 - 所以这不是促销)然后我可以看到上述信息。

我不想上传文件,所以我正在寻找一个 Windows 工具来做到这一点,拜托。这应该是读取信息的简单过程,因为我上传到virustotal 表明该信息已经在文件中。注意:我使用virustotal 的主要目的不是扫描.exe,而是使用virustotal 提供的工具来读取文件元数据。

背景:我正在整理一些下载的文件,需要了解有关它们的更多信息。

我已经搜索过但没有找到我需要的答案,这让我感到非常惊讶。

windows metadata windows-installer binary-files

5
推荐指数
1
解决办法
1万
查看次数

如果输出是通过管道传输的,为什么 make 会忽略转义序列

在 Makefile 中,我想打印一个以十六进制数字表示的字节并将其传递给另一个程序的 STDIN。由于某种原因,它不起作用:

without-pipe:
    @printf '\x66\x6f\x6f'

with-bash-and-pipe:
    @/bin/bash -c "printf '\x66\x6f\x6f' | cat"

with-pipe:
    @printf '\x66\x6f\x6f' | cat
Run Code Online (Sandbox Code Playgroud)

运行该文件会产生:

$ make without-pipe 
foo

$ make with-bash-and-pipe 
foo

$ make with-pipe 
\x66\x6f\x6f
Run Code Online (Sandbox Code Playgroud)

我缺少什么功能make以及使最后一个目标产生相同输出的正确方法是什么。这with-bash-and-pipe是一种解决方法。

pipe make escape-characters binary-files

5
推荐指数
1
解决办法
391
查看次数

如何从 EXE 文件中提取二进制文件?

我有一个 BIOS 文件 .EXE,我想从中提取二进制文件,以直接使用 USB EEPROM 编程器将其闪存到 BIOS 芯片。

  • 我试过的:用 7ZIP 或 WINZIP 解压缩 EXE 文件,看看里面是否有 BIN 文件,但我只找到 ROM 文件。

我尝试了不同的程序,如通用提取器和相同的结果。任何人都知道如何做到这一点?

bios binary-files eeprom

4
推荐指数
1
解决办法
2万
查看次数