在Kali 2.0 64bit上使用gcc编译旧代码

时间:2015-12-10 11:29:14

标签: c linux gcc exploit

我想编译这个旧漏洞来完成我的练习:https://www.exploit-db.com/exploits/895/

gcc转载后<asm/page.h>丢失了。 我在网上搜索,发现asm中的一些标题已移至:

/usr/src/linux-headers-4.0.0-kali1-common/include/asm-generic/

为了确保源文件具有编译所需的一切,我为上述目录中的每个文件建立了一个链接:

/usr/include/asm
/usr/include/asm-generic

我运行了gcc,这一次,它没有报告丢失<asm/page.h>但是<linux/compiler.h> 在挖掘之后,我发现了这个:

<asm/page.h>
|
|---#include <asm-generic/getorder.h>
                            |
                            |--#include <linux/compiler.h> ==> missing

一个简单的locate linux/compiler.h告诉我compiler.h在这里

/usr/src/linux-headers-4.0.0-kali1-common/include/linux/compiler.h

当然,我可以从<linux/compiler.h>/usr/include/linux建立另一个链接。

但我真的不知道有多少人留下了,还有多少链接要做。

有没有办法告诉编译器它必须从新的include目录中获取标头?

或者我在这里遗漏了什么? 我还是Linux的新手,所以对任何帮助表示赞赏。

注意:我正在使用Kali 2.0 64位并已安装/重新安装build-essential

更新

我尝试了-I选项:

gcc source.c -m32 -I /usr/src/linux-headers-4.0.0-kali1-common/include/

这一次,gcc说我需要一些来自

的东西
/usr/src/linux-headers-4.0.0-kali1-common/arch/x86/include/

(=。=)

0 个答案:

没有答案