用C语言编写一个最简单的hello world 程序,把它用gcc 编译之后生成可执行文件hello。然和查看大小,用$wc -c命令,比如6448B,怎么减少呢。因为程序的section 段以后的内容对程序的执行没什么作用,所以可以把这段去掉,首先得获得section 段的入口地址,可以用$readelf -h hello获得地址,比如
Start of program headers: 64 (bytes into file)
Start of section headers: 4656 (bytes into file)
地址就是4656,然后执行
$dd if=hello of=test bs=1 count=4656
上述的命令是把hello这个可执行文件的 的前4656个字节的内容付给test,后面的也就是section后面的东西就丢掉,然后查看test的大小,就是4656B,给test增加执行权限,$chmod +x test, 执行结果不变。