1

我正在 Kali Linux 中制作一个程序,我想让它只在 Kali 中工作。我可以使用 C 来做到这一点,就像:

#if defined(_WIN32) || defined(_WIN64)
   #define os_platform THISisWINDOWS

为了检查用户的操作系统是否是 windows,然后在脚本中检查定义的变量 os_platform,但我搜索了谷歌和任何地方,但我找不到 Kali Linux 的宏。如果我做 :

#if defined(__linux__)
   #define os_platform THISisLINUX

它可以是任何类型的 Linux,例如 Ubuntu 和类似的 Linux。Kali Linux 的宏是什么?

4

2 回答 2

2

没有用于分发的宏。您只能通过查找/etc特定文件进行“嗅探测试”以查看它是什么发行版,即使那样它也可能被伪造。

宏之所以存在,首先是因为 Linux 与 BSD 和 Windows 完全不同,所以这是必要的区别。Kali 和 Debian 之间的区别是非常主观的,Kali 是基于 Debian 的。就编译器而言,大多数 Linux 发行版实际上非常相似,因为它们都使用相同的内核和头文件。

诸如此类的东西/etc/redhat-release是特定于发行版的,因此请寻找类似的东西。虽然这无法测试,#ifdef但您需要将其放入configure脚本中。

于 2017-12-14T23:58:53.763 回答
0

可能您可以检查/etc/issue特定发行版名称的文件,然后使用文件指针提取确切的名称,然后比较它是否是 Ubuntu 或 Kali 或任何其他 Linux 机器。

于 2017-12-15T07:30:11.980 回答