提问者:APT_华生 2021-4-1
bea4098173cac5d2f55b9338b1ef2cd0 是怎么判断是DLL文件的呢,前面地址不是400000吗,不应该是exe程序吗,我看了其他DLL文件的文件头中的Characteristics属性值发现是0x2102,而这里的属性是010F,对比exe的发现exe的是0102
这里主要以是否包含有导出函数,以及导出函数是否有不寻常的地方作为判定依据。可能有些奇怪的样本兼具exe和dll的特征,比如一般来说exe文件就不该有导出函数。我在这里介绍的是一种快速判定的方法,不是从根源上去教给大家如何对PE文件进行分类。
4000000一般是基址 但是动态基址并不能判断是否exe或DLL 或资源文件 一般可执行文件 快速识别方法 直接拖入调试工具 例如OD X64程序则拖入dbg 能起到 那么就是可执行文件 EXE/DLL
hello,你发的提问中提到的bea4098173cac5d2f55b9338b1ef2cd0似乎是一个十六进制表示的文件哈希值,而不是直接与文件格式相关的标识。为了确定一个文件是DLL还是EXE,我们通常需要查看文件的二进制头部信息。
关于您提到的“地址不是400000”和“Characteristics属性值”,这些都是PE文件格式的一部分。PE(Portable Executable)格式是Windows操作系统用于可执行文件、静态库、DLL以及内核模式的驱动的格式。
在PE格式中,有一些关键的字段,其中之一就是“Characteristics”字段,它是一个用于描述文件特性的字节。这个字段的值可以告诉我们很多关于文件的信息。
如果Characteristics的值是
0x2102
,那么这确实是一个DLL文件。
0x0102
,那么这通常是一个EXE文件。
但是,请注意,十六进制010F并不是标准的PE Characteristics值。我猜测可能有一些额外的属性或者标识被添加到了这个字段中。
为了准确判断一个文件的类型,您可以使用工具如dumpbin(这是Visual Studio的一个实用工具)来查看文件的详细信息。例如:
bashdumpbin /headers your_file_path.exe > output.txt
这将提供一个详细的头部信息,其中也包括Characteristics的值。这样您就可以准确地判断该文件是DLL还是EXE。
mark