从ELFkickers为Ubuntu10.04编译sstrip:asm / elf.h问题

时间:2011-05-12 20:43:55

标签: linux gcc executable demoscene

我正在玩Linux下创建微小的可执行文件。我的注意力来自Muppetlabs.com的一个名为sstrip的ELFkickers集合(http://www.muppetlabs.com/~breadbox/software/elfkickers.html) 它从ELF可执行文件中剥离了比单独使用条带更多的字节。 而且似乎直到HardyHeron才会出现在Ubuntu中,但现在它已经消失了。 所以我尝试编译自己,但asm / elf.h标题似乎处于一个新的位置,gcc挽救了:

gcc -ggdb -Wall -W -o sstrip sstrip.c
sstrip.c:12:21: error: asm/elf.h: No such file or directory
sstrip.c: In function 'readelfheader':
sstrip.c:70: error: 'ELF_DATA' undeclared (first use in this function)
sstrip.c:70: error: (Each undeclared identifier is reported only once
sstrip.c:70: error: for each function it appears in.)
sstrip.c:72: error: 'ELF_CLASS' undeclared (first use in this function)
sstrip.c:77: error: 'ELF_ARCH' undeclared (first use in this function)
sstrip.c: In function 'getmemorysize':
sstrip.c:138: warning: assignment from incompatible pointer type
sstrip.c: In function 'modifyheaders':
sstrip.c:205: warning: assignment from incompatible pointer type
make: *** [sstrip] Error 1

有关如何解决此问题的任何建议吗?

或者有人知道在哪里可以找到PPA中的sstrip吗? 也许是另类?

1 个答案:

答案 0 :(得分:2)

试试这个:

$ wget http://www.muppetlabs.com/~breadbox/pub/software/ELFkickers-3.0.tar.gz
$ tar xf ELFkickers-3.0.tar.gz
$ cd ELFkickers-3.0/
$ make

然后您可以在 sstrip / 目录中找到 sstrip 二进制文件。如果您收到错误,请发布make命令的输出,以便我们为您提供帮助。