判断是不是PE文件

【AIGC】COT思维链:让AI学会拆解问题,像人一样思考 COT思维链的出现,为AI的发展开辟了一条新的道路。它让AI学会了像人类一样思考,将复杂问题分解成简单的步骤,并逐步推理出最终答案。希望我的引导会对你产生启发。 阅读详情

判断是不是一个PE文件有很多种方法,我们用的方法是:

先读取Dos头,判断e_magic是否等于"MZ",然后再读取PE文件头的头字节,判断是不是 "PE00"。这样就能确定是不是一个有效的PE文件。代码如下:

 

//选择文件
void CPEDlg::OnButton1()
{
// TODO: Add your control notification handler code here
TCHAR tzFilter[] = _T("可执行文件(*.exe)|*.exe|所有文件(*.*)|*.*||");
CFileDialog dlgFile(TRUE,NULL,NULL, OFN_HIDEREADONLY,tzFilter,this);
if (IDOK == dlgFile.DoModal())
{
  m_strFilePath = dlgFile.GetPathName();
  UpdateData(FALSE);
}
}

//判断是否是PE文件
void CPEDlg::OnButton2()
{
// TODO: Add your control notification handler code here

HANDLE    hFile = INVALID_HANDLE_VALUE; //打开的PE文件句柄
IMAGE_DOS_HEADER DosHeader = {0};
DWORD    dwReadLen = 0;
DWORD    dwNTSignature = 0;

//创建文件
hFile = CreateFile(m_strFilePath,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
  MessageBox("打开文件失败");
  return;
}

//读取文件
if (!ReadFile(hFile,&DosHeader,sizeof(DosHeader),&dwReadLen,NULL))
{
  CloseHandle(hFile);
  MessageBox("读取文件失败");
  return;
}
//判断DOS头部是否为MZ
if (DosHeader.e_magic != IMAGE_DOS_SIGNATURE)
{
  CloseHandle(hFile);
  MessageBox("不是PE文件");
  return;
}

SetFilePointer(hFile,DosHeader.e_lfanew,NULL,FILE_BEGIN);
//读取PE的NT头字节
ReadFile(hFile,&dwNTSignature,sizeof(dwNTSignature),&dwReadLen,NULL);
//判断PE标志
if (dwNTSignature != IMAGE_NT_SIGNATURE)
{
  MessageBox("不是PE文件");
  CloseHandle(hFile);
  return;
}

CloseHandle(hFile);
hFile = INVALID_HANDLE_VALUE;

MessageBox("是PE文件");
}
基于Simulink的超级电容快速响应特性建模与仿真 本文介绍了基于Simulink的超级电容快速响应特性建模与仿真方法。主要内容包括:超级电容的工作原理、一阶RC等效电路模型及其动态电压方程;通过Simulink搭建超级电容模型的两种方法(Simscape Electrical推荐方案和基础模块透明教学方案);仿真100A×100ms放电脉冲下的电压响应特性,并与锂电池进行动态对比;分析超级电容在混合储能系统中的功率分配优势。文章还提供了工程实践要点和扩展方向,如电压均衡、温度影响评估以及与DC-DC变换器集成等。通过建模实践,验证了超级电容在毫秒级响应、高 阅读详情

相关推荐

Arduino四足开源机器猫-Opencat(导航贴)

本内容由我和小伙伴共同编写,未经授权,谢绝转载! 1.项目介绍 2.组装调试教程 (一)Opencat-F (1)资料地址(包含程序代码&&3D打印图纸): 链接:https://pan.baidu.com/s/1AcVA5jSiOSzRKqEQAomrTA 提取码:szfx (2) (二)Opencat-B (1)组装调试 (2)组装调试注意事项 (3)添加新技能 3.编程 ...

qqliuzhitong的博客 4172

PEiD检测 不是有效的PE文件

在做逆向分析题目的时候用了好几次PEiD检测是否加壳,都显示不是有效的PE文件,在此记录一下原因。,如果显示不是有效的PE文件,说明你的可执行文件为64位,不能用PEiD检测。下面使用Exeinfo PE查看,Exeinfo相当于PEiD的升级版。下载后想使用中文,从右侧按钮的设置中,选择语言为中文即可。直接把64位可执行文件拖入即可查看信息,这里显示。,即没有加壳,就可以直接用IDA进行调试分析啦~附Exeinfo PE下载地址。

哼哼唧唧 7841

Windows C语言编程:Beep API实现蜂鸣器原理与实战

