0

PEiD 和其他工具如何检测编译器类型?检测过程可以是动态的吗?如何?除了PE文件处理还有其他程序吗?

4

2 回答 2

0

虽然我不完全确定 PEiD 是如何工作的,但我认为有多种方法可以实现这一点。特别是,您想从生成的代码中寻找各种“指纹”。例如,编译器处理二进制中已知字符串的方式(在 C 中以零结尾,或者在 Pascal 中的文本之前具有长度值),或者它如何为函数设置堆栈帧。然后当然要寻找常见的代码结构,如何处理某些结构,例如循环、条件或在调用主函数之前设置运行时。另一种方法是查看导入和依赖项,这可以深入了解使用的运行时。

当然,最简单的方法是检查二进制文件中留下的任何元数据,而无需实际查看代码。通常有专门用于各种元数据的部分,甚至可以准确显示用于编译的确切编译器和版本的注释。虽然这些可以很容易地被欺骗,但是一个好的检测器会考虑到这一点,并查看实际代码中的线索。

于 2012-09-04T22:13:21.060 回答
0

编译器类型检测基于 EXE 文件中的编译器签名。

于 2012-09-03T19:07:09.083 回答