首页 > 编程语言 >基于Cecil源码的IL练级攻略(2)Metadata存储结构

基于Cecil源码的IL练级攻略(2)Metadata存储结构

时间:2024-12-25 16:30:58浏览次数:4  
标签:练级 Header 源码 IL Metadata 数据 Cecil metadata

目录

简介

上文提到CLR Runtime Header中包含metadata directory,我们可以通过这个字段访问对应的元数据信息。

本篇文章会大致介绍一下元数据metadata以及它的存储结构。后续的文章都将基于本篇文章,因此如果有不理解的地方,推荐重新再看一遍,一遍,又一遍。

什么是元数据

元数据(metadata)是存储于PE文件中的二进制信息(binary information),用于补充描述程序的信息。由于公共语言运行时CLR的编程模型天生就是面向对象的,因此元数据包括每个类和类中的成员,成员对应的注解,以及它们彼此之间的关系。metadata是托管程序(managed module)必不可少的一部分,每个托管程序(managed module)总是会携带完整的逻辑结构用于描述所在的托管程序。

具体实现上,元数据(metadata)是规范化的关系型数据库。这意味着元数据是一组相互引用的长方形表(table),而不是树状结构。元数据表的每一列包含数据或者一个引用,指向另一个表的某一行。整个元数据表没有冗余的数据,如果另一个表需要用到相同的数据,它会引用(references)持有数据的表。

Metadata Header

由于PE-bear无法展示Metadata相关的header,所以本篇文章会使用CFF Explorer来辅助学习。

参考文献

The .NET File Format

《.NET IL Assembler》

Cecil

标签:练级,Header,源码,IL,Metadata,数据,Cecil,metadata
From: https://www.cnblogs.com/dewxin/p/18627965

相关文章

  • Chapter 8, 9 B-CIDS: 5 pillars of AI preparation → Jumpstart Approach
    B-CIDSAI-Readiness:AcompanyisAI-readywhenitcansmoothlyprogressfromAIconcepttoimplementationandbenefitrealization,anddosoconsistently.Preparation:AchievingAI-readinessisacomprehensiveprocessinvolvingcompanyculture,talent,......
  • Springboot旧衣捐赠平台设计与实现p40x5(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,公益活动,捐赠信息,物品分类,地区分类,捐赠数据,捐赠接收开题报告内容一、研究背景与意义研究背景随着经济的快速发展和消费意识的提高,旧衣物的废弃量不......
  • Springboot旧商品销售系统4104m(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,卖家,商品分类,商品信息开题报告内容一、项目背景与意义随着经济的快速发展和人们消费观念的转变,旧商品市场逐渐兴起。许多消费者开始注重资源的循环利用,......
  • Springboot旧教材交易系统a6151(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,书籍类型,书籍信息开题报告内容一、研究背景随着高等教育的普及和校园生活的丰富多彩,学生们在学习和生活中积累了大量的旧教材。这些旧教材对于个人而言,可......
  • 零基础入门Spring源码
    文章目录前言Spring相关代码pom.xml配置文件beans.xml实体类测试类一、创建BeanFactoryApplicationContextBeanFactory和ApplicationContext的区别补充如何从容器中获取对象?二、读取xml等,将bean定义信息放入BeanDefinition三、对BeanDefinition中的属性值进行替换补充......
  • 源码编译geoserver(idea)
    官方教程:https://docs.geoserver.org/main/en/developer/quickstart/intellij.html 从git存储库中检出源代码:gitclonehttps://github.com/geoserver/geoserver.gitgeoserver列出可用的分支:%gitbranch2.21.x2.22.x*main选择main最新动态:%gi......
  • 使用 Wails 创建桌面应用(二)
    引入tailwindcss在前端文件目录下运行npminstall-Dtailwindcsspostcssautoprefixer安装完成后再运行npxtailwindcssinit-p会生成两个文件,postcss.config.js和tailwind.config.js配置tailwind.config.js/**@type{import('tailwindcss').Config}*/exportdefau......
  • 计算机毕业设计 | SpringBoot+vue高校专业实习管理系统 大学生实训管理(附源码+论文)
    1,绪论1.1项目背景随着高等教育的快速发展,专业实习已成为培养学生实践能力、创新能力和职业素养的重要环节。然而,传统的人工管理方式存在效率低、易出错、信息不透明等问题,难以满足当前高校对专业实习管理的需求。因此,开发一套高效、便捷、智能化的高校专业实习管理系统显......
  • 计算机毕业设计 | SpringBoot+vue库存管理系统 企业采购进存销仓库管理(附源码+论文)
    1,绪论1.1选题动因在现在社会,对于信息处理方面,是有很高的要求的,因为信息的产生是无时无刻的,并且信息产生的数量是呈几何形式的增加,而增加的信息如何存储以及短时间分析检索,也是有时效性的,所以,不管是任何的企业和个人,只要需要处理信息,必然是要寻找到一个适合自己的解决方案......
  • 计算机毕业设计 | SpringBoot+vue车辆管理系统 汽车保养事故维修违章处理平台(附源码+
    1,绪论1.1研究背景近年来,第三产业发展非常迅速,诸如计算机服务、旅游、娱乐、体育等服务行业,对整个社会的经济建设起到了极大地促进作用,这一点是毋庸置疑的。现下,国家也出台了一些列的政策来支持和鼓励第三服务产业的发展与完善,用以带动社会经济的发展。所以,整体来说,国家是......