如果你在 Windows 上写过 C 语言程序,想给程序加个简单的提示音,第一个想到的可能是 printf("\a") 。这个转义字符确实能在某些终端里发出“嘀”的一声,但它太原始、太不可控了,而且很多时候根本没声音。那么,有没有一种更“Windows”、更可控、更专业的方法来让你的程序“说话”呢? 答案是肯定的,而且它比你想象的要强大和复杂。Windows 提供了一个名为 Beep 的 API 函数,专门用于生成蜂鸣声。你可能觉得这功能太简单,甚至有点过时——不就是让电脑“哔”一声吗?但恰恰是这个看似简单

weixin_34109408的博客 395

2019.6.22 操作系统-《程序员面试宝典》

1.作业、进程、线程、 管程:定义了一个数据结构和在该数据结构上的能为并发进程所执行的一系列操作,这组操作能够同步进程和改变管程中的数据。 2.进程间的通信如何实现? 信号:通过信号处理器 信号量:pv 消息队列:高级的方法 共享内存 3.互斥器(mutex)的作用和临界区的主要区别 解析:多线程编程问题 mutex可以用于进程间互斥、临界区是线程间互斥 4进程和线程的差别、死...

qq_31194443的博客 505

添加odbc数据源时的一些问题和解决办法

pl/sql

Mr_Syh的博客 9643

禅道18.3版本二开避坑指南:手把手教你扩展自定义报表功能

本文详细介绍了禅道18.3版本的二次开发实践,重点讲解如何扩展自定义报表功能。通过zentaoPHP框架的深度定制,从开发环境搭建到核心数据模型扩展,再到可视化配置和性能优化,手把手教你构建多维报表分析系统,满足企业级项目管理需求。

day7的博客 370

判断文件是否PE格式

#include "ValidPE.h" #include CMyApp theApp; BOOL CMyApp::InitInstance() { //http;//www.pythonschool.com CFileDialog dlg( TRUE ); if( dlg.DoModal() != IDOK ) { return FALSE; } else { HAN

刘华世的博客 651

逆向分析顶象5代各类验证码类型的图片还原方法(附源码)

6.刷新滑块验证码图片,会进入之前的for循环断点,分析此处的代码会发现,该循环循环了处理了n字符串的值,取出n字符中的值并使用charCodeAt生成Unicode 编码,然后又调用了a函数,如果a函数返回true就会把之前生成的Unicode编码+1,a函数参数分别是c数组和Unicode取余32后的值,然后再把Unicode取余32后的值push进c数组,这里的n值为滑块碎片背景图的name。2.搜索"ranges":,会找到ranges赋值的地方,在此处代码断点,并点击跳过断点,结束此次调试。

老衲爱洗头的博客 1195

批处理判断是BIOS还是UEFI启动还是WINPE

@echo offfind /i "Detected boot environment" "%systemdrive%\windows\Panther\setupact.log" 1>nul 2>nul || echo 这是WINPE无法制作! && pause && exit /bfor /f "delims=" %%i in ('find /i &quo

weixin_34362875的博客 772

29、固态变压器拓扑、设计及其应用深度解析

本文深入解析了固态变压器(SST)的拓扑结构、设计方法及其在智能电网和能源互联网中的应用。重点探讨了机器学习在SST优化设计中的应用,包括中高频变压器设计、整体系统优化与建模研究。文章详细介绍了多端口SST的拓扑特点、功率传输机制及其作为能源路由器的关键作用,分析了不同端口数量下的控制复杂度与应用场景,并通过案例研究展示了四端口SST在分布式能源系统中的实际应用。最后,文章总结了多端口SST面临的技术挑战,并展望了未来在先进控制策略、集成化设计和标准化方面的发展方向。

study的专栏 3793

Java代码变更影响分析:从静态解析到动态调用图的实战全链路

本文介绍了Java代码提交影响分析的核心原理与实现方法。主要内容包括:1)静态分析技术,通过JavaParser解析AST构建调用图,记录类与方法间的调用关系;2)动态分析技术,使用ByteBuddy进行字节码增强,捕获运行时调用路径;3)JCCI工具实现,结合javalang、unidiff等技术分析代码改动影响,并将结果存储到SQLite数据库。文章提供了完整的代码示例,展示了从AST解析、动态调用跟踪到实际工具应用的完整技术栈,为代码变更影响分析提供了实用解决方案。

墨夶的博客 1252

怎么辨别一个软件使用什么语言编写的?

每种编译器编译出来的二进制代码都有相应特点。如果这个软件没有被加壳过,你可以去找一个叫PEID的软件,大致上可以判断是什么语言写的。 如果是GUI的程序,有个很好的方法,用spy++这个微软的小工具来看,从类名前缀就能看出是什么编写的。我简单罗列下: 1、afx__开

3694

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

判断PE文件是不是64位的函数

