`
lobin
  • 浏览: 427748 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

对象文件结构的分析:VC

 
阅读更多

我们在Windows下编程时,如我们在VC下开发C/C++程序,程序写完后再经编译、链接生成可运行的程序。在编译时通常会生成一个obj对象文件,这个obj对象文件是什么文件呢?它里边包括哪些信息?

 

该obj对象实际上是一个COFF格式的文件,它是一种公共对象文件格式文件(Common Object File Format)。

 

一个简单的例子

写道
>od -A x -t x1 simpletest.obj

 



 

 

000000 4c 01 02 00 fb 50 f1 5c 8f 00 00 00 08 00 00 00

000010 00 00 00 00 2e 64 72 65 63 74 76 65 00 00 00 00

000020 00 00 00 00 26 00 00 00 64 00 00 00 00 00 00 00

000030 00 00 00 00 00 00 00 00 00 0a 10 00 2e 74 65 78

000040 74 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00

000050 8a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

000060 20 00 50 60 2d 64 65 66 61 75 6c 74 6c 69 62 3a

000070 4c 49 42 43 20 2d 64 65 66 61 75 6c 74 6c 69 62

000080 3a 4f 4c 44 4e 41 4d 45 53 20 55 8b ec 5d c3 2e

000090 66 69 6c 65 00 00 00 00 00 00 00 fe ff 00 00 67

0000a0 01 73 69 6d 70 6c 65 74 65 73 74 2e 63 00 00 00

0000b0 00 00 00 40 63 6f 6d 70 2e 69 64 e8 1f 0a 00 ff

0000c0 ff 00 00 03 00 2e 64 72 65 63 74 76 65 00 00 00

0000d0 00 01 00 00 00 03 01 26 00 00 00 00 00 00 00 00

0000e0 00 00 00 00 00 00 00 00 00 2e 74 65 78 74 00 00

0000f0 00 00 00 00 00 02 00 00 00 03 01 05 00 00 00 00

000100 00 00 00 56 e8 2b 67 00 00 00 00 00 00 5f 6d 61

000110 69 6e 00 00 00 00 00 00 00 02 00 20 00 02 00 04

000120 00 00 00

 

0-1 4C 01 表示机器类型:Intel 386 or later processors and compatible processors 

2-3 02 00  段(section)的个数、

5-7 FB 50 F1 5C  从00:00 January 1, 1970 (a C run-time time_t value)到现在的秒数(低32位)

8-11 8F 00 00 00 COFF符号表的起始偏移位置

12-15 08 00 00 00 符号的个数

16-17 00 00  Optional头部的大小

18-19 00 00 文件属性

 

20-59

2E 64 72 65  63 74 76 65 00 00 00 00

00 00 00 00 26 00 00 00  64 00 00 00 00 00 00 00

 

00 00 00 00 00 00 00 00  00 0A 10 00 

第1个段(section)

20-27

2E 64 72 65  63 74 76 65  段名称(.drectve

28-31

 

00 00 00 00 段加载到内存的大小

 

60-99

2E 74 65 78

74 00 00 00 00 00 00 00  00 00 00 00 05 00 00 00

8A 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00

 

20 00 50 60 

第2个段(section)

  • 大小: 12.2 KB
0
0
分享到:
评论

相关推荐

    python入门-30.寻找列表中只出现一次的数字-寻找单身狗.py

    python入门-30.寻找列表中只出现一次的数字——寻找单身狗.py

    布尔教育linux优化笔记

    linux优化笔记,配套视频:https://www.bilibili.com/list/474327672?sid=4496133&spm_id_from=333.999.0.0&desc=1

    知识付费系统-直播+讲师入驻+课程售卖+商城系统-v2.1.9版本搭建以及资源分享下载

    知识付费系统-直播+讲师入驻+课程售卖+商城系统-v2.1.9版本搭建以及资源分享下载,CRMEB知识付费分销与直播营销系统是由西安众邦科技自主开发的一款在线教育平台,该系统不仅拥有独立的知识产权,还采用了先进的ThinkPhp5.0框架和Vue前端技术栈,集成了在线直播教学及课程分销等多种功能,旨在为用户提供全方位的学习体验,默认解压密码youyacaocom

    美妆神域-JAVA-基于springBoot美妆神域设计与实现

    美妆神域-JAVA-基于springBoot美妆神域设计与实现

    原生js制作Google粘土logo动画涂鸦代码.zip

    原生js制作Google粘土logo动画涂鸦代码.zip

    golin 扫描工具使用, 检查系统漏洞、web程序漏洞

    golin 扫描工具使用, 检查系统漏洞、web程序漏洞

    原生态纯js图片网格鼠标悬停放大显示特效代码下载.zip

    原生态纯js图片网格鼠标悬停放大显示特效代码下载.zip

    用AWLUM进行灰色编码2^2n-QAM调制的精确率Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    去水印web端独立版web

    去水印web端独立版web

    原生js制作左侧浮动可折叠在线客服代码.zip

    原生js制作左侧浮动可折叠在线客服代码.zip

    Chrome 谷歌浏览器下载

    Chrome 谷歌浏览器下载

    亲测全新完整版H5商城系统源码 附教程

    全新完整版H5商城系统源码 自己花钱买的,亲测可用,需要自行下载 H5商城系统设置是实现商城基本功能的核心部分,涵盖了从网站配置、短信和支付配置,到商品、工单、订单、分站和提现管理等多个模块的设置。以下是详细的设置指南,帮助您快速上手并高效管理商城系统。 测试环境:Nginx+PHP7.0+MySQL5.6 1. 网站配置 设置商城名称、LOGO、标题、联系方式和SEO关键词等,确保商城专业和易于搜索。 2. 短信配置 配置短信接口和模板,用于发送订单通知、验证码等,提升用户体验。 3. 支付接口配置 配置微信、支付宝等支付接口,填写API密钥和回调地址,确保支付流畅。 4. 商品分类管理 对商品进行分类和排序,设置分类名称和图标,便于用户查找商品。 5. 商品管理 添加和管理商品信息、规格、图片等,确保商品信息准确丰富。 6. 工单管理 查看和回复用户工单,记录售后问题,提升用户服务质量。 7. 订单管理 查看订单详情,更新订单状态,支持批量导出,方便订单跟踪。 8. 分站管理 创建不同区域分站,设置权限,统一管理各区域市场。 9. 提现管理

    短信3.141592672893982398674234

    apk安装包

    原生js选项卡插件自定义图片滑动选项卡切换.zip

    原生js选项卡插件自定义图片滑动选项卡切换.zip

    1-宗教信息佛教佛寺寺庙庵堂相关数据-社科数据.zip

    宗教信息佛教佛寺寺庙庵堂相关数据集提供了全国各个地区省市县各个佛教寺庙的详细信息。这些数据不仅包括寺庙的名称和负责人姓名,还涵盖了所属省份、地级市、区县、具体地址、建立日期以及支派类别等关键信息。该数据集整理了超过3万条样本,为研究中国佛教寺庙的分布、历史和文化提供了丰富的第一手资料。这些信息有助于了解佛教在中国的传播和发展,以及寺庙在社会和文化中的作用。数据的整理和提供,对于宗教学、社会学、历史学和文化研究等领域的学者来说,是一个宝贵的资源。

    线性电阻网络的等效电阻计算Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    简单的 Python 版本管理.zip

    简单的 Python 版本管理pyenvpyenv 可让您轻松在多个 Python 版本之间切换。它简单、不引人注目,并遵循 UNIX 传统,即使用单一用途的工具来做好一件事。该项目由rbenv和 ruby​​-build分叉而来,并针对 Python 进行了修改。pyenv 的作用是什么......允许您根据每个用户更改全局 Python 版本。为每个项目的 Python 版本提供支持。允许您使用环境变量覆盖 Python 版本。一次搜索多个 Python 版本的命令。这可能有助于使用tox跨 Python 版本进行测试。与 pythonbrew 和 pythonz 相比,pyenv没有……依赖于Python本身。pyenv由纯shell脚本制作。不存在Python的引导问题。需要加载到你的 shell 中。相反,pyenv 的 shim 方法通过向你的 中添加目录来工作PATH。管理虚拟环境。当然,你可以自己创建虚拟环境 ,或者使用pyenv-virtualenv 来自动化该过程。目录安装获取 PyenvLinux/UNIX自动安装程序基本

    Notepad-v2.20工具,是替代Notepad++的首选工具

    Notepad-v2.20工具,是替代Notepad++的首选工具

    原生js随机图片拖拽排序代码.zip

    原生js随机图片拖拽排序代码.zip

    更快、更好、更稳定的Redis桌面(GUI)管理客户端,兼容Windows、Mac、Linux,性能出众,轻松加载海量键值

    更快、更好、更稳定的Redis桌面(GUI)管理客户端,兼容Windows、Mac、Linux,性能出众,轻松加载海量键值

Global site tag (gtag.js) - Google Analytics