精华内容
下载资源
问答
  • 大家好,我们今日继续讲解VBA代码解决方案的第129讲内容:计算机使用文件的类型及其区别。在第127和128讲中我们讲了VBA在处理顺序文件时的一些方法,包括打开文件和读取文件。在写道这里的时候,很多朋友会提出一个...

    37510aef21f99623132cecf4f8ff0af3.png

    大家好,我们今日继续讲解VBA代码解决方案的第129讲内容:计算机使用文件的类型及其区别。在第127和128讲中我们讲了VBA在处理顺序文件时的一些方法,包括打开文件和读取文件。在写道这里的时候,很多朋友会提出一个问题,什么是顺序文件呢?还有哪些文件类型呢?今日的这节内容就来解决这个问题。然后我在讲解其他文件的VBA处理的方法。

    一 计算机文件的分类:对于文件的分类方式有很多种,我们只是关心的是文件的读写方式,按照文件的读写方式的不同,我们可以把计算机的文件分成顺序文件,随机文件和二进制文件

    1 顺序文件 是指按储存相同的顺序找回数据的文件。例如以CSV格式(逗号分割文本),TXT 格式(以Tab键分割的文本)或者PRN格式(以空格分隔的文本)储存的文件。顺序文件访问经常用来写文本文件,例如错误日志,参数设定和报告。

    顺序文件有下列模式:Input, Output 和 Append。模式决定了文件打开后你如何使用它。

    2 随机文件 是指随机访问的文本文件,它的数据以同等长度储存并在一个以逗号分割的区域了。随机访问 文件只有一个模式——Random

    3 二进制文件 二进制访问文件是图形文件和其它非文本文件。二进制文件只能够在Binary模式下访问。

    二 顺序文件、随机文件的区别

    我们要清楚,所谓的顺序文件、随机文件,是指文件的读写方式,而不是指文件的类型。那就是:顺序文件是按行读取,由于每一行的字符数是不一定相同的,所以只能够从头到尾按顺序一行一行地读取,要想直接从中取出某一行是做不到的;而随机文件则是按“块”读取,就是说把文件分割为一个个字数相等的小块,然后根据需要就可以从中取出任意的一块或多块了。

    再来个例子:顺序文件就像是把一大堆各种种类的书籍杂乱地堆在一起,如果想从中找到某本书,那么就要一本本地去找,运气好的话,可能只找几本就找到了,当然如果运气差就有可能找到最后一本才找到;

    随机文件则是预先把书籍分门别类放到一个个相同大小的、编了号的架子里,只要告知你你要的书在第几的架子里,你直接去这个架子就找就可以了。

    三 顺序文件和随机文件的记录编辑

    顺序文件是记录按其在文件中的逻辑顺序依次存储进入存储介质中的,其逻辑顺序和物理顺序一致。随机文件,由记录组成,能够随机存取其机同长度的数据记录,每一数据记录内可以设计各种栏位以容纳不同的数据。

    所以由上面的文件记录特点来看顺序文件又可以分成顺序有序文件和顺序无序文件

    顺序有序文件:记录按其主关键字有序的顺序文件为顺序有序文件。

    顺序无序文件:记录未按其主关键字有序排列的顺序文件为顺序有序文件。

    为提高检索效率,常将顺序文件组织成有序文件。

    四 二进制文件的特点 二进制文件即除文本文件以外的文件。相对于文本文件两者有着明显的不同:

    文本文件是一种由很多行字符构成的计算机文件。文本文件存在于计算机系统中,通常在文本文件最后一行放置文件结束标志。文本文件的编码基于字符定长,译码相对要容易一些;二进制文件编码是变长的,灵活利用率要高,而译码要难一些,不同的二进制文件译码方式是不同的。

    有了上面的理论的知识,我们下面讲再次深入的解决如何文件的问题,文件处理包括打开,读取,和编辑。我们将深入的展开讲解。

    4ac6179915c8580efef0bcb604100633.png

    今日内容回向:

    1 文件按读取方式不同可以为几种?

    2 顺序文件又可以分为几种?

    3 txt文件一定是顺序文件吗?


    《VBA代码解决方案》终于可以和大家见面了,是我将一些非常实用的VBA内容结集成册,PDF文件,可以从中直接查找到你想要解决问题的思路和方法,可以复制文中的VBA代码直接使用。有需要的朋友微信联络我NZ9668。

    11cd4c3a31407f713a750bf8612efbf2.png

    08a1e49446f83a54fe87669bedf8fc6f.png

    3cae22cd9db03bb17a593f687130cf92.png
    展开全文
  • 什么是二进制文件?在第127和128讲中我讲了VBA在处理顺序文件时的一些方法,包括打开文件和读取文件。在写到这里的时候,很多朋友会提出一个问题,什么是顺序文件呢?除了顺序文件还有哪些文件类型呢?今日的这节...

    大家好,我们今日继续讲解VBA代码解决方案的第129讲内容:什么是顺序文件?什么是随机文件?什么是二进制文件?在第127和128讲中我讲了VBA在处理顺序文件时的一些方法,包括打开文件和读取文件。在写到这里的时候,很多朋友会提出一个问题,什么是顺序文件呢?除了顺序文件还有哪些文件类型呢?今日的这节内容就来解决这个问题。之后我再继续讲解VBA处理文件的方法。

    一 计算机文件的分类:文件的分类方式有很多种,对于我们做程序来说,只是关心的是文件的读写方式,按照文件的读写方式的不同,我们可以把计算机的文件分成顺序文件,随机文件和二进制文件。

    1 顺序文件 是指可以按储存相同的顺序找回数据的文件。例如以CSV格式(逗号分割文本),TXT 格式(以Tab键分割的文本)或者PRN格式(以空格分隔的文本)储存的文件。顺序文件访问经常用来写文本文件,例如错误日志,参数设定和报告。

    顺序文件有下列的打开模式:Input, Output 和 Append。打开模式的不同往往会决定文件打开后你如何使用它。

    2 随机文件 是指随机访问的文本文件,它的数据以同等长度储存。随机访问文件只有一个打开模式:Random

    3 二进制文件 二进制访问文件是图形文件和其它非文本文件。二进制文件只能够在Binary模式下访问。

    请大家特别注意:这种分类是按照文件读写方式不同来分类的。

    二 顺序文件、随机文件的区别

    我们要清楚,所谓的顺序文件、随机文件,是指文件的读写方式,而不是指文件的类型。顺序文件是按行读取,由于每一行的字符数是不一定相同的,所以只能够从头到尾按顺序一行一行地读取,要想直接从中取出某一行是做不到的;而随机文件则是按"块"读取,就是说把文件分割为一个个字数相等的小块,然后根据需要就可以从中取出任意的一块或多块了。

    再来个例子:顺序文件就像是把一大堆各种种类的书籍杂乱地堆在一起,如果想从中找到某本书,那么就要一本本地去找,运气好的话,可能只找几本就找到了,当然如果运气差就有可能找到最后一本才找到;

    随机文件则是预先把书籍分门别类放到一个个相同大小的、编了号的架子里,只要告知你你要的书在第几的架子里,你直接去这个架子就找就可以了。

    三 顺序文件和随机文件的记录编辑

    顺序文件是按其在文件中的逻辑顺序依次存储进入存储介质中的,其逻辑顺序和物理顺序一致。随机文件,由记录组成,能够随机存取同长度的数据记录,每一数据记录内可以设计各种栏位以容纳不同的数据。

    由上面的文件特点可以看出:顺序文件又可以分成顺序有序文件和顺序无序文件

    顺序有序文件:记录按其主关键字为有序顺序的文件为顺序有序文件。

    顺序无序文件:记录未按其主关键字有序排列的顺序文件为顺序无序文件。

    为提高检索效率,常将顺序文件组织成有序文件。

    四 二进制文件的特点 二进制文件即除文本文件以外的文件。相对于文本文件两者有着明显的不同:

    文本文件是一种由很多行字符构成的计算机文件。文本文件存在于计算机系统中,通常在文本文件最后一行放置文件结束标志。文本文件的编码基于字符定长,译码相对要容易一些;二进制文件编码是变长的,灵活利用率要高,而译码要难一些,不同的二进制文件译码方式是不同的。

    有了上面的理论的知识,我们下面将再次深入的解决文件的处理问题,文件处理包括打开,读取,和编辑。我们将深入的展开讲解。

    d14dafb0fef8ff2b9bad43ea1d56759e.png

    今日内容回向:

    1 文件按读取方式不同可以为几种?

    2 顺序文件又可以分为几种?

    3 txt文件一定是顺序文件吗?

    展开全文
  • 1、预处理 gcc -E main.c -o main.i 头文件解析,删除注释 ...3、汇编 gcc -c main.s -o main.o main.o为二进制文件 4、链接 gcc -omain.o -o hello 代码中使用了别的库,此步进行链接 执行 ./a.out IDE 执行,...

    1、预处理  gcc -E main.c -o main.i  头文件解析,删除注释

    2、编译  gcc -S main.i -o main.s main.s为汇编语言

    3、汇编 gcc -c main.s -o main.o main.o为二进制文件

    4、链接 gcc -o main.o -o hello 代码中使用了别的库,此步进行链接

    执行   ./a.out

     

    IDE 执行,main.c 直接 生成可执行的二进制文件a.out

    展开全文
  • 关注、星标公众号,不错过精彩内容素材来源:综合CSDN编辑整理:strongerHuang关于计算机的文件有很多种,今天分享一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式...

    关注、星标公众,不错过精彩内容

    素材来源:综合CSDN

    编辑整理:strongerHuang

    关于计算机的文件有很多种,今天分享一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件。

    一、ELF文件简介

    ELF:Executable and Linkable Format,可执行与可链接格式。

    首先,你需要知道的是所谓对象文件(Object files)有三个种类:

    1)可重定向文件:文件保存着代码和适当的数据,用来和其他的目标文件一起来创建一个可执行文件或者是一个共享目标文件。(目标文件或者静态库文件,即通常后缀为.a和.o的文件)

    2)可执行文件:文件保存着一个用来执行的程序。(例如bash,gcc等)

    3)共享目标文件:共享库。文件保存着代码和合适的数据,用来被下连接编辑器和动态链接器链接。

    二、ELF文件格式

    首先,ELF文件格式提供了两种视图,分别是链接视图和执行视图。

    链接视图是以节(p)为单位,执行视图是以段(segment)为单位。链接视图就是在链接时用到的视图,而执行视图则是在执行时用到的视图。上图左侧的视角是从链接来看的,右侧的视角是执行来看的。总个文件可以分为四个部分:

    • ELF header:描述整个文件的组织。

    • Program Header Table: 描述文件中的各种segments,用来告诉系统如何创建进程映像的。

    • ps 或者 segments:segments是从运行的角度来描述elf文件,ps是从链接的角度来描述elf文件,也就是说,在链接阶段,我们可以忽略program header table来处理此文件,在运行阶段可以忽略p header table来处理此程序(所以很多加固手段删除了p header table)。从图中我们也可以看出,segments与ps是包含的关系,一个segment包含若干个p。

    • Section Header Table: 包含了文件各个segction的属性信息,我们都将结合例子来解释。


    程序头部表(Program Header Table),如果存在的话,告诉系统如何创建进程映像。

    节区头部表(Section Header Table)包含了描述文件节区的信息,比如大小、偏移等。

    如下图,可以通过执行命令”readelf -S android_server”来查看该可执行文件中有哪些p。

    通过执行命令readelf –segments android_server,可以查看该文件的执行视图。

    这验证了第一张图中所述,segment是p的一个集合,ps按照一定规则映射到segment。那么为什么需要区分两种不同视图?

    当ELF文件被加载到内存中后,系统会将多个具有相同权限(flg值)p合并一个segment。操作系统往往以页为基本单位来管理内存分配,一般页的大小为4096B,即4KB的大小。同时,内存的权限管理的粒度也是以页为单位,页内的内存是具有同样的权限等属性,并且操作系统对内存的管理往往追求高效和高利用率这样的目标。ELF文件在被映射时,是以系统的页长度为单位的,那么每个p在映射时的长度都是系统页长度的整数倍,如果p的长度不是其整数倍,则导致多余部分也将占用一个页。而我们从上面的例子中知道,一个ELF文件具有很多的p,那么会导致内存浪费严重。这样可以减少页面内部的碎片,节省了空间,显著提高内存利用率。

    需要注意地是:尽管图中显示的各个组成部分是有顺序的,实际上除了 ELF 头部表以外,其他节区和段都没有规定的顺序。

    三、ELF Header

    首先,我们先来看下32位ELF文件中常用的数据格式:

    名称大小对齐目的
    Elf32_Addr44无符号程序地址
    Elf32_Half22无符号中等整数
    Elf32_Off44无符号文件偏移
    Elf32_SWord44有符号大整数
    Elf32_Word44无符号大整数
    unsigned char11无符号小整数

    然后我们来观察一下ELF Header的结构体:

    #define EI_NIDENT 16
    typedef struct {
           unsigned char e_ident[EI_NIDENT];
           ELF32_Half e_type;
           ELF32_Half e_machine;
           ELF32_Word e_version;
           ELF32__Addr e_entry;
           ELF32_Off e_phoff;
           ELF32_Off e_shoff;
           ELF32_Word e_flags;
           ELF32_Half e_ehsize;
           ELF32_Half e_phentsize;
           ELF32_Half e_phnum;
           ELF32_Half e_shentsize;
           ELF32_Half e_shnum;
           ELF32_Half e_shstrndx;
    }Elf32_Ehdr;

    e_ident :ELF的一些标识信息,前四位为.ELF,其他的信息比如大小端等
    e_machine :文件的目标体系架构,比如ARM
    e_version : 0为非法版本,1为当前版本
    e_entry :程序入口的虚拟地址
    e_phoff :程序头部表偏移地址
    e_shoff :节区头部表偏移地址
    e_flags :保存与文件相关的,特定于处理器的标志
    e_ehsize :ELF头的大小
    e_phentsize :每个程序头部表的大小
    e_phnum :程序头部表的数量
    e_shentsize:每个节区头部表的大小
    e_shnum :节区头部表的数量
    e_shstrndx:节区字符串表位置

    接着运行readelf -h android_server命令,可以看到ELF Header结构的内容。


    或者使用010Editor的ELF模板也可以看到ELF Header结构。对比以下三类ELF文件,我们得到了以下结论:

    1、e_type标识了文件类型

    2、Relocatable File(.o文件)不需要执行,因此e_entry字段为0,且没有Program Header Table等执行视图

    3、不同类型的ELF文件的Section也有较大区别,比如只有Relocatable File有.strtab节。


    Shared Object File(.so文件)

    Executable File(可执行文件android_server)

    Relocatable File(.o文件)

    四、Section Header Table

    一个ELF文件中到底有哪些具体的 ps,由包含在这个ELF文件中的 p head table(SHT)决定。在SHT中,针对每一个p,都设置有一个条目(entry),用来描述对应的这个p,其内容主要包括该 p 的名称、类型、大小以及在整个ELF文件中的字节偏移位置等等。我们也可以在TISCv1.2规范中找到SHT表中条目的C结构定义:

    typedef struct{
        Elf32_Word sh_name;   //节区名,是节区头部字符串表节区(Section Header String Table Section)的索引。名字是一个 NULL 结尾的字符串。
        Elf32_Word sh_type;    //为节区类型
        Elf32_Word sh_flags;    //节区标志
        Elf32_Addr sh_addr;    //如果节区将出现在进程的内存映像中,此成员给出节区的第一个字节应处的位置。否则,此字段为 0。
        Elf32_Off sh_offset;    //此成员的取值给出节区的第一个字节与文件头之间的偏移。
        Elf32_Word sh_size;   //此 成 员 给 出 节 区 的 长 度 ( 字 节 数 )。
        Elf32_Word sh_link;   //此成员给出节区头部表索引链接。其具体的解释依赖于节区类型。
        Elf32_Word sh_info;       //此成员给出附加信息,其解释依赖于节区类型。
        Elf32_Word sh_addralign;    //某些节区带有地址对齐约束.
        Elf32_Word sh_entsize;    //某些节区中包含固定大小的项目,如符号表。对于这类节区,此成员给出每个表项的长度字节数。
    }Elf32_Shdr;

    sh_type的取值如下:

    名称取值说明
    SHT_NULL0此值标志节区头部是非活动的,没有对应的节区。此节区头部中的其他成员取值无意义。
    SHT_PROGBITS1此节区包含程序定义的信息,其格式和含义都由程序来解释。
    SHT_SYMTAB2此节区包含一个符号表。目前目标文件对每种类型的节区都只能包含一个,不过这个限制将来可能发生变化。一般,SHT_SYMTAB 节区提供用于链接编辑(指 ld 而言)的符号,尽管也可用来实现动态链接。
    SHT_STRTAB3此节区包含字符串表。目标文件可能包含多个字符串表节区。
    SHT_RELA4此节区包含重定位表项,其中可能会有补齐内容(addend),例如 32 位目标文件中的 Elf32_Rela 类型。目标文件可能拥有多个重定位节区。
    SHT_HASH5此节区包含符号哈希表。所有参与动态链接的目标都必须包含一个符号哈希表。目前,一个目标文件只能包含一个哈希表,不过此限制将来可能会解除。
    SHT_DYNAMIC6此节区包含动态链接的信息。目前一个目标文件中只能包含一个动态节区,将来可能会取消这一限制。
    SHT_NOTE7此节区包含以某种方式来标记文件的信息。
    SHT_NOBITS8这 种 类 型 的 节 区 不 占 用 文 件 中 的 空 间 , 其 他 方 面 和SHT_PROGBITS 相似。尽管此节区不包含任何字节,成员sh_offset 中还是会包含概念性的文件偏移
    SHT_REL9此节区包含重定位表项,其中没有补齐(addends),例如 32 位目标文件中的 Elf32_rel 类型。目标文件中可以拥有多个重定位节区。
    SHT_SHLIB10此节区被保留,不过其语义是未规定的。包含此类型节区的程序与 ABI 不兼容。
    SHT_DYNSYM11作为一个完整的符号表,它可能包含很多对动态链接而言不必要的符号。因此,目标文件也可以包含一个 SHT_DYNSYM 节区,其中保存动态链接符号的一个最小集合,以节省空间。
    SHT_LOPROC0X70000000这一段(包括两个边界),是保留给处理器专用语义的。
    SHT_HIPROCOX7FFFFFFF这一段(包括两个边界),是保留给处理器专用语义的。
    SHT_LOUSER0X80000000此值给出保留给应用程序的索引下界。
    SHT_HIUSER0X8FFFFFFF此值给出保留给应用程序的索引上界。


    五、Section

    有些节区是系统预订的,一般以点开头号,因此,我们有必要了解一些常用到的系统节区。

    名称类型属性含义

    .bss

    SHT_NOBITS

    SHF_ALLOC +
    SHF_WRITE

    包含将出现在程序的内存映像中的为初始化数据。根据定义,当程序开始执行,系统将把这些数据初始化为 0。此节区不占用文件空间。

    .comment

    SHT_PROGBITS

    (无)

    包含版本控制信息。

    .data

    SHT_PROGBITS

    SHF_ALLOC +
    SHF_WRITE

    这些节区包含初始化了的数据,将出现在程序的内存映像中。

    .data1

    SHT_PROGBITS

    SHF_ALLOC +
    SHF_WRITE

    这些节区包含初始化了的数据,将出现在程序的内存映像中。

    .debug

    SHT_PROGBITS

    (无)

    此节区包含用于符号调试的信息。

    .dynamic

    SHT_DYNAMIC


    此节区包含动态链接信息。节区的属性将包含 SHF_ALLOC 位。是否 SHF_WRITE 位被设置取决于处理器。

    .dynstr

    SHT_STRTAB

    SHF_ALLOC

    此节区包含用于动态链接的字符串,大多数情况下这些字符串代表了与符号表项相关的名称。

    .dynsym

    SHT_DYNSYM

    SHF_ALLOC

    此节区包含了动态链接符号表。

    .fini

    SHT_PROGBITS

    SHF_ALLOC +
    SHF_EXECINSTR

    此节区包含了可执行的指令,是进程终止代码的一部分。程序正常退出时,系统将安排执行这里的代码。

    .got

    SHT_PROGBITS


    此节区包含全局偏移表。

    .hash

    SHT_HASH

    SHF_ALLOC

    此节区包含了一个符号哈希表。

    .init

    SHT_PROGBITS

    SHF_ALLOC +
    SHF_EXECINSTR

    此节区包含了可执行指令,是进程初始化代码的一部分。当程序开始执行时,系统要在开始调用主程序入口之前(通常指 C 语言的 main 函数)执行这些代码。

    .interp

    SHT_PROGBITS


    此节区包含程序解释器的路径名。如果程序包含一个可加载的段,段中包含此节区,那么节区的属性将包含 SHF_ALLOC 位,否则该位为 0。

    .line

    SHT_PROGBITS

    (无)

    此节区包含符号调试的行号信息,其中描述了源程序与机器指令之间的对应关系。其内容是未定义的。

    .note

    SHT_NOTE

    (无)

    此节区中包含注释信息,有独立的格式。

    .plt

    SHT_PROGBITS


    此节区包含过程链接表(procedure linkage table)。

    .relname
    .relaname

    SHT_REL
    SHT_RELA


    这些节区中包含了重定位信息。如果文件中包含可加载的段,段中有重定位内容,节区的属性将包含 SHF_ALLOC 位,否则该位置 0。传统上 name 根据重定位所适用的节区给定。例如 .text 节区的重定位节区名字将是:.rel.text 或者 .rela.text。

    .rodata
    .rodata1

    SHT_PROGBITS

    SHF_ALLOC

    这些节区包含只读数据,这些数据通常参与进程映像的不可写段。

    .shstrtab

    SHT_STRTAB


    此节区包含节区名称。

    .strtab

    SHT_STRTAB


    此节区包含字符串,通常是代表与符号表项相关的名称。如果文件拥有一个可加载的段,段中包含符号串表,节区的属性将包含SHF_ALLOC 位,否则该位为 0。

    .symtab

    SHT_SYMTAB


    此节区包含一个符号表。如果文件中包含一个可加载的段,并且该段中包含符号表,那么节区的属性中包含SHF_ALLOC 位,否则该位置为 0。

    .text

    SHT_PROGBITS

    SHF_ALLOC +
    SHF_EXECINSTR

    此节区包含程序的可执行指令。

    六、Program Header Table

    程序头部(Program Header)描述与程序执行直接相关的目标文件结构信息。用来在文件中定位各个段的映像。同时包含其他一些用来为程序创建映像所必须的信息。
    可执行文件或者共享目标文件的程序头部是一个结构数组,每个结构描述了一个段或者系统准备程序执行所必须的其他信息。目标文件的“段”包含一个或者多个“节区”,也就是“段内容(Segment Contents)”。程序头部仅对可执行文件和共享目标文件有意义。

    程序头部的数据结构如下:

    typedef struct {  
        Elf32_Word p_type;           //此数组元素描述的段的类型,或者如何解释此数组元素的信息。 
        Elf32_Off  p_offset;           //此成员给出从文件头到该段第一个字节的偏移
        Elf32_Addr p_vaddr;         //此成员给出段的第一个字节将被放到内存中的虚拟地址
        Elf32_Addr p_paddr;        //此成员仅用于与物理地址相关的系统中。System V忽略所有应用程序的物理地址信息。
        Elf32_Word p_filesz;         //此成员给出段在文件映像中所占的字节数。可以为0。
        Elf32_Word p_memsz;     //此成员给出段在内存映像中占用的字节数。可以为0。
        Elf32_Word p_flags;         //此成员给出与段相关的标志。
        Elf32_Word p_align;        //此成员给出段在文件中和内存中如何对齐。
    } Elf32_phdr;

    p_type:

    名称取值说明
    PT_NULL0此数组元素未用。结构中其他成员都是未定义的。
    PT_LOAD1此数组元素给出一个可加载的段,段的大小由 p_filesz 和 p_memsz描述。文件中的字节被映射到内存段开始处。如果 p_memsz 大于p_filesz,“剩余”的字节要清零。p_filesz 不能大于 p_memsz。可加载的段在程序头部表格中根据 p_vaddr 成员按升序排列。
    PT_DYNAMIC2数组元素给出动态链接信息。
    PT_INTERP3数组元素给出一个 NULL 结尾的字符串的位置和长度,该字符串将被当作解释器调用。这种段类型仅对与可执行文件有意义(尽管也可能在共享目标文件上发生)。在一个文件中不能出现一次以上。如果存在这种类型的段,它必须在所有可加载段项目的前面。
    PT_NOTE4此数组元素给出附加信息的位置和大小。
    PT_SHLIB5此段类型被保留,不过语义未指定。包含这种类型的段的程序与 ABI不符。
    PT_PHDR6此类型的数组元素如果存在,则给出了程序头部表自身的大小和位置,既包括在文件中也包括在内存中的信息。此类型的段在文件中不能出现一次以上。并且只有程序头部表是程序的内存映像的一部分时才起作用。如果存在此类型段,则必须在所有可加载段项目的前面。
    PT_LOPROC~
    PT_HIPROC
    0x70000000~
    0x7fffffff
    此范围的类型保留给处理器专用语义。

    好了,本文主要内容就分享到这里,具体可以参看ELF文件详细描述。

    推荐阅读:

    C++中字符编码的转换

    手把手教你用STM32Trust生成加密固件

    FreeRTOS如何减少RAM占用空间并加快执行速度

    关注微信公众号『strongerHuang』,后台回复“1024”查看更多内容,回复“加群”按规则加入技术交流群。

    长按前往图中包含的公众号关注

    展开全文
  • -- 常用文件扩展名解释 A 对象代码文件 AAM Authorware shocked文件 AAS Authorware shocked包 ABF Adobe二进制屏幕字体 ABK CorelDRAW自动备份文件 ABS 该类文件有时用于指示一个摘要(就像在一篇有关科学方面的...
  • XTF文件是一个二进制文件,其中数据结构,具体的结构可以参考《eXtended Triton Format(XTF) Rev.37》。网上没有好用又免费的软件来解析,当然如果有钱,可以直接去买一套。 ps:这是我参考的XTF说明,如果新版...
  • 装载:查找和导入类或接口的二进制数据; 校验:检查导入;类或接口的二进制数据的正确性; 准备:给类的静态变量分配并初始化内存空间; 解析:将符号引用直接引用(这一步是可选择的); 初始化:激活类的静态变量...
  • 逆向分析工具介绍,来看看逆向分析的工具有哪些? 逆向分析工具呢在...程序的可执行二进制代码为输入,生成包含整个或部分程序的汇编代码文本文件的程 序。 反汇编是一个与处理器相关的过程,反汇编器一般支持多种
  • 文件包含的内容:源程序、二进制代码、文本文档、数据、表格、声音和图象等。文件具有的特点如下:① 文件具有保存性,它被存储在某种存储介质上,长期保存和多次使用。② 文件是按名存取的,每个文件具有唯一的...
  • 1. 源码安装2. rpm包(Redhat Linux) dpkg包(Debain Linux)3. yum命令 (Redhat Linux) apt-get命令(Debain Linux)一、源代码形式1. 绝大多数开源软件都... 源代码需要编译成为二进制形式之后才能够运行使用4. ...
  • 写在前边的话 最近在看《深入理解Java虚拟机...上一篇文章介绍了查看字节码文件的工具,那么本篇文章我们就用字节码查看工具来查看一下class文件中都有哪些内容。我们通过一个简单的例子来一起查看下class文件的内容。
  • 以及如何使用make命令来简化编译过程安装gcc什么是gcc安装gcc使用gcc命令编译源文件写一段C代码使用gcc命令编译产生目标文件使用gcc -o链接制作可执行的二进制文件使用make命令编译源文件使用make来简化操作makefile...
  • 压缩文件格式

    千次阅读 2013-03-11 15:48:35
    压缩文件格式有哪些,主要有:rar,zip,tar,cab,uue,jar,iso,z,7-zip,ace,lzh,arj,gzip...经过压缩软件压缩的文件叫压缩文件,压缩的原理是把文件二进制代码压缩,把相邻的0,1代码减少,比如有000000,可以把它变成6
  • IJG是什么,有哪些优点 IJG VS IJL

    千次阅读 2012-09-11 17:40:25
    IJG的全称是Independent JPEG Group(独立JPEG小组),该组织以C语言源代码的形式提供应用广泛、完全免费的JPEG解码/编码函数库,编译后生成二进制格式的LIB文件,可以连接到其他编译型语言的程序中。其实对于...
  • IJG的全称是Independent JPEG Group(独立JPEG小组),该组织以c语言源代码的形式提供应用广泛、完全免费的JPEG解码/编码函数库,编译后生成二进制格式的LIB文件,可以连接到其他编译型语言的程序中。其实对于...
  • 简单的说,就是经过压缩软件压缩文件叫压缩文件,压缩的原理是把文件二进制代码压缩,把相邻的0,1代码减少,例如000000,可以把它变成6个0的写法60来减少该文件的空间,同理解压缩就是按照相同的原则把数据还原...
  • 最近在用bitbucket管理代码,所有上传的js文件都能直接在网上查看代码,唯独只有一个js文件,点击查看链接的时候,不会显示代码,而是自动把文件下载下来,仔细查看才发现,bitbucke把这个js文件当成了二进制文件。...
  • 基本情况 Policy对象可能多个实体,虽然任何时候只能一个起作用。当前安装的Policy对象,在程序中可以通过调用getPolicy方法...策略文件可以储存在无格式的ASCII文件或Policy类的二进制文件或数据库中 2.JVM自...
  • 基本情况Policy对象可能多个实体,虽然任何时候只能一个起作用。当前安装的Policy对象,在程序中可以通过调用get...策略文件可以储存在无格式的ASCII文件或Policy类的二进制文件或数据库中2.JVM自带的java.p...
  • 假设我们一个目录名称叫 bin 的下面的一些二进制文件被不小心提交到了 git 仓库中。这个时候即使我们把 bin 目录加到 .gitignore 文件中,在每次提交代码的时候 git 还是会提示里面的文件被修改了是否要提交。 ...
  • Android开发者功能开发几乎都是面向Java/Kotlin语法编程,对于class文件的关注相对较少。 当你反编译class文件或程序编译期修改字节码亦做代码注入时,读懂字节码成为一道绕不开的槛。...如何从二进制流中读懂
  • 因为他的便利性,项目编译后直接就是二进制文件,给在生产部署带来了诸多便利。 本次分享我整理了在实际生产当中常使用的部署方式给大家,包含但不限于以下方式: 直接部署 Docker 部署 将会涉及以下知识点: ...
  • 在将对象存储在文件中或者通过网络进行传输的时候,对象是不能直接存储和传输的,所以要将它序列化为对应的二进制代码。 3. 实现序列化的常用方式有哪些? 使用Java的序列化协议(实现Ser...
  • 在将对象存储在文件中或者通过网络进行传输的时候,对象是不能直接存储和传输的,所以要将它序列化为对应的二进制代码。 3. 实现序列化的常用方式有哪些? 使用Java的序列化协议(实现Serializable接口) 使用Goo...
  • redis单线程什么优势与缺点? 优点: 1. 代码更清晰,处理逻辑更...snapshotting(快照)默认方式,将内存中以快照的方式写入到二进制文件中,默认为dump.rdb.可以通过配置设置自动做快照持久化的方式。我们可以配
  • 10.3.5 读取十六进制和八进制值 379 10.3.6 用scanf()读取字符 381 10.3.7 scanf()的陷阱 383 10.3.8 从键盘上输入字符串 383 10.3.9 键盘的非格式化输入 384 10.4 屏幕输出 389 10.4.1 使用printf()格式输出...
  • 安装二进制工具包 浏览NPM仓库 介绍 js基础 类型 类型的困惑 函数 THIS ,FUNCTION #CALL 和 FUNCTION#APPLY 函数的参数数量 闭包 继承 TRY() CATCH() V8 中的 JS OBJECT#KEYS , ARRAY#ISARRAY 数组...
  • 如何读写大型的二进制文件 如何快速创建一个大文件 如何在Visual C++ 6.0中使用fopen()函数来读写文件 如何将路径转换为长路径名 如何用Visual C++ 6.0编写文件分割工具 第8章 数据库 ODBC访问数据库的原理是什么 ...
  • 静态链接之符号解析

    千次阅读 2016-07-23 23:08:00
    静态链接是在生成可执行文件的时候,将所有需要的函数的二进制代码都包含到可执行文件中去。链接器需要知道参与链接的目标文件需要哪些函数,同时也要知道每个目标文件都能提供什么函数。这样链接器才能知道是不是每...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 125
精华内容 50
关键字:

二进制代码文件有哪些