最新公告
  • 欢迎您光临资源网,本站秉承服务宗旨 履行“站长”责任,做国内最专业的站长资源平台!立即加入我们
  • 二进制文件概述

    pe文件格式

    pe(portable executable)是win32平台课执行文件遵守的数据格式,常见的可执行文件都是典型的pe文件

    一个可执行文件不光包含了二进制的机器代码,还会自带许多其他信息,如字符串,菜单,图标,位图,字体等,pe文件格式规定了所有的这些信息在可执行文件中如何组织,在程序被执行时,操作系统会按照pe文件格式的约定去对应的地方准确的定位各种类型的资源,并分别装入内存的不同区域

    pe文件格式把可执行文件分成若干的数据节(section)不同的资源被存放在不同的节中

    .text 由编译器产生,存放着二进制的机器代码,也是我们反汇和调试的对象。

    .data 初始化的数据块,如宏定义,全局变量,静态变量等

    .idata 可执行文件所使用的动态链接库等外来函数与文件的信息

    .rsc 存放程序的资源如图标菜单等

    .reloc

    .edata

    .tls

    .rdata

    虚拟内存

    Windows的内存可以分为两个层面

    物理内存

    虚拟内存

    物理内存非常复杂需要进入Windows内核级别ring0才能看到

    用户模式下我们用调试器看到的内存地址都是虚拟内存

    Windows让所有的进程都相信自己拥有独立的4gb内存空间,但是我们计算机那根实际的内存条可能只有512Mb,怎么可能为所有进程都分配4gb的内存呢?这一切都是通过虚拟内存管理器的映射做到的;

    虽然每个进程都相信自己拥有4gb的空间,但实际上他们运行时真正能用到的空间根本没有那么多,内存管理器只是分给进程一片假地址,或者说是虚拟地址,让进程们认为这些虚拟地址都是可以访问的,如果进程不使用这些虚拟地址,他们对进程来说就只是一笔五行的数字财富,当需要进行实际的内存操作时,内存管理器才会把虚拟地址和物理地址联系起来

    进程所拥有的4gb虚拟内存中包含了程序运行时所必需的资源,比如代码,栈空间,堆空间,资源区,动态连接库等

    pe文件与虚拟内存之间的映射

    在调试漏洞时,可能经常需要做这样两种操作。

    1.静态反汇编工具看到的pe文件中某条指令的位置是相对于磁盘文件而言的,即所谓的文件的偏移,我们可能还需要知道这条指令在内存中所处的位置,即虚拟内存地址(VA)

    2.在调试时看到的某条指令的地址是虚拟内存地址,我们也经常回到pe文件中找到这条指令对应的机器码。

    我们需要弄清楚pe文件地址和虚拟内存地址之间的映射关系

    1.文件偏移地址(file offset)

    数据在pe文件中的地址叫文件偏移地址,文件在磁盘上存放时相对于文件开头的偏移

    2.装载基址(image base)

    pe装入内存的基地址,默认情况下,exe文件在内存中的基地址是0x00400000,dll文件是0x10000000.这些位置可以通过修改编译选项更改。

    3.虚拟内存地址(virtual address,VA)

    pe文件中的指令被装入内存后的地址。

    4.相对虚拟地址(relative virtual address,rva)

    相对虚拟地址是内存地址相对于映射基址的偏移量

    VA=IMAGE BASE+RVA

     

     

    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,请不要用于商业用途!
    3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,默认解压密码为"dtmb.taobao.com",如遇到无法解压的请联系管理员!
    8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
    声明如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性

    资源网 » 二进制文件概述

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或 联络我们.。
    你们有qq群吗怎么加入?
    当然有的,如果你是帝国cms、易优cms、和pbootcms系统的爱好者你可以加入我们的QQ千人交流群https://www.lishuaishuai.top/page-qun.html。

    发表评论

    • 64会员数(个)
    • 2516资源数(个)
    • 0本周更新(个)
    • 0 今日更新(个)
    • 1261稳定运行(天)

    提供最优质的资源集合

    加入VIP
    开通VIP 享更多特权,建议使用 QQ 登录