sinanjj 发表于 2009-7-1 20:22

goon

&quot;2.&nbsp;14楼的代码这100byte的差别并不是printf本身造成的,这是call&nbsp;printf的差别,而实现printf的代码远远不至100byte,因为你指定nostdlib,所以gcc没有把printf给链接进来。我在12&nbsp;楼已经把问题给简化,说明了这500k不是printf。我的观点是,这500k东西包括但不限于,elf壳,初始化,代码本身。因为这些东西占不了那么多,所以最大的可能是把一些没有用到的标准库给链进来了,如果不是那会是什么?是一张**mm图?哈哈哈&quot;<br /><br /><br />请问你咋知道这500k不是elf的格式信息呢?&nbsp;上边已经解释了,&nbsp;elf格式不是pe格式与它们的缘由.<br />你得拿出确切的证据证明这500k不是elf格式,&nbsp;而不是想当然,&nbsp;pe那么小,&nbsp;elf也这么小.<br /><br />制定nostdlib会对elf格式造成什么影响呢?&nbsp;我怀疑是那500k,&nbsp;而不是真正的库函数.<br /><br />printf的代码确实不止100kb,&nbsp;但是还有个标准叫PIOSX,&nbsp;这个标准规定了系统调用的标准API,&nbsp;printf是没那么小,&nbsp;但PIOSX调用绝对可以这么小.&nbsp;内核通过中断来接收PIOSX&nbsp;API,&nbsp;这个可以参考IBM的文档,&nbsp;标准函数的实现过程.&nbsp;<br /><br /><br />

sinanjj 发表于 2009-7-1 20:28

goon

&quot;我的busybox是静态链接的,我的程序全是静态链接的,因为我认为在一个封闭的嵌入式系统上用动态链接一点必要都没有.正因为这样所以没往根目录上放动态库,面helloworld是动态的,所以就出问题,但是他提示not&nbsp;found误导我,很无语.&quot;<br /><br />首先,&nbsp;出现问题要向国际友人提问,&nbsp;而不是无语.<br /><br />linux出个奇怪问题很正常.&nbsp;源代码都开放了,&nbsp;你自己不看,&nbsp;找bug提交.<br /><br />free&nbsp;is&nbsp;not&nbsp;free&nbsp;就是这个道理.&nbsp;等你彻底理解,&nbsp;掌控了,&nbsp;就不会发牢骚了.<br /><br />除此以外,&nbsp;你可以看一下我提到的这个问题:<br /><br />为什么动态编译的elf文件比pe文件小1倍左右,&nbsp;LZ改如何解释呢?&nbsp;是不是&nbsp;微软的pe格式里藏了一幅**MM图????<br />

sinanjj 发表于 2009-7-1 20:59

再做个试验让LZ死心

$&nbsp;cat&nbsp;test.c<br />main()<br />{<br />printf&nbsp;(&quot;aaaa&quot;);<br />sleep(1);<br />}<br />$cat&nbsp;test1.c<br />main()<br />{<br />printf&nbsp;(&quot;aaaa&quot;);<br />printf&nbsp;(&quot;aaaa&quot;);<br />}<br />$&nbsp;gcc&nbsp;-o&nbsp;test&nbsp;test.c&nbsp;-static<br />$&nbsp;gcc&nbsp;-o&nbsp;test1&nbsp;test1.c&nbsp;-static<br /><br />$&nbsp;ls&nbsp;-al&nbsp;test1<br />-rwxr-xr-x&nbsp;1&nbsp;industry&nbsp;industry&nbsp;565129&nbsp;2009-07-01&nbsp;20:53&nbsp;test1<br />$&nbsp;ls&nbsp;-al&nbsp;test<br />-rwxr-xr-x&nbsp;1&nbsp;industry&nbsp;industry&nbsp;565746&nbsp;2009-07-01&nbsp;20:53&nbsp;test<br /><br /><br /><br />同样是系统调用,&nbsp;如果库已经static进去了,&nbsp;咋差别这么大里?<br />

eee 发表于 2009-7-3 14:33

正在外地出差,回去后再继续讨论

sinanjj 发表于 2009-7-3 17:09

正在感冒。。。休息一会再讨论

eee 发表于 2009-7-8 13:48

出差回来,继续

