Objective c 从mac应用程序可执行文件中删除代码签名

Objective c 从mac应用程序可执行文件中删除代码签名,objective-c,macos,assembly,Objective C,Macos,Assembly,我有一个签名的mac应用程序可执行文件。我用代码签名的可执行文件的内容初始化了NSMutableData。然后我修改了可执行文件的某些部分,并保存了修改后的可执行文件。当我尝试用这个修改过的可执行文件运行原始应用程序时,应用程序崩溃了 事故日志是 System Integrity Protection: disabled Crashed Thread: 0 Dispatch queue: com.apple.main-thread Exception Type:

我有一个签名的mac应用程序可执行文件。我用代码签名的可执行文件的内容初始化了
NSMutableData
。然后我修改了可执行文件的某些部分,并保存了修改后的可执行文件。当我尝试用这个修改过的可执行文件运行原始应用程序时,应用程序崩溃了

事故日志是

 System Integrity Protection: disabled

 Crashed Thread:        0  Dispatch queue: com.apple.main-thread

 Exception Type:        EXC_CRASH (Code Signature Invalid)
 Exception Codes:       0x0000000000000001, 0x0000000000000000
 Exception Note:        EXC_CORPSE_NOTIFY

 Termination Reason:    Namespace CODESIGNING, Code 0x2 
从崩溃日志可以清楚地看出,它崩溃是因为无效的代码签名。 我没有该应用程序的源代码,我只是想修复某人旧应用程序中的一些错误


因此,我的问题是如何删除目标c中二进制代码的签名?

感谢所有道德传道者,感谢他们启发了我的生活并展示了生活的道德道路。代码签名的全部目的就是让这样的事情变得不可能。这是一种验证应用程序未被篡改的方法。@Itaferber我的目标不是在应用商店中分发此应用程序。在Hopper反汇编程序中,我们可以从可执行文件中删除代码签名,并将其另存为新的可执行文件。那么,在objective-c中如何做到这一点呢?您的实际目标是什么?如果它是您的应用程序,只需编译/构建它而无需代码设计。如果它不是-放手-因为你很可能会侵犯权利。它是相关的,因为你把你关于补丁的另一个问题与这个问题联系起来了。此外,一些二进制文件不会在代码签名被剥离的情况下运行;您回答了下面的问题-您的回答无效吗?