【原创】PE检测工具
工程下载地址: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检测工具相关推荐
- 驱动备份工具哪个好_文章原创度检测工具哪个好?这个工具还有其他你不知道的功能...
文章原创度检测工具哪个好?这个工具还有其他你不知道的功能,现在的原创度检测工具其实有很多,但是有的工具是包含了原创度检测这个功能的,它还有其他的功能可以使用,我们接下来去看看. 原创度检测一直是老生常 ...
- 剪切工具怎么用_原创度检测工具是怎么用的?优质的内容更容易获得平台推荐...
原创度检测工具是怎么用的?优质的内容更容易获得平台推荐,原创度检测现在不仅仅限于论文和seo方面的文章了,现在很多自媒体文章也需要用到原创度检测工具,今天就跟大家分享一款自媒体文章常用的原创检测工具, ...
- python中文字符串比较模块_python比较字符串相似度,原创度检测工具
#-*- coding: utf-8 -*- """基于gensim模块的中文句子相似度计算 思路如下: 1.文本预处理:中文分词,去除停用词 2.计算词频 3.创建字典 ...
- 文章伪原创检测工具,防止抄袭风险
文章内容概括:本文将介绍伪原创的定义和危害,以及如何使用在线工具来检测伪原创.具体分为以下8个方面进行逐步分析:1.什么是伪原创?2.伪原创的危害:3.传统检测方式的缺陷:4.在线检测工具的优势:5. ...
- 求一个文章原创检测工具源码 C#的 谢谢 私我
求一个文章原创检测工具源码 C#的 谢谢 私我@TOC 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页.如果你想学习如何使用Markdown编辑器, ...
- dll文件32位64位检测工具以及Windows文件夹SysWow64的坑
自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问题.相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program Files (x86),Program Files的区别 ...
- python网页编程测试_李亚涛:python编写友情链接检测工具
原标题:李亚涛:python编写友情链接检测工具 友情链接是网站外链的非常重要的来源,作为一个网站运营推广人员,需要定期对网站的友链进行更新与检查,如果有人下掉你的链接,这样你可以及时的检测并清除掉. ...
- NeuSomatic:基于深度CNN的肿瘤体细胞突变检测工具
作者丨Peter 单位丨某基因科技公司生物信息工程师 研究方向丨生物信息 在 3 月 4 号的"Nature"子刊中,展示了利用深度 CNN 来检测体细胞突变的新工具"N ...
- 另一种sysenter hook方法(绕过绝大多数的rootkit检测工具的检测)
标 题: [原创]另一种sysenter hook方法(绕过绝大多数的rootkit检测工具的检测) 作 者: 堕落天才 时 间: 2007-04-14,11:09:49 链 接: http:// ...
最新文章
- flex3通过fluorinefx跟asp.net进行数据交互
- Knative 实战:如何在 Knative 中配置自定义域名及路由规则
- w3school-html教程笔记-1-20140227
- CodeSandbox v3 发布,Web 项目的在线开发
- java bean转map
- 信息学奥赛一本通(1145:字符串p型编码)
- 【Statistics】均值
- MySQL中select * for update锁表的范围
- 2015/7/24 (等待回调,结果是盘中回调,盘末拉升,错过了进仓机会吗?详情进入...
- 发那科机器人点位编辑_分步详解 | 发那科机器人如何进行零点标定
- win10前置耳机插孔没声音_新买的电脑,为什么插入耳机没有声音?一招教你快速解决...
- 屏幕共享技术及相关软件使用测评
- android5.1导航系统,北斗地图导航系统
- 企业级Web报表工具告诉你财务要做哪些数据分析
- 虚拟化性能计数器需要至少一个可正常使用的计数器。 模块“VPMC”启动失败。 未能启动虚拟机。
- 学习记录,linux使用wget命令实现整站下载
- CENTOS: 安装memSQL
- 用Javascript 编写 HTML在线编辑器
- H3CSE20200603班-IPv6路由协议
- P波和S波(横波和纵波)