0

我可以在 kext 中隐藏 info.plist 吗?或者我可以为 kext 动态创建 info.plist 吗?

我有一个无代码的 kext,它只有 info.plist,但是,我不想向所有人公开 info.plist,这样他们就可以简单地复制我的代码......所以我想要么隐藏 info.plist 要么动态创建信息驱动程序加载或加密整个kext时的.plist?

4

1 回答 1

0

您不能加密/混淆 Info.plist 本身。它是代码签名过程和要求的一部分,因此不能轻易修改。

您没有具体说明,但我假设您想隐藏 I/O Kit Personality 字典中的某些属性?这些属性可以等效地从代码中设置,特别是在init()您的驱动程序类的函数中,除非它们是匹配所必需的。请注意,您设置的任何属性在运行时在 I/O 工具包注册表中都是世界可读的,所以我怀疑这不是您想要的。

如果您尝试隐藏的信息是匹配条件的一部分,例如您尝试隐藏迄今为止未发布的设备的产品 ID,您可以根据您的驱动程序系列的匹配规则,可能在代码中实现此逻辑在probe()函数中。不过,我不会让 Info.plist 中的匹配规则过于宽泛,否则每次都会加载您的 kext,例如具有给定提供程序类的提供程序出现。这是不必要的低效。

显然,在这两种情况下,您的 kext 将不再是无代码的,但您可以在 C++/C/汇编代码中混淆您内心的内容。

如果您想要一个比这更具体的答案,您需要在您的问题中更具体。

于 2016-08-12T11:29:45.417 回答