我的OS应用程序通过修改主可执行文件而被破解。它已经用有效的开发人员ID进行了签名。
当在默认的OS安装上启动此破解版本时,由于codesign不再有效,我希望得到一些警告。我感到惊讶的是,GateKeeper默认规则"App或validated“的启动仍然没有任何问题。
为什么OS仍然在没有任何警告的情况下启动这个非有效的应用程序,比如“这个应用程序被破坏了”?在我的codesign中是否需要做任何更改,以便用户在启动此漏洞时至少必须将GateKeeper规则更改为“无处不在”?
$ spctl -a -t exec -vv CrackedApp.app/
CrackedApp.app/: invalid signature (code or signature have been modified)
$ codesign --verify --deep --verbose=4 CrackedApp.app/
CrackedApp.app/: invalid signature (code or signature have been modified)
In architecture: x86_64发布于 2015-01-09 17:35:27
请记住,GateKeeper只在启动带有检疫属性集的文件时才生效。通过Safari、Mail、Messages和其他Apple软件直接下载的文件会自动设置隔离属性。一旦您单击“您确定要打开它吗?”警告,隔离标志已被清除,并且不再咨询GateKeeper。如果您希望每次运行应用程序时都使用相当于GateKeeper的检查,则需要使用API (如SecStaticCodeCheckValidity )实现自己的静态代码签名检查。当然,如果人们已经在修改您的可执行文件,那么他们也可以修改它以绕过这个附加的代码签名检查。
https://stackoverflow.com/questions/27509852
复制相似问题