0

您可能知道,可以通过在浏览器中添加前缀来查看任何网站 URL 的原始响应 HTML 代码view-source:(例如view-source:https://www.google.de/)。

现在有趣的是,这也适用于指向非 HTML 类型文件的 URL。例如,view-source:https://d3.7-zip.org/a/7z2107.exe将 .exe 文件(此处为 7zip)显示为字节流(可能解释为 latin1 或其他编码)。如果您正常下载 .exe 文件,然后在记事本中打开它,您会得到类似的结果。

我的问题是:当我手动复制代码view-source:给我的 .exe 文件时,将其粘贴到记事本中,然后将其另存为 .exe,文件大小大致正确,但已损坏。有什么办法可以解决这个问题吗?

(如果您想知道为什么有人想要这样做,公认的奇特案例是 Selenium 的浏览器自动化,它实际上无法正常下载文件,因为资源受到保护,实际上只能通过以下方式下载真正的浏览器。)

4

1 回答 1

0

编译应用程序时,对可执行文件的某些部分有静态引用,以字节偏移量计算。这些可以像可执行文件的 .text 和 .data 部分一样广泛,或者更底层的函数调用地址和跳转。

如果你在真正的反汇编器中打开一个exe,你会看到有以字节为单位的硬编码跳转,以字节为单位的函数地址等。当你在文本编辑器中打开exe时,这些跳转会使处理器开始运行随机代码,从而导致一个例外。这导致 Windows 认为它​​不再是有效的可执行文件。

于 2022-03-03T19:22:02.793 回答