




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
OBJ文件格式分析工具: objdump, nm,ar前言如果普通编程不需要了解这些东西,如果想精确控制你的对象文件的格式或者你想查看一下文件对象里的内容以便作出某种判断,刚你可以看一下下面的工 具:objdump, nm, ar。当然,本文不可能非常详细的说明它们的使用方法和功能。如果你觉得本文不够清楚,你可以使用:man. 我的计划只是想让更多的人了解这些工具,以后在今后 的编程过程中能有所帮助。开始 objdump文件命令功能强的惊人。能实现上述两个命令(ar,nm)的 很多功能。它主要是查看对象文件的内容信息。 常用法: objdump -h file/查看对象文件所有的节sections.例如:# objdump -h libtest1.olibtest1.o: file format elf32-i386Sections:Idx Name Size VMA LMA File offAlgn0 .text 000000140000000000000000000000342*2 CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE1 .data 000000000000000000000000000000482*2 CONTENTS, ALLOC, LOAD, DATA2 .bss 000000000000000000000000000000482*2 ALLOC3 .rodata 0000000e0000000000000000000000482*0 CONTENTS, ALLOC, LOAD, READONLY, DATA4 .comment 0000001f0000000000000000000000562*0 CONTENTS, READONLY5 .note.GNU-stack 000000000000000000000000000000752*0 CONTENTS, READONLY objdump -t 查看对象文件所有的符号列表,相当于 nm -s objfilename,如:# objdump -t libtest1.olibtest1.o: file format elf32-i386SYMBOL TABLE:00000000 l df *ABS*00000000 libtest1.c00000000 l d.text00000000 .text00000000 l d.data00000000 .data00000000 l d.bss 00000000 .bss00000000 l d.rodata 00000000 .rodata00000000 l d.note.GNU-stack 00000000 .note.GNU-stack00000000 l ment 00000000 .comment00000000 g F .text00000014 print_test100000000 *UND*00000000 puts 更多信息请查看选项:-archive-headers-a 显示档案库的成员信息,与 ar tv 类似 objdump -a libpcap.a 和 ar -tv libpcap.a 显示结果比较比较 显然这个选项没有什么意思。-adjust-vma=offset Whendumpinginformation, first add offset to all the section addresses.This is useful if thesec- tionaddressesdonot correspondto the symbol table, which can happen whenputtingsectionsat particularaddresses when using a format which can not represent section addresses, such as a.out.-b bfdname-target=bfdname 指定目标码格式。这不是必须的,objdump能自动识别许多格式, 比如:objdump -b oasys -m vax -h fu.o 显示fu.o的头部摘要信息,明确指出该文件是Vax系统下用Oasys 编译器生成的目标文件。objdump -i将给出这里可以指定的 目标码格式列表-demangle-C 将底层的符号名解码成用户级名字,除了去掉所有开头 的下划线之外,还使得C+函数名以可理解的方式显示出来。-debugging 显示调试信息。企图解析保存在文件中的调试信息并以C语言 的语法显示出来。仅仅支持某些类型的调试信息。-disassemble-d 反汇编那些应该还有指令机器码的section-disassemble-all-D 与 -d 类似,但反汇编所有section-prefix-addresses 反汇编的时候,显示每一行的完整地址。这是一种比较老的反汇编格式。 显示效果并不理想,但可能会用到其中的某些显示,自己可以对比。-disassemble-zeroes 一般反汇编输出将省略大块的零,该选项使得这些零块也被反汇编。-EB-EL-endian=big|little 这个选项将影响反汇编出来的指令。 little-endian就是我们当年在dos下玩汇编的时候常说的高位在高地址, x86都是这种。-file-headers-f 显示objfile中每个文件的整体头部摘要信息。-section-headers-headers-h 显示目标文件各个section的头部摘要信息。-help 简短的帮助信息。-info-i 显示对于 -b 或者 -m 选项可用的架构和目标格式列表。-section=name-j name 仅仅显示指定section的信息-line-numbers-l 用文件名和行号标注相应的目标代码,仅仅和-d、-D或者-r一起使用 使用-ld和使用-d的区别不是很大,在源码级调试的时候有用,要求 编译时使用了-g之类的调试编译选项。-architecture=machine-m machine 指定反汇编目标文件时使用的架构,当待反汇编文件本身没有描述 架构信息的时候(比如S-records),这个选项很有用。可以用-i选项 列出这里能够指定的架构-reloc-r 显示文件的重定位入口。如果和-d或者-D一起使用,重定位部分以反汇 编后的格式显示出来。-dynamic-reloc-R 显示文件的动态重定位入口,仅仅对于动态目标文件有意义,比如某些 共享库。-full-contents-s 显示指定section的完整内容。 objdump -section=.text -s inet.o | more-source-S 尽可能反汇编出源代码,尤其当编译的时候指定了-g这种调试参数时, 效果比较明显。隐含了-d参数。-show-raw-insn 反汇编的时候,显示每条汇编指令对应的机器码,除非指定了 -prefix-addresses,这将是缺省选项。-no-show-raw-insn 反汇编时,不显示汇编指令的机器码,这是指定 -prefix-addresses 选项时的缺省设置。-stabs Display the contents of the .stab, .stab.index, and .stab.excl sections from an ELF file.This is only usefulonsystems(such as Solaris 2.0) in which .stab debugging symbol-table entries are carried in an ELF section.In most other file formats, debug- gingsymbol-tableentriesare interleavedwith linkage symbols, and are visible in the -syms output.-start-address=address 从指定地址开始显示数据,该选项影响-d、-r和-s选项的输出。-stop-address=address 显示数据直到指定地址为止,该选项影响-d、-r和-s选项的输出。-syms-t 显示文件的符号表入口。类似于nm -s提供的信息-dynamic-syms-T 显示文件的动态符号表入口,仅仅对动态目标文件有意义,比如某些 共享库。它显示的信息类似于 nm -D|-dynamic 显示的信息。-version 版本信息 objdump -version-all-headers-x 显示所有可用的头信息,包括符号表、重定位入口。-x 等价于 -a -f -h -r -t 同时指定。 objdump -x inet.oar基本用法ar命令可以用来创建、修改库,也可以从库中提出单个模块。库是一单独的文件,里面包含了按照特定的结构组织起来的其它的一些文件(称做此库文件的member)。原始文件的内容、模式、时间戳、属主、组等属性都保留在库文件中。下面是ar命令的格式:ar -dmpqrtxabcfilNoPsSuvV membername count archive files.例如我们可以用ar rv libtest.a hello.o hello1.o来 生成一个库,库名字是test,链接时可以用-ltest链接。该库中存放了两个模块hello.o和hello1.o。选项前可以有-字符,也可以 没有。下面我们来看看命令的操作选项和任选项。现在我们把dmpqrtx部分称为操作选项,而abcfilNoPsSuvV部分称为任选项。dmpqrtx中的操作选项在命令中只能并且必须使用其中一个,它们的含义如下: d:从库中删除模块。按模块原来的文件名指定要删除的模块。如果使用了任选项v则列出被删除的每个模块。 m:该操作是在一个库中移动成员。当库中如果有若干模块有相同的符号定义(如函数定义),则成员的位置顺序很重要。如果没有指定任选项,任何指定的成员将移到库的最后。也可以使用a,b,或I任选项移动到指定的位置。 p:显示库中指定的成员到标准输出。如果指定任选项v,则在输出成员的内容前,将显示成员的名字。如果没有指定成员的名字,所有库中的文件将显示出来。 q:快速追加。增加新模块到库的结尾处。并不检查是否需要替换。a,b,或I任选项对此操作没有影响,模块总是追加的库的结尾处。如果使用了任选项v则列出每个模块。 这时,库的符号表没有更新,可以用ar s或ranlib来更新库的符号表索引。 r:在库中插入模块(替换)。当插入的模块名已经在库中存在,则替换同名的模块。如果若干模块中有一个模块在库中不存在,ar显示一个错误消息,并不替换其他同名模块。默认的情况下,新的成员增加在库的结尾处,可以使用其他任选项来改变增加的位置。 t:显示库的模块表清单。一般只显示模块名。 x:从库中提取一个成员。如果不指定要提取的模块,则提取库中所有的模块。下面在看看可与操作选项结合使用的任选项: a:在库的一个已经存在的成员后面增加一个新的文件。如果使用任选项a,则应该为命令行中membername参数指定一个已经存在的成员名。 b:在库的一个已经存在的成员前面增加一个新的文件。如果使用任选项b,则应该为命令行中membername参数指定一个已经存在的成员名。 c:创建一个库。不管库是否存在,都将创建。 f:在库中截短指定的名字。缺省情况下,文件名的长度是不受限制的,可以使用此参数将文件名截短,以保证与其它系统的兼容。 i:在库的一个已经存在的成员前面增加一个新的文件。如果使用任选项i,则应该为命令行中membername参数指定一个已经存在的成员名(类似任选项b)。 l:暂未使用 N:与count参数一起使用,在库中有多个相同的文件名时指定提取或输出的个数。 o:当提取成员时,保留成员的原始数据。如果不指定该任选项,则提取出的模块的时间将标为提取出的时间。 P:进行文件名匹配时使用全路径名。ar在创建库时不能使用全路径名(这样的库文件不符合POSIX标准),但是有些工具可以。 s:写入一个目标文件索引到库中,或者更新一个存在的目标文件索引。甚至对于没有任何变化的库也作该动作。对一个库做ar s等同于对该库做ranlib。 S:不创建目标文件索引,这在创建较大的库时能加快时间。 u:一般说来,命令ar r.插入所有列出的文件到库中,如果你只想插入列出文件中那些比库中同名文件新的文件,就可以使用该任选项。该任选项只用于r操作选项。 v:该选项用来显示执行操作选项的附加信息。 V:显示ar的版本。nm基本用法 nm用来列出目标文件的符号清单。下面是nm命令的格式:nm -a-debug-syms -g-extern-only -B -C-demangle=style -D-dynamic -S-print-size -s-print-armap -A-o-print-file-name-special-syms -n-v-numeric-sort -p-no-sort -r-reverse-sort -size-sort -u-undefined-only -t radix-radix=radix -P-portability -target=bfdname -f format-format=format -defined-only -l-line-numbers -no-demangle -V-version -X 32_64 -help objfile.如果没有为nm命令指出目标文件,则nm假定目标文件是a.out。下面列出该命令的任选项,大部分支持-开头的短格式和开头的长格式。 -A、-o或-print-file-name:在找到的各个符号的名字前加上文件名,而不是在此文件的所有符号前只出现文件名一次。例如nm libtest.a的输出如下:CPThread.o:00000068 T Main_8CPThreadPv00000038 T Start_8CPThread00000014 T _._8CPThread00000000 T _8CPThread00000000 ? _FRAME_BEGIN_.则nm -A 的输出如下:libtest.a:CPThread.o:00000068 T Main_8CPThreadPvlibtest.a:CPThread.o:00000038 T Start_8CPThreadlibtest.a:CPThread.o:00000014 T _._8CPThreadlibtest.a:CPThread.o:00000000 T _8CPThreadlibtest.a:CPThread.o:00000000 ? _FRAME_BEGIN_. -a或-debug-syms:显示所有的符号,包括debugger-only symbols。 -B:等同于-format=bsd,用来兼容MIPS的nm。 -C或-demangle:将低级符号名解析(demangle)成用户级名字。这样可以使得C+函数名具有可读性。 -no-demangle:默认的选项,不需要将低级符号名解析成用户级名。 -D或-dynamic:显示动态符号。该任选项仅对于动态目标(例如特定类型的共享库)有意义。 -f format:使用format格式输出。format可以选取bsd、sysv或posix,该选项在GNU的nm中有用。默认为bsd。 -g或-extern-only:仅显示外部符号。 -n、-v或-numeric-sort:按符号对应地址的顺序排序,而非按符号名的字符顺序。 -p或-no-sort:按目标文件中遇到的符号顺序显示,不排序。 -P或-portability:使用POSIX.2标准输出格式代替默认的输出格式。等同于使用任选项-f posix。 -s或-print-armap:当列出库中成员的符号时,包含索引。索引的内容包含:哪些模块包含哪些名字的映射。 -r或-reverse-sort:反转排序的顺序(例如,升序变为降序)。 -size-sort:按大小排列符号顺序。该大小是按照一个符号的值与它下一个符号的值进行计算的。 -t radix或-radix=radix:使用radix进制显示符号值。radix只能为d表示十进制、o表示八进制或x表示十六进制。 -target=bfdname:指定一个目标代码的格式,而非使用系统的默认格式。 -u或-undefined-only:仅显示没有定义的符号(那些外部符号)。 -defined-only:仅显示定义的符号。 -l或-line-numbers:对每个符号,使用调试信息来试图找到文件名和行号。对于已定义的符号,查找符号地址的行号。对于未定义符号,查找符号重定位项的行号。如果可以找到行号信息,显示在符号信息之后。 -V或-version:显示nm的版本号。 -help:显示nm的任选项。 对于每一个符号,nm列出其值(the symbol value),类型(the symbol type)和其名字(the symbol name)。对于每一个符号来说,其类型如果是小写的,则表明该符号是local的;大写则表明该符号是global(external)的。符号类型说明A该符号的值是绝对的,在以后的链接过程中,不允许进行改变。这样的符号值,常常出现在中断向量表中,例如用符号来表示各个中断向量函数在中断向量表中的位置。B该符号的值出现在非初始化数据段(bss)中。例如,在一个文件中定义全局static int test。则该符号test的类型为b,位于bss section中。其值表示该符号在bss段中的偏移。一般而言,bss段分配于RAM中C该符号为mon symbol是未初始话数据段。该符号没有包含于一个普通section中。只有在链接过程中才进行分配。符号的值表示该符号需要的字节数。例如在一个c文件中,定义int test,并且该符号在别的地方会被引用,则该符号类型即为C。否则其类型为B。D该符号位于初始话数据段中。一般来说,分配到data section中。例如定义全局int baud_table5 = 9600, 19200, 38400, 57600, 115200,则会分配于初始化数据段中。G该符号也位于初始化数据段中。主要用于small object提高访问small data object的一种方式。I该符号是对另一个符号的间接引用。N该符号是一个debugging符号。R该符号位于只读数据区。例如定义全局const int test = 123, 123;则test就是一个只读数据区的符号。注意在cygwin下如果使用gcc直接编译成MZ格式时,源文件中的test对应_test,并且其符号类型为D,即初始化数据段中。但是如果使用m6812-elf-gcc这样的交叉编译工具,源文件中的test对应目标文件的test,即没有添加下划线,并且其符号类型为R。一般而言,位于rodata section。值得注意的是,如果在一个函数中定义const char *test = “abc”, const char test_int = 3。使用nm都不会得到符号信息,但是字符串“abc”分配于只读存储器中,test在rodata section中,大小为4。S符号位于非初始化数据区,用于small object。T该符号位于代码区text section。U该符号在当前文件中是未定义的,即该符号的定义在别的文件中。例如,当前文件调用另一个文件中定义的函数,在这个被调用的函数在当前就是未定义的;但是在定义它的文件中类型是T。但是对于全局变量来说,在定义它的文件中,其符号类型为C,在使用它的文件中,其类型为U。V该符号是一个weak object。WThe symbol is a weak symbol that has not been specifically tagged as a weak object symbol.-该符号是a.out格式文件中的stabs symbol。?该符号类型没有定义objdump基本用法 objdump有点象那个快速查看之流的工具,就是以一种可阅读的格式让你更多地了解二进制文件可能带有的附加信息。对于一般只想让自己程序跑起来的程序 员,这个命令没有更多意义,对于想进一步了解系统的程序员,应该掌握这种工具,至少你可以自己写写shellcode了,或者看看人家给的exploit 中的shellcode是什么东西。更多关于目标文件的内容分析建议看看深入理解计算机这本书的第二部分第七章节。常用法:objdump -a-archive-headers -b bfdname-target=bfdname -C-demangle=style -d-disassemble -D-disassemble-all -z-disassemble-zeroes -EB-EL-endian=big little -f-file-headers -file-start-context -g-debugging -e-debugging-tags -h-section-headers-headers -i-info -j section-section=section -l-line-numbers -S-source -m machine-architecture=machine -M options-disassembler-options=options -p-private-headers -r-reloc -R-dynamic-reloc -s-full-contents -W-dwarf -G-stabs -t-syms -T-dynamic-syms -x-all-headers -w-wide -start-address=address -stop-address=address -prefix-addresses -no-show-raw-insn -adjust-vma=offset -special-syms -V-version -H-help objfile.选项详解:-archive-headers-a 显示档案库的成员信息,与 ar tv 类似 objdump -a libpcap.a 和 ar -tv libpcap.a 显示结果比较比较 显然这个选项没有什么意思。-adjust-vma=offset When dumping information, first add offset to all the section addresses. This is useful if the sec- tion addresses do not correspond to the symbol table, which can happen when putting sections at particular addresses when using a format which can not represent section addresses, such as a.out.-b bfdname-target=bfdname 指定目标码格式。这不是必须的,objdump能自动识别许多格式, 比如:objdump -b oasys -m vax -h fu.o 显示fu.o的头部摘要信息,明确指出该文件是Vax系统下用Oasys 编译器生成的目标文件。objdump -i将给出这里可以指定的 目标码格式列表-demangle-C 将底层的符号名解码成用户级名字,除了去掉所有开头 的下划线之外,还使得C+函数名以可理解的方式显示出来。-debugging 显示调试信息。企图解析保存在文件中的调试信息并以C语言 的语法显示出来。仅仅支持某些类型的调试信息。-disassemble-d 反汇编那些含有指令机器码的section-disassemble-all-D 与 -d 类似,但反汇编所有section-prefix-addresses 反汇编的时候,显示每一行的完整地址。这是一种比较老的反汇编格式。 显示效果并不理想,但可能会用到其中的某些显示,自己可以对比。-disassemble-zeroes 一般反汇编输出将省略大块的零,该选项使得这些零块也被反汇编。-EB-EL-endian=big|little 这个选项将影响反汇编出来的指令。 little-endian就是我们当年在dos下玩汇编的时候常说的高位在高地址, x86都是这种。-file-headers-f 显示objfile中每个文件的整体头部摘要信息。-section-headers-headers-h 显示目标文件各个section的头部摘要信息。-help 简短的帮助信息。-info-i 显示对于 -b 或者 -m 选项可用的架构和目标格式列表。-section=name-j name 仅仅显示指定section的信息-line-numbers-l 用文件名和行号标注相应的目标代码,仅仅和-d、-D或者-r一起使用 使用-ld和使用-d的区别不是很大,在源码级调试的时候有用,要求 编译时使用了-g之类的调试编译选项。-architecture=machine-m machine 指定反汇编目标文件时使用的架构,当待反汇编文件本身没有描述 架构信息的时候(比如S-records),这个选项很有用。可以用-i选项 列出这里能够指定的架构-reloc-r 显示文件的重定位入口。如果和-d或者-D一起使用,重定位部分以反汇 编后的格式显示出来。-dynamic-reloc-R 显示文件的动态重定位入口,仅仅对于动态目标文件有意义,比如某些 共享库。-full-contents-s 显示指定section的完整内容。 objdump -section=.text -s inet.o | more-source-S 尽可能反汇编出源代码,尤其当编译的时候指定了-g这种调试参数时, 效果比较明显。隐含了-d参数。-show-raw-insn 反汇编的时候,显示每条汇编指令对应的机器码,除非指定了 -prefix-addresses,这将是缺省选项。-no-show-raw-insn 反汇编时,不显示汇编指令的机器码,这是指定 -prefix-addresses 选项时的缺省设置。-stabs Display the contents of the .stab, .stab.index, and .stab.excl sections from an ELF file. This is only useful on systems (such as Solaris 2.0) in which .stab debugging symbol-table entries are carried in an ELF section. In most other file formats, debug- ging symbol-table entries are interleaved with linkage symbols, and are visible in the -syms output.-start-address=address 从指定地址开始显示数据,该选项影响-d、-r和-s选项的输出。-stop-address=address 显示数据直到指定地址为止,该选项影响-d、-r和-s选项的输出。-syms-t 显示文件的符号表入口。类似于nm提供的信息-dynamic-syms-T 显示文件的动态符号表入口,仅仅对动态目标文件有意义,比如某些 共享库。它显示的信息类似于 nm -D|-dynamic 显示的信息。-version 版本信息 objdump -version-all-headers-x 显示所有可用的头信息,包括符号表、重定位入口。-x 等价于 -a -f -h -r -t 同时指定。 objdump -x inet.oobjcopy基本用法objcopy把一种目标文件中的内容复制到另一种类型的目标文件中.(1)将图像编译到可执行文件内Q: 如何将一个二进制文件,比如图片,词典一类的东西做为.o文件,直接链接到可执行文件内部呢?A:$ objcopy -I binary -O elf32-i386 -B i386 14_95_13.jpg image.o$ gcc image.o tt.o -o tt$ nm tt | grep 14_950805d6c7 D _binary_14_95_13_jpg_end00014213 A _binary_14_95_13_jpg_size080494b4 D _binary_14_95_13_jpg_start(2)使用objcopy把不用的信息去掉:$ objcopy -R .comment -R .note halo halo.min(3)$ objcopy -R .note -R .comment -S -O binary xyb xyb.bin-R .note -R .comment 表示移掉 .note 与 .comment 段-S 表示移出所有的标志及重定位信息-O binary xyb xyb.bin 表示由xyb生成二进制文件xyb.binobjcopy工具使用指南objcopy Utilityobjcopy -F bfdname | -target=bfdname -I bfdname | -input-target=bfdname -O bfdname | -output-target= bfdname -S | -strip-all -g | -strip-debug -K symbolname | -keep-symbol= symbolname -N symbolname | -strip-symbol= symbolname -L symbolname | -localize-symbol= symbolname -W symbolname | -weaken-symbol= symbolname -x | -discard-all -X | -discard-locals -b byte | -byte= byte -i interleave | -interleave= interleave -R sectionname | -remove-section= sectionname -p | -preserve-dates -debugging -gap-fill= val -pad-to= address -set-start= val -adjust-start= incr -change-address= incr -change-section-address= section=,+,- val -change-warnings -no-change-warnings -set-section-flags= section= flags -add-section= sectionname= filename -change-leading char -remove-leading-char -weaken -v | -verbose -V | -version -help input-file outfile GNU 实用工具程序objcopy的作用是拷贝一个目标文件的内容到另一个目标文件中。Objcopy使用GNU BFD库去读或写目标文件。Objcopy可以使用不同于源目标文件的格式来写目的目标文件(也即是说可以将一种格式的目标文件转换成另一种格式的目标文 件)。通过以上命令行选项可以控制Objcopy的具体操作。Objcopy在进行目标文件的转换时,将生成一个临时文件,转换完成后就将这个临 时文件删掉。Objcopy使用BFD做转换工作。如果没有明确地格式要求,则Objcopy将访问所有在BFD库中已经描述了的并且它可以识别的格式, 请参见GNUpro Decelopment Tools中“using ld”一章中“BFD库”部分和“BFD库中规范的目标文件格式”部分。通过使用srec作为输出目标(使用命令行选项-o srec),Objcopy可以产生S记录格式文件。通 过使用binary作为输出目标(使用命令行选项-o binary),Objcopy可以产生原始的二进制文件。使用Objcopy产生一个原始的二进制文件,实质上是进行了一回输入目标文件内容的内存转 储。所有的符号和重定位信息都将被丢弃。内存转储起始于输入目标文件中那些将要拷贝到输出目标文件去的部分的最小虚地址处。使用Objcopy生成S记录格式文件或者原始的二进制文件的过程中,-S选项和-R选项可能会比较有用。-S选项是用来删掉包含调试信息的部分,-R选项是用来删掉包含了二进制文件不需要的内容的那些部分。input-fileoutfile参 数input-file和outfile分别表示输入目标文件(源目标文件)和输出目标文件(目的目标文件)。如果在命令行中没有明确地指定 outfile,那么Objcopy将创建一个临时文件来存放目标结果,然后使用input-file的名字来重命名这个临时文件(这时候,原来的 input-file将被覆盖)。-I bfdname-input-target=bfdname明确告诉Objcopy,源文件的格式是什么,bfdname是BFD库中描述的标准格式名。这样做要比“让Objcopy自己去分析源文件的格式,然后去和BFD中描述的各种格式比较,通过而得知源文件的目标格式名”的方法要高效得多。-O bfdname-output-target= bfdname使用指定的格式来写输出文件(即目标文件),bfdname是BFD库中描述的标准格式名。-F bfdname-target= bfdname明确告诉Objcopy,源文件的格式是什么,同时也使用这个格式来写输出文件(即目标文件),也就是说将源目标文件中的内容拷贝到目的目标文件的过程中,只进行拷贝不做格式转换,源目标文件是什么格式,目的目标文件就是什么格式。-R sectionname-remove-section= sectionname从输出文件中删掉所有名为sectionname的段。这个选项可以多次使用。注意:不恰当地使用这个选项可能会导致输出文件不可用。-S-strip-all (strip 剥去、剥)不从源文件中拷贝重定位信息和符号信息到输出文件(目的文件)中去。-g-strip-debug不从源文件中拷贝调试符号到输出文件(目的文件)中去。-strip-undeeded剥去所有在重定位处理时所不需要的符号。-K symbolname-keep-symbol= symbolname仅从源文件中拷贝名为symbolname的符号。这个选项可以多次使用。-N symbolname-strip-symbol= symbolname不从源文件中拷贝名为symbolname的符号。这个选项可以多次使用。它可以和其他的strip选项联合起来使用(除了-K symbolname | -keep-symbol= symbolname外)。-L symbolname-localize-symbol= symbolname使名为symbolname的符号在文件内局部化,以便该符号在该文件外部是不可见的。这个选项可以多次使用。-W symbolname-weaken-symbol= symbolname弱化名为symbolname的符号。这个选项可以多次使用。-x-discard-all (discard 丢弃、抛弃)不从源文件中拷贝非全局符号。-X-discard-locals不从源文件中拷贝又编译器生成的局部符号(这些符号通常是L或 . 开头的)。-b byte-byte=byteKeep only everybyteth byte of the input file (header data is not affected). byte can bein the r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/IEC 23090-24:2025 EN Information technology - Coded representation of immersive media - Part 24: Conformance and reference software for scene description
- 【正版授权】 IEC 60245-6:1994/AMD2:2003 EN-D Amendment 2 - Rubber insulated cables - Rated voltages up to and including 450/750 V - Part 6: Arc welding electrode cables
- 艺术素养考试试题及答案
- 六一儿童节亲子活动方案
- 六一团史活动方案
- 六一廉洁家风活动方案
- 六一教室聚会活动方案
- 六一活动爬竹竿活动方案
- 六一活动节活动策划方案
- 六一睫毛活动方案
- 2024年河南三门峡市市直事业单位招考(153人)易考易错模拟试题(共500题)试卷后附参考答案
- 立定跳远(教案) 体育四年级下册(表格式)
- 北京市西城区2023-2024学年七年级下学期期末考试数学试卷
- 江苏省苏州市2023-2024学年高一下学期6月期末考试化学试题
- 浙江省宁波市鄞州区2023-2024学年四年级下学期期末数学试题
- 江苏省常州市教育学会2023-2024学年七年级下学期学业水平监测语文试题
- 酵素招商营销策划方案-培训课件
- 连接器基础知识培训
- 注塑工艺验证周期
- 招标代理机构入围 投标方案(技术方案)
- 食管静脉曲张套扎术
评论
0/150
提交评论