#include <iostream> #include <fstream> #include <windows.h> #include <winnt.h> bool pe_is_64bit(const char *pfile) { bool bret = false; IMAGE_DOS_HEADER idosh = {0}; I...

zing's blog 536

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

判断文件是否是PE文件

判断一个文件的文件属性是不是PE文件:主要思路就是:比较文件的DOS头和NT头的白哦之是不是“MZ”和“PE”,判断文件是不是EXE文件或者DLL文件或者其他的主要思路是:获取文件的文件头的Characteristis字段,根据字段值进行判断 下边贴上源码 #include <stdio.h> #include <Windows.h> int main() { print...

4SecNet团队专栏 1640

判断是否为PE文件改进版

原来的程序一遇到0字节的文件就会挂掉,在这里我添加了SEH错误处理代码,完美解决了挂掉的问题! .386    .model flat, stdcall    option casemap :none     include    windows.inc    include    user32.inc    includelib user32.lib    includ

xbin1981的博客 653

[笔记]Windows判断文件是可执行文件exe/dll文件/驱动文件sys

参考MSDN IMAGE_FILE_HEADER。

二次元怪兽的博客 1180

PE文件结构

(完整结构)多多复习多多理解!!!

2403_87020251的博客 2023

【第33节】windows原理:初探PE文件

PE文件是有特定格式的文件,像后缀名是EXE的可执行文件、后缀名是DLL的动态链接库文件、sys格式的驱动文件,这些都属于PE格式文件。PE文件主要分成头和主体两部分,这两部分里面还会再细分。文件头是由几个结构体组成的,包含了文件的一些描述信息;文件主体由多个段构成,里面有文件的可执行代码、执行时要用的数据,还有资源(像Windows程序里的图标、一些界面等)。一般来说,不用于执行的就是数据,用于执行的就是代码,所以主体大概能分成代码和数据两部分,实际上按照不同作用,还能再细分成多个部分。

攻城狮7号的博客 2665

python判断是否为“PE文件”

什么是PE文件? PE文件被称为可移植的执行体是Portable Execute的全称,常见的EXE、DLL、OCX、SYS、COM都是PE文件,PE文件是微软Windows操作系统上的程序文件(可能是间接被执行,如DLL)。 怎么识别PE文件? 1、首先,PE文件一定是MZ(0x4D5A)起头的。 2、其次,3C位置的值(即如图所示E8)指向的值是PE(0x5045) 代码如下:

u012262582的专栏 3164

PE文件详解(C制作PE格式解析器)

0x00:前言 PE文件可以说是在逆向的各个领域都有涉及,特别是病毒领域,如果你是一名病毒制造者,那你肯定是对PE文件有详细的了解,那么这里我就详细介绍一下PE文件,最后我们用C来写一个PE格式解析器。 0x01:PE格式 要了解PE文件,首先要知道PE格式,那么什么是PE格式呢,既然是一个格式,那肯定是我们都需要遵循的定理,下面这张图就是PE文件格式的图片(来自看雪),非常大一张图片,其实PE格...

CharlesGodX的博客 6364

PE文件感染程序设计(PE病毒)

记录PE病毒设计的入门实验

Zyecho的博客 4981

跟着王哥学逆向——PE文件详解篇(第一篇)

这是《跟着王哥学逆向》PE文件详解篇第一篇,该篇章主要对PE文件内部结构进行仔细剖析,同时记录下来PE文件各个字节所代表的含义,方便自己查看。此篇章对DOS头、PE文件头、区块表等按照顺序介绍,有很强的系统性,计划下一篇章对导入表、导出表、资源表、重定位表进行详解。该系列学习主要参考小甲鱼讲的PE系列视频,真的很顶。

qq_52642385的博客 8646

根据PE文件头判断是否合法的PE文件

今天修改同事的PE文件扫描程序,结果发现扫描出来的有些文件只是一些PE文件的尸体,缺胳膊断腿的,不忍再拿来解剖了,到网上搜了一个根据PE文件头判断是否是合法PE文件的代码片段,该代码片段还有判断一个程序的子系统类型功能(Console还是GUI)。大致代码如下: BOOL IsValidPEFile(LPTSTR tszFullFileName){ HANDLE hFile = I

380

C++ 获取 PE 文件的各种信息

首先感谢 cyxvc 老哥,他的代码可读性超高,精简有用以理解,我找这方面的资料好久了,这篇文章对我帮助很大。 参考代码: #include "stdafx.h" #include <Windows.h> extern void DirectoryString(DWORD dwIndex); int _tmain(int argc, _TCHAR* argv[]) { //获...

LYSM 2606

PE文件格式详解(一)

转载地址点击打开链接

3765
上一篇: PE文件头
下一篇: smtp
sysprogram
博客等级 码龄17年 298粉丝 442原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值