【发布时间】:2019-08-10 06:31:54
【问题描述】:
所以前段时间有人问过这个问题:
但最重要的答案是文本部分中没有数据,编译器不会这样做!
但我在 ollydbg 中调试时遇到了一些二进制文件,我在 .text 中看到了一些奇怪的字节,我猜这可能是数据,我仍然阅读声称数据可能在 .text 部分内的论文
这实际上是静态反汇编成为一个无法确定的问题的原因(至少学术论文声称它是),因为他们说数据可能在文本部分内,我们永远无法知道
所以我想一劳永逸地解决这个问题,如果您想回答这个问题,请提供来源:
编译器是否将数据放入 .text 部分?如果是这样,您知道哪些编译器和编译器版本可以做到这一点?
-
如果他们这样做,那是为什么呢?我阅读了我链接的问题的答案,但我无法理解它,因为我并不是真正的硬件专家,所以你们能提供一个更简单的解释,软件开发人员可以理解吗?
这里有另一个说法是我们无法区分可执行文件中的数据和代码:
将代码与二进制文件中的数据区分开来是一个根本无法确定的问题
【问题讨论】:
标签: x86 cpu compiler-optimization decompiler