1.在顶楼我向各位高手大虾求救的问题已经解决,同时我也说明了如何解决是什么原因,在这里再次谢过。后面是在讨论顶楼问题的引伸:500k代码是什么?不是elf和pe谁更优?也不是做事应以何种态度的问题?sinanjj请不要再试途来证明这些问题谁是谁非。对于这些问题如果有兴趣可以另外再讨论。同时愿你早日康复<br />2。对于pe和elf在前面我已经承认我并不了解,对于500k是什么这个问题的观点只是基于经验的推测,我确实拿不出直接的证据去证实500K里都是些什么东西?我想sinanjj斑竹(这个刚刚注意到)同样拿不出直接的证据去证实500k就是你说的elf信息,23楼的代码我并不清楚你想要说明什么问题。但是这些数据都实实在在的在那里只要分析一下就可以知道真相,所以今天特别拿出一的时间去看了一下有关elf的文档(很遗憾这并不能为我的米缸里增加点米),并readelf工具分析了一下动态链接和静态链接的文件.以直接证明500k不是elf信息,是代码和数据。<br />代码t.c如下:<br />#include&nbsp;&ltstdio.h&gt<br />int&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i,j;<br />for(j=0,i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt&nbsp;100;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;j+=i;<br />return&nbsp;0;<br />}<br />gcc&nbsp;-static&nbsp;-o&nbsp;ts&nbsp;t.c<br />gcc&nbsp;-o&nbsp;ts&nbsp;t.c<br />//动态链接td的Section&nbsp;Headers信息<br />readelf&nbsp;-S&nbsp;td<br />There&nbsp;are&nbsp;36&nbsp;section&nbsp;headers,&nbsp;starting&nbsp;at&nbsp;offset&nbsp;0xc74:<br /><br />Section&nbsp;Headers:<br />&nbsp;&nbsp;&nbsp;Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Addr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Off&nbsp;&nbsp;&nbsp;&nbsp;Size&nbsp;&nbsp;&nbsp;ES&nbsp;**&nbsp;Lk&nbsp;Inf&nbsp;Al<br />&nbsp;&nbsp;[&nbsp;0]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00000000&nbsp;000000&nbsp;000000&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;0<br />&nbsp;&nbsp;[&nbsp;1]&nbsp;.interp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;08048114&nbsp;000114&nbsp;000013&nbsp;00&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;1<br />&nbsp;&nbsp;[&nbsp;2]&nbsp;.note.ABI-tag&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOTE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;08048128&nbsp;000128&nbsp;000020&nbsp;00&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;[&nbsp;3]&nbsp;.hash&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HASH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;08048148&nbsp;000148&nbsp;000024&nbsp;04&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;5&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;[&nbsp;4]&nbsp;.gnu.hash&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GNU_HASH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0804816c&nbsp;00016c&nbsp;000020&nbsp;04&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;5&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;[&nbsp;5]&nbsp;.dynsym&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DYNSYM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0804818c&nbsp;00018c&nbsp;000040&nbsp;10&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;6&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;4<br />&nbsp;&nbsp;[&nbsp;6]&nbsp;.dynstr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STRTAB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;080481cc&nbsp;0001cc&nbsp;000045&nbsp;00&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;1<br />&nbsp;&nbsp;[&nbsp;7]&nbsp;.gnu.version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VERSYM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;08048212&nbsp;000212&nbsp;000008&nbsp;02&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;5&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;2<br />&nbsp;&nbsp;[&nbsp;8]&nbsp;.gnu.version_r&nbsp;&nbsp;&nbsp;&nbsp;VERNEED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0804821c&nbsp;00021c&nbsp;000020&nbsp;00&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;6&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;4<br />&nbsp;&nbsp;[&nbsp;9]&nbsp;.rel.dyn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;REL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0804823c&nbsp;00023c&nbsp;000008&nbsp;08&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;5&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;&nbsp;.rel.plt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;REL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;08048244&nbsp;000244&nbsp;000010&nbsp;08&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;5&nbsp;&nbsp;12&nbsp;&nbsp;4<br />&nbsp;&nbsp;&nbsp;.init&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;08048254&nbsp;000254&nbsp;000030&nbsp;00&nbsp;&nbsp;AX&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;&nbsp;.plt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;08048284&nbsp;000284&nbsp;000030&nbsp;04&nbsp;&nbsp;AX&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;<font color=#FF0000>&nbsp;&nbsp;.text&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;080482c0&nbsp;0002c0&nbsp;00016c&nbsp;00&nbsp;&nbsp;AX&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;16<br /></font>&nbsp;&nbsp;&nbsp;.fini&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0804842c&nbsp;00042c&nbsp;00001c&nbsp;00&nbsp;&nbsp;AX&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;<font color=#FF0000>&nbsp;.rodata&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;08048448&nbsp;000448&nbsp;000008&nbsp;00&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br /></font>&nbsp;&nbsp;&nbsp;.eh_frame&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;08048450&nbsp;000450&nbsp;000004&nbsp;00&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;&nbsp;.ctors&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;08049454&nbsp;000454&nbsp;000008&nbsp;00&nbsp;&nbsp;WA&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;&nbsp;.dtors&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0804945c&nbsp;00045c&nbsp;000008&nbsp;00&nbsp;&nbsp;WA&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;&nbsp;.jcr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;08049464&nbsp;000464&nbsp;000004&nbsp;00&nbsp;&nbsp;WA&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;&nbsp;.dynamic&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DYNAMIC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;08049468&nbsp;000468&nbsp;0000d0&nbsp;08&nbsp;&nbsp;WA&nbsp;&nbsp;6&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;&nbsp;.got&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;08049538&nbsp;000538&nbsp;000004&nbsp;04&nbsp;&nbsp;WA&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;&nbsp;.got.plt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0804953c&nbsp;00053c&nbsp;000014&nbsp;04&nbsp;&nbsp;WA&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br /><font color=#FF0000>&nbsp;&nbsp;&nbsp;.data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;08049550&nbsp;000550&nbsp;00000c&nbsp;00&nbsp;&nbsp;WA&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;&nbsp;.bss&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0804955c&nbsp;00055c&nbsp;000004&nbsp;00&nbsp;&nbsp;WA&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4</font><br />&nbsp;&nbsp;&nbsp;.comment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00000000&nbsp;00055c&nbsp;000126&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;1<br />&nbsp;&nbsp;&nbsp;.debug_aranges&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00000000&nbsp;000688&nbsp;000050&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;8<br />&nbsp;&nbsp;&nbsp;.debug_pubnames&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00000000&nbsp;0006d8&nbsp;000025&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;1<br />&nbsp;&nbsp;&nbsp;.debug_info&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00000000&nbsp;0006fd&nbsp;0001a7&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;1<br />&nbsp;&nbsp;&nbsp;.debug_abbrev&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00000000&nbsp;0008a4&nbsp;00006f&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;1<br />&nbsp;&nbsp;&nbsp;.debug_line&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00000000&nbsp;000913&nbsp;000129&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;1<br />&nbsp;&nbsp;&nbsp;.debug_str&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00000000&nbsp;000a3c&nbsp;0000bb&nbsp;01&nbsp;&nbsp;MS&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;1<br />&nbsp;&nbsp;&nbsp;.debug_ranges&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00000000&nbsp;000af8&nbsp;000040&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;8<br />&nbsp;&nbsp;&nbsp;.shstrtab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STRTAB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00000000&nbsp;000b38&nbsp;000139&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;1<br /><font color=#4040FF>&nbsp;&nbsp;&nbsp;.symtab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SYMTAB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00000000&nbsp;001214&nbsp;000490&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;35&nbsp;&nbsp;55&nbsp;&nbsp;4<br />&nbsp;&nbsp;&nbsp;.strtab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STRTAB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00000000&nbsp;0016a4&nbsp;0001f2&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;1</font><br />Key&nbsp;to&nbsp;Flags:<br />&nbsp;&nbsp;W&nbsp;(write),&nbsp;A&nbsp;(alloc),&nbsp;X&nbsp;(execute),&nbsp;M&nbsp;(merge),&nbsp;S&nbsp;(strings)<br />&nbsp;&nbsp;I&nbsp;(info),&nbsp;L&nbsp;(link&nbsp;order),&nbsp;G&nbsp;(group),&nbsp;x&nbsp;(unknown)<br />&nbsp;&nbsp;O&nbsp;(extra&nbsp;OS&nbsp;processing&nbsp;required)&nbsp;o&nbsp;(OS&nbsp;specific),&nbsp;p&nbsp;(processor&nbsp;specific)<br /><br />//静态链接ts的Section&nbsp;Headers信息<br />readelf&nbsp;-S&nbsp;ts<br />There&nbsp;are&nbsp;33&nbsp;section&nbsp;headers,&nbsp;starting&nbsp;at&nbsp;offset&nbsp;0x78ffc:<br /><br />Section&nbsp;Headers:<br />&nbsp;&nbsp;&nbsp;Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Addr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Off&nbsp;&nbsp;&nbsp;&nbsp;Size&nbsp;&nbsp;&nbsp;ES&nbsp;**&nbsp;Lk&nbsp;Inf&nbsp;Al<br />&nbsp;&nbsp;[&nbsp;0]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00000000&nbsp;000000&nbsp;000000&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;0<br />&nbsp;&nbsp;[&nbsp;1]&nbsp;.note.ABI-tag&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOTE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;080480d4&nbsp;0000d4&nbsp;000020&nbsp;00&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;[&nbsp;2]&nbsp;.init&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;080480f4&nbsp;0000f4&nbsp;000030&nbsp;00&nbsp;&nbsp;AX&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;<font color=#FF0000>&nbsp;[&nbsp;3]&nbsp;.text&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;08048130&nbsp;000130&nbsp;0588dc&nbsp;00&nbsp;&nbsp;AX&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;16<br /></font>&nbsp;&nbsp;[&nbsp;4]&nbsp;__libc_freeres_fn&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;080a0a10&nbsp;058a10&nbsp;000ac2&nbsp;00&nbsp;&nbsp;AX&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;16<br />&nbsp;&nbsp;[&nbsp;5]&nbsp;.fini&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;080a14d4&nbsp;0594d4&nbsp;00001c&nbsp;00&nbsp;&nbsp;AX&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;<font color=#FF0000>[&nbsp;6]&nbsp;.rodata&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;080a1500&nbsp;059500&nbsp;017568&nbsp;00&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;32</font><br />&nbsp;&nbsp;[&nbsp;7]&nbsp;__libc_subfreeres&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;080b8a68&nbsp;070a68&nbsp;00002c&nbsp;00&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;[&nbsp;8]&nbsp;__libc_atexit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;080b8a94&nbsp;070a94&nbsp;000004&nbsp;00&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;[&nbsp;9]&nbsp;.eh_frame&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;080b8a98&nbsp;070a98&nbsp;0047a8&nbsp;00&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;&nbsp;.gcc_except_table&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;080bd240&nbsp;075240&nbsp;000102&nbsp;00&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;1<br />&nbsp;&nbsp;&nbsp;.tdata&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;080be344&nbsp;075344&nbsp;000010&nbsp;00&nbsp;WAT&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;&nbsp;.tbss&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;080be354&nbsp;075354&nbsp;000018&nbsp;00&nbsp;WAT&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;&nbsp;.ctors&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;080be354&nbsp;075354&nbsp;000008&nbsp;00&nbsp;&nbsp;WA&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;&nbsp;.dtors&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;080be35c&nbsp;07535c&nbsp;00000c&nbsp;00&nbsp;&nbsp;WA&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;&nbsp;.jcr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;080be368&nbsp;075368&nbsp;000004&nbsp;00&nbsp;&nbsp;WA&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;&nbsp;.data.rel.ro&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;080be36c&nbsp;07536c&nbsp;00002c&nbsp;00&nbsp;&nbsp;WA&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;&nbsp;.got&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;080be398&nbsp;075398&nbsp;000008&nbsp;04&nbsp;&nbsp;WA&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;&nbsp;.got.plt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;080be3a0&nbsp;0753a0&nbsp;00000c&nbsp;04&nbsp;&nbsp;WA&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br /><font color=#FF0000>&nbsp;&nbsp;&nbsp;.data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;080be3c0&nbsp;0753c0&nbsp;000720&nbsp;00&nbsp;&nbsp;WA&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;32<br />&nbsp;&nbsp;&nbsp;.bss&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;080beae0&nbsp;075ae0&nbsp;001ad8&nbsp;00&nbsp;&nbsp;WA&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;32</font><br />&nbsp;&nbsp;&nbsp;__libc_freeres_pt&nbsp;NOBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;080c05b8&nbsp;075ae0&nbsp;000014&nbsp;00&nbsp;&nbsp;WA&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;4<br />&nbsp;&nbsp;&nbsp;.comment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00000000&nbsp;075ae0&nbsp;002f16&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;1<br />&nbsp;&nbsp;&nbsp;.debug_aranges&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00000000&nbsp;0789f8&nbsp;000050&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;8<br />&nbsp;&nbsp;&nbsp;.debug_pubnames&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00000000&nbsp;078a48&nbsp;000025&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;1<br />&nbsp;&nbsp;&nbsp;.debug_info&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00000000&nbsp;078a6d&nbsp;0001a7&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;1<br />&nbsp;&nbsp;&nbsp;.debug_abbrev&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00000000&nbsp;078c14&nbsp;00006f&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;1<br />&nbsp;&nbsp;&nbsp;.debug_line&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00000000&nbsp;078c83&nbsp;000129&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;1<br />&nbsp;&nbsp;&nbsp;.debug_str&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00000000&nbsp;078dac&nbsp;0000bb&nbsp;01&nbsp;&nbsp;MS&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;1<br />&nbsp;&nbsp;&nbsp;.debug_ranges&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGBITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00000000&nbsp;078e68&nbsp;000040&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;8<br />&nbsp;&nbsp;&nbsp;.shstrtab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STRTAB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00000000&nbsp;078ea8&nbsp;000152&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;1<br /><font color=#4040FF>&nbsp;&nbsp;&nbsp;.symtab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SYMTAB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00000000&nbsp;079524&nbsp;007b90&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;32&nbsp;905&nbsp;&nbsp;4<br />&nbsp;&nbsp;&nbsp;.strtab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STRTAB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00000000&nbsp;0810b4&nbsp;006e33&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;1</font><br />Key&nbsp;to&nbsp;Flags:<br />&nbsp;&nbsp;W&nbsp;(write),&nbsp;A&nbsp;(alloc),&nbsp;X&nbsp;(execute),&nbsp;M&nbsp;(merge),&nbsp;S&nbsp;(strings)<br />&nbsp;&nbsp;I&nbsp;(info),&nbsp;L&nbsp;(link&nbsp;order),&nbsp;G&nbsp;(group),&nbsp;x&nbsp;(unknown)<br />&nbsp;&nbsp;O&nbsp;(extra&nbsp;OS&nbsp;processing&nbsp;required)&nbsp;o&nbsp;(OS&nbsp;specific),&nbsp;p&nbsp;(processor&nbsp;specific)<br /><br />从中可以看出.text&nbsp;.rodata&nbsp;.data&nbsp;.bbs的差别,静态的代码段.text占了350K左右&nbsp;.rodata占了93K左右,所以500K不是elf信息,主要是代码和数据。那么我们的用户代码只有这么几行,所以只能是glibc库,(注兰色部分二个表是什么意思我不了解,但也有比较大的差别)<br />&nbsp;<br /><br />//动态链接td的program&nbsp;headers信息<br />readelf&nbsp;-l&nbsp;td<br /><br />Elf&nbsp;file&nbsp;type&nbsp;is&nbsp;EXEC&nbsp;(Executable&nbsp;file)<br />Entry&nbsp;point&nbsp;0x80482c0<br />There&nbsp;are&nbsp;7&nbsp;program&nbsp;headers,&nbsp;starting&nbsp;at&nbsp;offset&nbsp;52<br /><br />Program&nbsp;Headers:<br />&nbsp;&nbsp;Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Offset&nbsp;&nbsp;&nbsp;VirtAddr&nbsp;&nbsp;&nbsp;PhysAddr&nbsp;&nbsp;&nbsp;FileSiz&nbsp;MemSiz&nbsp;&nbsp;**&nbsp;Align<br />&nbsp;&nbsp;PHDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x000034&nbsp;0x08048034&nbsp;0x08048034&nbsp;0x000e0&nbsp;0x000e0&nbsp;R&nbsp;E&nbsp;0x4<br />&nbsp;&nbsp;INTERP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x000114&nbsp;0x08048114&nbsp;0x08048114&nbsp;0x00013&nbsp;0x00013&nbsp;R&nbsp;&nbsp;&nbsp;0x1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><font color=#FF0000>&nbsp;&nbsp;LOAD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x000000&nbsp;0x08048000&nbsp;0x08048000&nbsp;0x00454&nbsp;0x00454&nbsp;R&nbsp;E&nbsp;0x1000<br />&nbsp;&nbsp;LOAD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x000454&nbsp;0x08049454&nbsp;0x08049454&nbsp;0x00108&nbsp;0x0010c&nbsp;RW&nbsp;&nbsp;0x1000</font><br />&nbsp;&nbsp;DYNAMIC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x000468&nbsp;0x08049468&nbsp;0x08049468&nbsp;0x000d0&nbsp;0x000d0&nbsp;RW&nbsp;&nbsp;0x4<br />&nbsp;&nbsp;NOTE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x000128&nbsp;0x08048128&nbsp;0x08048128&nbsp;0x00020&nbsp;0x00020&nbsp;R&nbsp;&nbsp;&nbsp;0x4<br />&nbsp;&nbsp;GNU_STACK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x000000&nbsp;0x00000000&nbsp;0x00000000&nbsp;0x00000&nbsp;0x00000&nbsp;RW&nbsp;&nbsp;0x4<br /><br />Section&nbsp;to&nbsp;Segment&nbsp;mapping:<br />&nbsp;&nbsp;Segment&nbsp;Sections...<br />&nbsp;&nbsp;&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.interp&nbsp;<br />&nbsp;&nbsp;&nbsp;02&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.interp&nbsp;.note.ABI-tag&nbsp;.hash&nbsp;.gnu.hash&nbsp;.dynsym&nbsp;.dynstr&nbsp;.gnu.version&nbsp;.gnu.version_r&nbsp;.rel.dyn&nbsp;.rel.plt&nbsp;.init&nbsp;.plt&nbsp;.text&nbsp;.fini&nbsp;.rodata&nbsp;.eh_frame&nbsp;<br />&nbsp;&nbsp;&nbsp;03&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.ctors&nbsp;.dtors&nbsp;.jcr&nbsp;.dynamic&nbsp;.got&nbsp;.got.plt&nbsp;.data&nbsp;.bss&nbsp;<br />&nbsp;&nbsp;&nbsp;04&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.dynamic&nbsp;<br />&nbsp;&nbsp;&nbsp;05&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.note.ABI-tag&nbsp;<br />&nbsp;&nbsp;&nbsp;06&nbsp;<br /><br />&nbsp;//静态链接ts的program&nbsp;headers信息&nbsp;&nbsp;&nbsp;<br />readelf&nbsp;-l&nbsp;ts<br />Elf&nbsp;file&nbsp;type&nbsp;is&nbsp;EXEC&nbsp;(Executable&nbsp;file)<br />Entry&nbsp;point&nbsp;0x8048130<br />There&nbsp;are&nbsp;5&nbsp;program&nbsp;headers,&nbsp;starting&nbsp;at&nbsp;offset&nbsp;52<br />Program&nbsp;Headers:<br />&nbsp;&nbsp;Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Offset&nbsp;&nbsp;&nbsp;VirtAddr&nbsp;&nbsp;&nbsp;PhysAddr&nbsp;&nbsp;&nbsp;FileSiz&nbsp;MemSiz&nbsp;&nbsp;**&nbsp;Align<br /><font color=#FF0000>&nbsp;&nbsp;LOAD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x000000&nbsp;0x08048000&nbsp;0x08048000&nbsp;0x75342&nbsp;0x75342&nbsp;R&nbsp;E&nbsp;0x1000<br />&nbsp;&nbsp;LOAD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x075344&nbsp;0x080be344&nbsp;0x080be344&nbsp;0x0079c&nbsp;0x02288&nbsp;RW&nbsp;&nbsp;0x1000</font><br />&nbsp;&nbsp;NOTE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x0000d4&nbsp;0x080480d4&nbsp;0x080480d4&nbsp;0x00020&nbsp;0x00020&nbsp;R&nbsp;&nbsp;&nbsp;0x4<br />&nbsp;&nbsp;TLS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x075344&nbsp;0x080be344&nbsp;0x080be344&nbsp;0x00010&nbsp;0x00028&nbsp;R&nbsp;&nbsp;&nbsp;0x4<br />&nbsp;&nbsp;GNU_STACK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x000000&nbsp;0x00000000&nbsp;0x00000000&nbsp;0x00000&nbsp;0x00000&nbsp;RW&nbsp;&nbsp;0x4<br />&nbsp;Section&nbsp;to&nbsp;Segment&nbsp;mapping:<br />&nbsp;&nbsp;Segment&nbsp;Sections...<br />&nbsp;&nbsp;&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.note.ABI-tag&nbsp;.init&nbsp;.text&nbsp;__libc_freeres_fn&nbsp;.fini&nbsp;.rodata&nbsp;__libc_subfreeres&nbsp;__libc_atexit&nbsp;.eh_frame&nbsp;.gcc_except_table&nbsp;<br />&nbsp;&nbsp;&nbsp;01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.tdata&nbsp;.ctors&nbsp;.dtors&nbsp;.jcr&nbsp;.data.rel.ro&nbsp;.got&nbsp;.got.plt&nbsp;.data&nbsp;.bss&nbsp;__libc_freeres_ptrs&nbsp;<br />&nbsp;&nbsp;&nbsp;02&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.note.ABI-tag&nbsp;<br />&nbsp;&nbsp;&nbsp;03&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.tdata&nbsp;.tbss&nbsp;<br />&nbsp;&nbsp;&nbsp;04&nbsp;<br />再看看程序头的红色部分的差别,问题就一目了然了

