首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • pe文件的读写 [已结贴,结贴人:wangshaojiexh]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wangshaojiexh
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-08-08 09:23:54 楼主
    怎么读pe文件啊 为什么我有creatfile只能读出一个dos头啊
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • qrlvls
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 17:27:161楼 得分:2
    PE文件也只是二进制文件而已,并没有太大的区别,你还是把你的代码贴出来好了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • all4u
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 16:45:012楼 得分:8
    如下,保证可以实现,因为最近我就在写这么个玩意,呵呵
    g_hFile=CreateFile(......);
    g_hFileMap=CreateFileMapping(....,LOWORD(GetFileSize(g_hFile,NULL)),/*文件映射的尺寸*/,NULL);
    g_lpImage=MapViewOfFile(g_hFileMap,FILE_MAP_READ,0,0,0);//文件映射开始地址,也就是DOS头的开始地址
    pImageDosHeader=(PIMAGE_DOS_HEADER)g_lpImage;
    pImageNTHheaders=(PIMAGE_NT_HEADERS)((LONG)g_lpImage+pImageDosHeader->e_lfanew);//PE头的开始地址
    .............
    后面的自己处理了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • all4u
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 16:47:233楼 得分:10
    在刚才的代码后面再补两行,这样PE里其他位置都有了
    pImageFileHeader=&(pImageNTHheaders->FileHeader);//PE头IMAGE_FILE_HEADER域
    pImageOptionalHeader=&(pImageNTHheaders->OptionalHeader);//PE头IMAGE_OPTIONAL_HEADER域
    ............
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved