C语言编程获取PE文件DOS头

2023-10-30

#include <windows.h>
#include <stdio.h>
#include <tchar.h>
int _tmain(int argc, TCHAR *argv[])
{
	PIMAGE_DOS_HEADER pImageDosHeader;
	HANDLE hFile;
	HANDLE hMapObject;
	PUCHAR uFileMap;
	DWORD dw;

	if (argc<2)
	{
		return -1;
	}
	
	if (!(hFile=CreateFile(argv[1],GENERIC_READ,0,NULL,OPEN_EXISTING,0,0)))
	{
		return -1;
	}
	if (!(hMapObject = CreateFileMapping((hFile),NULL,PAGE_READONLY,0,0,NULL)))
	{
		dw = GetLastError(); 
		return -1;
	}
	if (!(uFileMap=MapViewOfFile(hMapObject,FILE_MAP_READ,0,0,0)))
	{
		return -1;
	}
	pImageDosHeader = (PIMAGE_DOS_HEADER)uFileMap;
	if (pImageDosHeader->e_magic != IMAGE_DOS_SIGNATURE)
	{
		return -1;
	}
	printf("e_magic:	0x%04X(%c%c)\n", pImageDosHeader->e_magic, *uFileMap, *(uFileMap + 1));
	printf("e_lfanew:	0x%08X\n",pImageDosHeader->e_lfanew);
	UnmapViewOfFile(uFileMap);
	CloseHandle(hMapObject);
	CloseHandle(hFile);
	return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言编程获取PE文件DOS头 的相关文章

随机推荐

  • crontab 配置问题 没有执行php文件

    设置了一个crontab 发现不执行 查找了原因是因为PHP的路径不对 首先 确认 PHP 可执行文件的位置 对于大多数 Linux 系统 几乎肯定是 usr bin php 如果不确定其位置 请在命令行中键入 which php 并查看响
  • com.android.ddmlib.AdbCommandRejectedException: device offline Error while Installing APK解决

    com android ddmlib AdbCommandRejectedException device offline Error while Installing APK 这个问题是adb被杀死了 重新启动一下就可以 有三种方法 一
  • STM32之串口

    文章目录 一些概念 串口初始化 1 时钟使能 2 串口复位 3 GPIO模式配置 4 串口参数初始化 5 初始化NVIC并开启中断 6 开启中断 7 使能串口 完整的初始化代码 中断函数 实验接收到A LED0亮 再接收到关 一些概念 并行
  • 百度地图api-基本用法总结

    以下内容已录制 点击观看视频 还有更多好玩的百度地图效果展示 百度地图效果 百度地图api 一些常用的用法总结 笔记 参考百度地图官方api 百度地图官方api 百度地图提供的拾取坐标 百度地图提供的拾取坐标 注 百度地图api文档是真详细
  • python 单例

    1 使用模块 from AA import a 2 使用 new 在Python中 可以通过重写类的 new 方法来实现单例模式 单例模式是一种设计模式 它保证一个类只有一个实例 并提供一个全局访问点 class Singleton obj
  • 手写系列之--new/create

    new 创建一个新对象 这个对象的 proto 要指向构造函数的原型对象 执行构造函数 返回值为object类型则作为new方法的放回置返回 否则返回新建的对象 const myNew function const obj const co
  • 【技能】百家号连接企业微信流程示例

    产品案例要解决的问题 百家号是众多企业实现营销转化的运营新阵地 每当百家号更新文章时 都需要人工手动输入消息通过企业微信通知到相关的企业人员 业务量大的时候 工作人员难免会产生遗忘 带来一些不必要的麻烦 如果每次百家号有文章更新的时候 可以
  • [MySQL] MySQL JDBC URL

    作者 javasky http javasky bloghome cn MySQL JDBC Driver 常用的有两个 一个是gjt Giant Java Tree 组织提供的mysql驱动 其JDBC Driver名称 JAVA类名 为
  • unzip:unzip解压文件到指定目录

    目录 1 把文件解压到当前目录下 unzip test zip 2 如果要把文件解压到指定的目录下 需要用到 d参数 unzip d temp test zip 3 解压的时候 有时候不想覆盖已经存在的文件 那么可以加上 n参数 unzip
  • 51单片机keilC软件安装和开发板 学习板串口驱动下载及安装 使用

    51单片机软件安装和开发板驱动安装 keilC碰到的问题 软件下载安装 软件使用 开发板问题 开发板选择 驱动问题 其他 keilC碰到的问题 软件下载安装 1 一开始不知道keilC居然还有两个版本 下了个keil4和keil5都是ARM
  • 超高频RFID医疗血液管理系统应用

    1 项目背景 血液 可以解决医疗上的大量问题 如果血液采集不规范 血液存储和使用混乱 又可能成为各种疾病的传播渠道 而在血液管理的过程中 常常涉及到大量的信息 给管理者带来了难题 而超高频RFID传感技术的应用可以帮助实现血液的智能化管理
  • 单TYPE-C口 可支持快充又可传输USB2.0数据方案

    虽然现在有不少厂商也采用了Type C接口 但是只作为一个充电接口 对于跨时代的type c接口来说 多少有点大材小用 那么有没有办法 让一个type c接口既可以充电 又可以接OTG 比如不充电的时候可以接U盘 而且应急的时候甚至可以当一
  • Oracle Alter Table Modify列语句

    在本教程中 您将学习如何使用Oracle ALTER TABLE MODIFY列语句来更改现有列的定义 要更改表中列的定义 请按如下所示使用ALTER TABLE MODIFY列语法 ALTER TABLE table name MODIF
  • openmv识别三角形及一些不规则形状的识别

    今年在准备国电赛过程中 看了一下一些自己往年写过的代码 想起自己以前在网上找资料的艰辛 同时也非常感谢前人的无私分享 就想着把自己做过的东西也在网上分享分享 这篇文章应该去年就发的 但由于当时学业繁忙 后来就忘了 最近准备国赛才想起来 我个
  • Stable Diffusion关键词

    Positive 8k RAW photo best quality masterpiece 1 2 realistic photo realistic 1 37 ultra detailed full body 1 girl solo b
  • UUID介绍与生成方法

    什么是UUID UUID是Universally Unique Identifier的缩写 它是在一定的范围内 从特定的名字空间到全球 唯一的机器生成的标识符 UUID具有以下涵义 经由一定的算法机器生成 为了保证UUID的唯一性 规范定义
  • linux ssh 远程会话保存,远程SSH会话和流程在断开后运行的5种方法

    SSH或安全Shell简单来说就是一个人可以远程访问其他用户的其他系统 但仅在命令行即非GUI模式的方法 在更多的技术术语中 当我们ssh到其他用户在某些其他系统上并在该机器上运行命令时 它实际上创建一个伪终端并将其附加到登录用户的登录sh
  • jacksonUtil工具类

    import com fasterxml jackson core JsonProcessingException import com fasterxml jackson databind JavaType import com fast
  • 毕业设计-基于Unity的餐厅经营游戏的设计与开发(附源码、开题报告、论文、答辩PPT、演示视频,带数据库)

    基于Unity的餐厅经营游戏的设计与开发 下载链接 点我下载资源 一 登陆 Unity2020 3 3f1c1版本 开始界面 进入游戏后 在开始界面右下角是一个登陆按钮 当玩家点击开始按钮后 会进入登陆面板 登录界面 登录面板如下图所示 玩
  • C语言编程获取PE文件DOS头

    include