如何从二进制文件中删除代码签名,以便在不拒绝二进制文件随后运行的情况下修补它?

不用说,我不是二进制文件的原始创建者,也没有用于签署二进制文件的证书。

评论

如果我要删除代码签名的应用程序名称是两个单词,并且两个单词之间有空格,该如何输入?在此先感谢

#1 楼

有一些工具可以使用,还有一个codesign标志--remove-signature

前两个应该工作相同。 codesign标志未记录,因此为YMMV(用户在评论中报告了codesign产生了损坏的可执行文件)。 >

评论


您会建议我特别使用这三种工具中的一种,还是对我和我的用例完全相同?

–alexandernst
16-09-30在12:13

在这里添加了问题以解决您的问题

– NirIzr
16-09-30在12:24

至少在某些情况下,codesign --remove-signature似乎会创建格式错误的可执行文件。

–zneak
17年9月6日在16:20

@zneak感谢您分享您的经验。编辑我的答案以注意这一点。

– NirIzr
17年9月6日在16:27

#2 楼

在Catalina上似乎对我有用的另一种直率方式(请注意,这消除了所有属性):


#3 楼

codesign --remove-signature /path/to/binaryAppName


在macOS 10.15.3 Catalina上进行了测试,非常完美。

您可以编辑现已删除的代码签名二进制文件的十六进制值,它将在macOS上启动而无需顺利。

评论


该答案没有提供任何新信息。接受的答案(2016年以来)已经讨论了codesign --remove-signature方法

– julian♦
3月19日15:40