当前位置:  -> 首页 -> 原创文章 -> C#如何判断磁盘文件是PE文件(EXE、DLL、OCX)

上一篇 | 下一篇
C#如何判断磁盘文件是PE文件(EXE、DLL、OCX)
作者:洛羽叶  点击率:1267  发布时间:2013-05-04

PE文件,文件头两字节为0x4d5a即("MZ"),然后到地址0x3c中读出PE文件头(_IMAGE_NT_HEADERS),
判断文件头结构的标记是否为17744(即"PE")。

fsTemp = new FileStream("c:\temp\test.dll", FileMode.Open, FileAccess.Read, FileShare.ReadWrite, 512, false);

if (fsTemp.Length > 2)
{
 bBuf = new byte[2];
    fsTemp.Position = 0;                       
    fsTemp.Read(bBuf, 0, 2);

    if (BitConverter.ToUInt16(bBuf, 0) == 0x5a4d)
    {
        fsTemp.Position = 0x3c;
        bBuf = new byte[4];
        fsTemp.Read(bBuf, 0, 4);

        position = BitConverter.ToUInt32(bBuf, 0);

        fsTemp.Position = position;
        fsTemp.Read(bBuf, 0, 4);
        if (BitConverter.ToUInt32(bBuf, 0) == 0x00004550)
            return true;
    }

}
fsTemp.Close();

标签: C#
引用地址:本站原创
   站点首页      技术人生      旅途足迹      我要留言      友情链接      关于站长   
[本站统计]
在线人数:0
今日访问:115
总访问量:1467682
Copyright 2006-2022 EasyWeb 1.6 订阅 All Rights Reserved
粤ICP备08028977号-1
www.luoriver.com
Created by WWH in 2006