任何一段可执行程序(包括病毒)怎么知道它是用什么语言编写的呢?

来源:百度知道 编辑:UC知道 时间:2024/05/11 02:38:41

这个比较难说,如果没有加壳,可以大概用 PEid 来判断。

如果加壳或修改了,或者用特殊手段处理过的,就不好说了。

要注意的是,PEid 是用入口点特征进行判断的,如果处理一下的话,是可以伪装的,比如 FakeNinja 一类的入口点花指令添加器。

如果要比较准确的判断,最好是反汇编一下。如果发现调用 MSVBVM 就是 VB 写的,调用 MSVCR 就是 VC 了,如果刚开始就打开 Borland\Delphi 这个注册表,就是 Delphi 书写的。

一般这些特征都是经验而来的,而且看到的是程序所用的编译器。如果用 C 语言书写,而用一些不常用的编译器编译,也不一定能看得出来。