是FileBuffer复制到ImageBuff的函数出错了,就图中的那一句Memcpy出了问题,应该是指针哪里写错了,但是自己排查不出来,真是崩溃了。。

函数代码如下:

DWORD CopyFileBufferToImageBuffer()

{

//参数 IN LPVOID pFileBuffer, OUT LPVOID* pImageBuffer

void* FileBuffer = ReadPEFile(FILEPATH);

LPVOID ImageBuffer = NULL;

pDosHeader = (PIMAGE_DOS_HEADER)FileBuffer;

pNTHeader = (PIMAGE_NT_HEADERS)((DWORD)FileBuffer + pDosHeader->e_lfanew);

pPEHeader = (PIMAGE_FILE_HEADER)((((char*)FileBuffer)+pDosHeader->e_lfanew )+ 4);

pOptionHeader = (PIMAGE_OPTIONAL_HEADER32)((DWORD)pPEHeader + 20);

pSectionHeader = (PIMAGE_SECTION_HEADER)((char*)pOptionHeader +

pNTHeader->FileHeader.SizeOfOptionalHeader);

//分配ImageBuffer大小的空间

ImageBuffer = malloc(pOptionHeader->SizeOfImage);

if (!ImageBuffer)

{

printf("分配内存空间失败:\n");

return 0;

}

//先Copy头的数据

memcpy(ImageBuffer, FileBuffer, pOptionHeader->SizeOfHeaders);

//Copy的头的大小

DWORD CopySize = pOptionHeader->SizeOfHeaders;

if (!ImageBuffer)

{

printf("复制SizeOfHeaders错误:\n");

return 0;

}

for (int i = 0; i < pPEHeader->NumberOfSections; i++)

{

memcpy(((char*)ImageBuffer + pSectionHeader->VirtualAddress),

((char*)pSectionHeader->PointerToRawData),

pSectionHeader->SizeOfRawData);

//GetLastError();

pSectionHeader += 40;

CopySize += pSectionHeader->SizeOfRawData;

}

return CopySize;

}

自学不易,还望不吝赐教

编程达人海哥c语言,编程达人 我在写海哥初级班39课作业的时候遇到了问题,希望有兄弟帮忙解答一下...相关推荐

  1. 轻松学c语言编程.pdf等,轻松学编程 轻松学C语言编程pdf

    轻松学编程 轻松学C语言编程 内容简介 <轻松学编程:轻松学C语言编程>从初学者的角度出发,以通俗易懂的语言.丰富多彩的实例,详细介绍了使用C语言进行程序开发应该掌握的各方面知识.全书共1 ...

  2. c语言对编程对作用,c语言编程心得体会

    c语言编程心得体会 c语言是在国内外广泛使用的一种计算机语言.以下是小编整理的c语言编程心得体会,欢迎大家阅读! c语言编程心得体会1 说到我学习c语言时,真是用千言万语呀!记得刚开始学的时候,我的c ...

  3. c语言编程模拟选举,C语言编程题精选

    C语言编程题精选 C语言编程题精选 1. 编程实现对键盘输入的英文名句子进行加密.用加密方法为,当内容为英文字母时其在26字母中的其后三个字母代替该字母,若为其它字符时不变. 2. 编程实现将任意的十 ...

  4. 成都c语言编程培训机构,成都学c语言编程,成都学c语言编程去哪里,成都学c语言编程需要报培训班吗...

    成都学c语言编程,成都学c语言编程去哪里,成都学c语言编程需要报培训班吗 首页 > 软件 > 成都学c语言编程 作者:镀金池   发布时间:2018-09-28 14:20 近似带有序布局 ...

  5. 罗定c语言,罗定学c语言编程,罗定学c语言编程培训,罗定学c语言编程一般怎么收费...

    罗定学c语言编程,罗定学c语言编程培训,罗定学c语言编程一般怎么收费 首页 > 软件 > 罗定学c语言编程 作者:镀金池   发布时间:2018-10-04 23:40 依照c语言的法则, ...

  6. 单片机c语言编程下载,单片机C语言编程.doc

    单片机C语言编程.doc 单片机C语言编程指令格式 功能简述 字节数 周期 一.数据传送类指令 MOV A, Rn 寄存器送累加器 1 1 MOV Rn,A 累加器送寄存器 1 1 MOV A ,Ri ...

  7. c语言编程所得票数,C语言编程求1X2X3····Xn所得的数末尾有多少个零

    C语言编程求1X2X3····Xn所得的数末尾有多少个零 发布时间:2020-08-10 02:23:57 来源:51CTO 阅读:312 作者:sonissa 参见大数的阶乘 https://blo ...

  8. c语言编程课程心得,c语言编程课程设计心得.docx

    C语言编程课程设计心得 C语言编程课程设计心得 河南城建学院 <C语言程序设计>课程设计报告 适用专业工程管理专业课程名称C语言程序设计指导教师赵军民.魏新红.张芳芳 设计人:051409 ...

  9. 方程组c语言编程,最小二乘解方程组C语言编程.doc

    最小二乘解方程组C语言编程 #include #include"math.h" using namespace std; int main() { double **a,*x,*y ...

最新文章

  1. 2022-2028年中国塑料编织品的制造行业市场竞争态势及投资方向分析报告
  2. mysql 关键字 status_Mysql show status命令详解
  3. JAVA进阶教学之(String类的构造方法)
  4. oracle change schema,使用pt-online-schema-change修改主键时注意
  5. Use YSlow to know why your web Slow
  6. python编程狮_python编程狮app
  7. 动态贝叶斯网络推断函数的调用
  8. android 电视安装apk文件损坏,安装电视软件时提示解析包出现问题怎么破?
  9. 快速下载各类网页视频插件~COCOCUT
  10. 【npm】伙计,给我来一杯package.json!不加糖
  11. web16(ColorBox插件编写)
  12. 使用xcelsius创建令人惊叹的幻灯片 --xcelsius入门
  13. 计算机一级excel试题百度云,excel计算机一级试题.doc
  14. 苹果的名字测试软件,教你iOS12人脸识别测颜值捷径安装使用教程及iPhone XR修改AppleID姓名教程...
  15. 原来普洱茶还有预防头痛,减轻体重,缓解压力和失眠的作用,而且是年份久的普洱茶效果好
  16. http url特殊字符转义
  17. APP内如何打开某个应用的App Store下载页面
  18. 怎么输出链表最后一个元素_听说AI将是人类最后一个发明?听听他怎么说!
  19. Lua判断一个对象是否为空,包含userdata
  20. SpringSecurity详细介绍RememberMe源码流程

热门文章

  1. logstash问题记录:Attempted to resurrect connection to dead ES instance, but got an error
  2. python手机自动化测试脚本语言_python脚本语言? Appium移动自动化测试
  3. iText操作word
  4. 【万字解读】数据可视化图表使用场景大全 !
  5. 单片机开发无线控制系列-单片机端代码实现
  6. debussy下载及安装
  7. 之前的账号不见了,@21cn.com的。哪里可以找的回来?
  8. win7 凭据管理无法保存
  9. Windows Server执行定时任务
  10. FEC【筷云早报】 2020年7月29日星期三