sinanjj 发表于 2009-7-9 12:34

一会仔细看看

一定给你个解释。<br /><br />我解决不了直接向GNU总部反应。。。。

sinanjj 发表于 2009-8-4 14:55

刚刚被解封,讨论继续。

我再看看

sinanjj 发表于 2009-8-21 19:39

偶然用到elf分析。。。

此帖别沉。。。我一会分析下。。。

sinanjj 发表于 2009-8-31 08:43

今天我决定解决这个问题。






呵呵呵呵哈和和呵呵哈何厚铧哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈呵呵


我又回来啦。。。。。

sinanjj 发表于 2009-8-31 08:44

仔细看了看,做了几个试验,也不用引用别的啥数据了,直接引用26楼数据就够了。。。。。

sinanjj 发表于 2009-8-31 08:48

首先,这个数据看起来有点乱,大家看红的那几行就行了,我把红的那几行弄下来:

分析最后两行红的(其他类似):

对比这两行:
Type            Offset         VirtAddr         PhysAddr       FileSiz    MemSiz   ** Align
LOAD         0x000000 0x08048000 0x08048000 0x00454 0x00454 R E 0x1000
LOAD         0x000454 0x08049454 0x08049454 0x00108 0x0010c RW0x1000

LOAD         0x000000 0x08048000 0x08048000 0x75342 0x75342 R E 0x1000
LOAD         0x075344 0x080be344 0x080be344 0x0079c 0x02288 RW0x1000

