PE文件的资源为一个隐藏的PE文件,使用FindResource把它给提取出来,顺便理解一下资源函数的使用

// test.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include <windows.h>
#include "GgetPE_Info.h"
int _tmain(int argc, _TCHAR* argv[])
{char *buffer = NULL;HRSRC hRsrc = NULL;// 获取指定模块里的指定资源HANDLE hFile=CreateFileW(L"KmdManager",GENERIC_ALL, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);if (hFile == INVALID_HANDLE_VALUE){printf("打开文件失败\n");goto exit;}DWORD dwFileSize=GetFileSize(hFile,NULL);if (dwFileSize == INVALID_FILE_SIZE){printf("获取文件大小失败\n");goto exit;}buffer = new char[dwFileSize];DWORD readSize = 0;BOOL isReadSucc = ReadFile(hFile, buffer, dwFileSize, &readSize, NULL);if (!isReadSucc ){printf("读取文件内容失败,错误码%d\n",GetLastError());goto exit;}//buffer需要拉伸到内存状态PVOID imageBuffer = NULL;ImageBufferToNewBuffer(buffer, &imageBuffer);  //该函数为自写函数  把文件对其的buffer拉伸为内存中的状态。hRsrc = FindResource((HMODULE)imageBuffer, "EXERESX", RT_RCDATA);  //第一个参数为模块句柄,其实就是buffer开始地址。if (!hRsrc){printf("查找资源失败,错误码%d\n", GetLastError());goto exit;}// 获取资源的大小DWORD dwSize = ::SizeofResource((HMODULE)imageBuffer, hRsrc);if (0>=dwSize){printf("获取资源大小失败,错误码%d\n", GetLastError());goto exit;}HGLOBAL hGlobal = ::LoadResource((HMODULE)imageBuffer, hRsrc);if (NULL == hGlobal){printf("加载资源失败,错误码%d\n", GetLastError());goto exit;}// 锁定资源LPVOID lpVoid = ::LockResource(hGlobal);if (NULL == lpVoid){printf("加载资源失败,错误码%d\n", GetLastError());goto exit;}// 保存资源为文件FILE *fp = NULL;fopen_s(&fp, "212.exe", "wb+");if (NULL == fp){printf("加载资源失败,错误码%d\n", GetLastError());goto exit;}fwrite(lpVoid, sizeof(char), dwSize, fp);fclose(fp);exit:if (hFile){CloseHandle(hFile);}getchar();return 0;
}

FindResource提取PE文件中的资源相关推荐

  1. vscode中打开pdf文件_提取pdf文件中的文字

    环境说明 windows10系统 python3.6版本 安装 网上很多说需要安装pdfminer3k和pdfminer3k.six,我尝试了先安装pdfminer3k后安装pdfminer3k.si ...

  2. Python使用pdfminer3k提取PDF文件中的文本

    推荐教材: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社,2020年6月第1次印刷,2021年12月第11次印刷,山东省一流 ...

  3. Python提取PDF文件中的表格文本保存为Excel文件

    "Python小屋"编程比赛正式开始 推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社,2020 ...

  4. 【Python项目实战】提取.docx文件中的图片并保存到指定的文件夹

    文章目录 一.需求分析 二.系统设计 2.1系统业务流程 2.2系统预览 三.系统开发必备 3.1 系统开发环境 3.2文件组织结构 四.主函数设计 1.创建窗口 2.创建按钮 3.创建输入框 五.函 ...

  5. python读json文件中不同的数据类型_怎么使用python提取json文件中的字段

    python中为什么用json有什么作用 python的json模块中如何将变量添加到里面 python的json模块第一个是要打开的文件,第二个是打开的操作,为什么会如果你早认清你在别人心中没那么重 ...

  6. python批量提取pdf的数据_Python批量提取PDF文件中文本的脚本

    本文实例为大家分享了Python批量提取PDF文件中文本的具体代码,供大家参考,具体内容如下 首先需要执行命令pip install pdfminer3k来安装处理PDF文件的扩展库. import ...

  7. Tips--利用shell脚本批量提取txt文件中任意字段

    利用shell脚本批量提取txt文件中任意字段 前言 0. 一个例子 1. cat命令 2. '|'符号与'>'符号 3. grep命令 4. awk命令 前言 对于测试中出现的log,我们经常 ...

  8. java+读取source资源_如何从JavaJAR文件中读取资源文件?

    如何从JavaJAR文件中读取资源文件? 我试图从一个单独的JAR文件中访问一个XML文件,这个JAR是作为桌面应用程序运行的.我可以获得我需要的文件的URL,但是当我将它传递给FileReader( ...

  9. 运用awk提取日志文件中的IP地址

    在我们的日常工作中,可能会遇到各种不同的问题,有来自内部,有的来自外部. 以Nginx服务为例,服务上线之后可能会遭受非法的流量攻击,我们在配置Nginx服务时可以通过Nginx.conf配置文件中的 ...

最新文章

  1. 小R SLAM机器人树莓派3b+ ROS kinetic 环境搭建笔记
  2. hdu3594 强连通 tarjan
  3. 【Java 虚拟机原理】垃圾回收算法 ( 设置 JVM 命令参数输出 GC 日志 | GC 日志输出示例 | GC 日志分析 )
  4. JavaIO4--ObjectInputStream和ObjectOutputStream
  5. python跳槽工资_年薪45万阿里程序员想跳槽到vivo,网友:工资不翻倍不要去
  6. linux idea 权限,Linux下idea由于缺少相关权限导致的tomcat ERROR
  7. python调用c函数传字符串参数_Python使用ctypes模块调用DLL函数之传递数值、指针与字符串参数...
  8. 用VC++制作变形窗体
  9. Google中国要来啦
  10. java 贝叶斯抠图_毕业论文(设计)基于贝叶斯算法的自动抠图程序设计与实现.doc...
  11. gitlab 添加了 ssh keys, git clone git@xxx:xx.git 无法拉取的解决思路及办法
  12. 在CentOS5上用 rvm 部署Rails3应用
  13. 【LM】电池电量水平低 保留电池电量 关键级别电池电量水平
  14. word2016去除回车符和换行符的方法
  15. 红牛整装待发,功能饮料市场地位不可撼动
  16. 永安行专利侵权胜诉,IPO并未搁置
  17. react 组件构建_为React构建星级评定组件
  18. Oracle数据库 SQL语句总结大赏
  19. 第 09 章 基于特征匹配的英文印刷字符识别 MATLAB深度学习实战案例
  20. linux为什么不能配置网络打印机,linux配置网络打印机

热门文章

  1. (Bzoj1977)次小生成树
  2. js比较两个JSON对象,返回变化值
  3. 聊聊提问的艺术(日本版)
  4. 夜间灯光数据(npp/viirs)网格化处理全过程
  5. Unity3d代码及效率优化总结
  6. JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能
  7. WordPress使用SQL语句批量替换文章内容
  8. Mac使用命令行批量导入数据库数据
  9. Java学习笔记-线程中countDown()使用
  10. 使用VC2008开发OCX