How can I remove the code signature from a binary so that I can patch it without the binary refusing to run afterwards?
Needless to say, I'm not the original creator of the binary, nor I have the certs that were used to sign the binary.
How can I remove the code signature from a binary so that I can patch it without the binary refusing to run afterwards?
Needless to say, I'm not the original creator of the binary, nor I have the certs that were used to sign the binary.
There are tools for that, as well as a codesign
flag --remove-signature
First two should work the same. The codesign
flag is undocumented and so YMMV (A user reported in a comment the codesign
produced a corrupt executable).
You should use any of them with caution and backup the application before using them.
codesign --remove-signature
seems to create malformed executables, at least in some cases.
Another blunt way that seemed to work for me on Catalina (note that this strips all attributes):
xattr -cr /path/to/your/program.app
codesign --remove-signature /path/to/binaryAppName
Tested it on macOS 10.15.3 Catalina, works perfectly.
You can edit the hex values of the now removed code signature binaries and it will launch on macOS with out a hitch.
codesign --remove-signature
approach