0

使用 Apple 的codesign工具签署应用程序时,似乎我可能想要设置-o kill选项:

设置了 kill 标志的代码将在变为动态无效时终止。

这对应于kSecCodeSignatureForceKill“始终kSecCodeStatusKill在启动时设置状态标志”的常量:

表示如果代码失去其有效性,它想要被杀死(终止)。

听起来不错,但它的真正含义是什么?

自然,如果“任何事情”在执行过程中破坏了我的代码的完整性,我希望进程被终止。但是那个“东西”会是什么?这个标志会防止任何和所有代码注入攻击吗?

4

1 回答 1

1

-o标志的含义正是您所描述的。如果代码签名与已签名的包内容不匹配,则该进程将被终止——就这么简单。它基本上只是一种阻止、阻止或使某人更难修改、注入、更改等签名捆绑内容中的任何内容的手段。

这个标志会防止任何和所有代码注入攻击吗?

绝对不是。代码签名仅在建立信任的环境中有用。不幸的是,一旦应用程序“在野外”,一切皆有可能,而且并非所有环境都建立在这种信任之上。精通代码签名如何工作的人可以在几秒钟内轻松剥离或重新设计某些东西,从而使原始签名基本上无用。

于 2018-04-27T22:33:19.327 回答