我正在Kali Linux制作程序,我想让它仅在kali中使用。我可以使用C来做到这一点,就像:
#if defined(_WIN32) || defined(_WIN64)
#define os_platform THISisWINDOWS
用于检查用户的操作系统是否为Windows,然后在脚本中检查定义的变量OS_PLATFORM,但我搜索了Google和其他任何地方,但是我找不到Kali Linux的宏。如果我这样做:
#if defined(__linux__)
#define os_platform THISisLINUX
它可以是任何类型的Linux,例如Ubuntu,以及像Linux一样。Kali Linux的宏是什么?
没有宏。您只能进行"嗅探测试",以查看在/etc
中查看特定文件的分布,即使这样它也可以伪造。
宏首先存在宏的原因是因为Linux与BSD和Windows截然不同,因此这是必要的区别。Kali和Debian之间的差异非常主观,Kali是基于Debian的。就编译器而言,大多数Linux分布实际上非常相似,因为它们都使用相同的内核和标头。
诸如/etc/redhat-release
之类的东西是特定于分布的,因此请寻找类似的东西。不过,这不能作为#ifdef
测试,这是您需要放入configure
脚本中的东西。
可能您可以检查/etc/issue
文件中的特定分布名称,然后使用文件指针提取确切的名称&然后比较它是Ubuntu还是Kali或任何其他Linux机器。