把FileSiz(不需要看别的)变成我们可理解的数据:

sinanjj 发表于 2009-8-31 08:50

化简成:

type               FileSiz   
LOAD   0x00454
LOAD      0x00108

LOAD      0x75342
LOAD      0x0079c

变换:
type               FileSiz   
LOAD   0.4k
LOAD      0.1k

LOAD      75k
LOAD      0.7k

好,我们看到静态多的比动态多了75k。那么再次引用

sinanjj 发表于 2009-8-31 08:54

12楼的:

"我用vc6.0 release 使用动态MFC编译是16K,不用MFC或静态MFC是36K,这才叫正常!"

这个多了20k。

但是我们的程序大小多了 500k-6k=494k

这充分说明:这494k的大小并不是主要由静态库造成的。

而20k与65k的差异很可能是因为格式不同造成的。

sinanjj 发表于 2009-8-31 08:55

而且:gcc动态编译的这个程序6k,比VC编译的程序16k小10K,请问这是不是该鄙视下windows和VC,把一副**MM图加载进去了?

sinanjj 发表于 2009-8-31 08:55

好,等待支持windows+VC的拍砖。。。。。。

wangkj 发表于 2009-8-31 17:02

你strip了吗,这个能差10倍。

sinanjj 发表于 2009-9-1 08:32

$cat test.c
int main()
{
int i,j;
for(j = 0, i = 0;i < 100; i++)
    j += i;
return 0;
}
$ gcc -o test test.c -static -O2
$ strip -s test
$ gcc -o test1 test.c -static -O2
$ ls -al
-rwxr-xr-x1 industry industry503560 2009-09-01 08:32 test
-rwxr-xr-x1 industry industry565029 2009-09-01 08:32 test1
差了60多k。
strip后的程序照常使用。

不完全理解。

请前辈解释。(也没差10倍啊。。)

jxb163 发表于 2009-9-1 15:23

才子啊
页: 1 [2]
查看完整版本: busybox疑难杂症 求救!!