工程下载地址:http://files.cnblogs.com/tk091/PECheck.zip

 1 void CPECheckDlg::OnBtnbrowse()
 2 {
 3     // TODO: Add your control notification handler code here
 4     CFileDialog dlg(TRUE);
 5     if (dlg.DoModal()!=IDOK)   //如果用户没有选择确定按钮,则退出
 6     {
 7         return;
 8     }
 9     HANDLE hFile=::CreateFile(dlg.GetPathName(),GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
10     SetDlgItemText(IDC_EDIT_FILEPATH,dlg.GetPathName());
11     if (hFile==INVALID_HANDLE_VALUE)
12     {
13         AfxMessageBox("无效的文件",MB_OK);
14     }
15     IMAGE_DOS_HEADER dosHeader;
16     IMAGE_NT_HEADERS32 ntHeader;
17
18     BOOL bValid=FALSE;
19     DWORD dwRead;
20     ::ReadFile(hFile,&dosHeader,sizeof(dosHeader),&dwRead,NULL);
21     if(dwRead==sizeof(dosHeader))
22     {
23         if(dosHeader.e_magic==IMAGE_DOS_SIGNATURE)
24         {
25             if(::SetFilePointer(hFile,dosHeader.e_lfanew,NULL,FILE_BEGIN)!=-1)
26             {
27                 ::ReadFile(hFile,&ntHeader,sizeof(ntHeader),&dwRead,NULL);
28                 if(ntHeader.Signature==IMAGE_NT_SIGNATURE)
29                     bValid=TRUE;
30             }
31         }
32     }
33     if(bValid)
34         //MessageBox("是一个PE格式的文件","提示",MB_OK);
35         SetDlgItemText(IDC_EDIT_RESULT,"该文件是一个PE文件");
36     else
37     {
38         //MessageBox("不是一个PE格式的文件","提示",MB_OK);
39         SetDlgItemText(IDC_EDIT_RESULT,"该文件不是一个PE文件");
40     }
41     ::CloseHandle(hFile);
42     return;
43 }

如果想支持拖拽,则添加

 1 void CPECheckDlg::OnDropFiles(HDROP hDropInfo)
 2 {
 3     // TODO: Add your message handler code here and/or call default
 4     UINT count;
 5     char filePath[256];
 6
 7     count = DragQueryFile(hDropInfo, 0xFFFFFFFF, NULL, 0);
 8     if(count)
 9     {
10         for(UINT i=0; i<count; i++)
11         {
12             int pathLen = DragQueryFile(hDropInfo, i, filePath, sizeof(filePath));
13             //AfxMessageBox(filePath);
14             SetDlgItemText(IDC_EDIT_FILEPATH,filePath);
15         }
16     }
17
18     DragFinish(hDropInfo);
19
20
21     HANDLE hFile=::CreateFile(filePath,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
22     //SetDlgItemText(IDC_EDIT_FILEPATH,filePath);
23     if (hFile==INVALID_HANDLE_VALUE)
24     {
25         AfxMessageBox("无效的文件",MB_OK);
26     }
27     IMAGE_DOS_HEADER dosHeader;
28     IMAGE_NT_HEADERS32 ntHeader;
29
30     BOOL bValid=FALSE;
31     DWORD dwRead;
32     ::ReadFile(hFile,&dosHeader,sizeof(dosHeader),&dwRead,NULL);
33     if(dwRead==sizeof(dosHeader))
34     {
35         if(dosHeader.e_magic==IMAGE_DOS_SIGNATURE)
36         {
37             if(::SetFilePointer(hFile,dosHeader.e_lfanew,NULL,FILE_BEGIN)!=-1)
38             {
39                 ::ReadFile(hFile,&ntHeader,sizeof(ntHeader),&dwRead,NULL);
40                 if(ntHeader.Signature==IMAGE_NT_SIGNATURE)
41                     bValid=TRUE;
42             }
43         }
44     }
45     if(bValid)
46         //MessageBox("是一个PE格式的文件","提示",MB_OK);
47         SetDlgItemText(IDC_EDIT_RESULT,"该文件是一个PE文件");
48     else
49     {
50         //MessageBox("不是一个PE格式的文件","提示",MB_OK);
51         SetDlgItemText(IDC_EDIT_RESULT,"该文件不是一个PE文件");
52     }
53     ::CloseHandle(hFile);
54
55     CDialog::OnDropFiles(hDropInfo);
56 }

转载于:https://www.cnblogs.com/tk091/archive/2012/04/19/2457773.html

【原创】PE检测工具相关推荐

  1. 驱动备份工具哪个好_文章原创度检测工具哪个好?这个工具还有其他你不知道的功能...

    文章原创度检测工具哪个好?这个工具还有其他你不知道的功能,现在的原创度检测工具其实有很多,但是有的工具是包含了原创度检测这个功能的,它还有其他的功能可以使用,我们接下来去看看. 原创度检测一直是老生常 ...

  2. 剪切工具怎么用_原创度检测工具是怎么用的?优质的内容更容易获得平台推荐...

    原创度检测工具是怎么用的?优质的内容更容易获得平台推荐,原创度检测现在不仅仅限于论文和seo方面的文章了,现在很多自媒体文章也需要用到原创度检测工具,今天就跟大家分享一款自媒体文章常用的原创检测工具, ...

  3. python中文字符串比较模块_python比较字符串相似度,原创度检测工具

    #-*- coding: utf-8 -*- """基于gensim模块的中文句子相似度计算 思路如下: 1.文本预处理:中文分词,去除停用词 2.计算词频 3.创建字典 ...

  4. 文章伪原创检测工具,防止抄袭风险

    文章内容概括:本文将介绍伪原创的定义和危害,以及如何使用在线工具来检测伪原创.具体分为以下8个方面进行逐步分析:1.什么是伪原创?2.伪原创的危害:3.传统检测方式的缺陷:4.在线检测工具的优势:5. ...

  5. 求一个文章原创检测工具源码 C#的 谢谢 私我

    求一个文章原创检测工具源码 C#的 谢谢 私我@TOC 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页.如果你想学习如何使用Markdown编辑器, ...

  6. dll文件32位64位检测工具以及Windows文件夹SysWow64的坑

    自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问题.相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program Files (x86),Program Files的区别 ...

  7. python网页编程测试_李亚涛:python编写友情链接检测工具

    原标题:李亚涛:python编写友情链接检测工具 友情链接是网站外链的非常重要的来源,作为一个网站运营推广人员,需要定期对网站的友链进行更新与检查,如果有人下掉你的链接,这样你可以及时的检测并清除掉. ...

  8. NeuSomatic:基于深度CNN的肿瘤体细胞突变检测工具

    作者丨Peter 单位丨某基因科技公司生物信息工程师 研究方向丨生物信息 在 3 月 4 号的"Nature"子刊中,展示了利用深度 CNN 来检测体细胞突变的新工具"N ...

  9. 另一种sysenter hook方法(绕过绝大多数的rootkit检测工具的检测)

    标 题:   [原创]另一种sysenter hook方法(绕过绝大多数的rootkit检测工具的检测) 作 者: 堕落天才 时 间: 2007-04-14,11:09:49 链 接: http:// ...

最新文章

  1. flex3通过fluorinefx跟asp.net进行数据交互
  2. Knative 实战:如何在 Knative 中配置自定义域名及路由规则
  3. w3school-html教程笔记-1-20140227
  4. CodeSandbox v3 发布,Web 项目的在线开发
  5. java bean转map
  6. 信息学奥赛一本通(1145:字符串p型编码)
  7. 【Statistics】均值
  8. MySQL中select * for update锁表的范围
  9. 2015/7/24 (等待回调,结果是盘中回调,盘末拉升,错过了进仓机会吗?详情进入...
  10. 发那科机器人点位编辑_分步详解 | 发那科机器人如何进行零点标定
  11. win10前置耳机插孔没声音_新买的电脑,为什么插入耳机没有声音?一招教你快速解决...
  12. 屏幕共享技术及相关软件使用测评
  13. android5.1导航系统,北斗地图导航系统
  14. 企业级Web报表工具告诉你财务要做哪些数据分析
  15. 虚拟化性能计数器需要至少一个可正常使用的计数器。 模块“VPMC”启动失败。 未能启动虚拟机。
  16. 学习记录,linux使用wget命令实现整站下载
  17. CENTOS: 安装memSQL
  18. 用Javascript 编写 HTML在线编辑器
  19. H3CSE20200603班-IPv6路由协议
  20. P波和S波(横波和纵波)

热门文章

  1. 软件测试岗月薪3w+的测试,到底强在哪里?测试开发真的就是天花板了吗?
  2. POJ 1375 Intervals
  3. 台州爱乐搜5.18与您相约香溢大酒店
  4. 思维导图软件哪个好?分享3款免费的思维导图软件
  5. 记录Mybatis报Mapped Statements collection already contains value for 的错误的原因
  6. 什么是服务器?服务器有哪几种类型?
  7. RFID牛只识别系统c语言编程,种牛RFID管理系统解决方案
  8. win10亮度进度条不见了
  9. 破解Navicat Premium数据库账号密码
  10. Java必背基础词汇