Package for removing Mach-O code signatures
A broken code signature is often worse than no signature, so it can be desirable to remove a signature.
This package can remove code signatures from Mach-O binaries.
Both thin and fat binaries are supported.
Just pass an ArrayBuffer
or an object that is a view of an ArrayBuffer
to the unsign
function.
If the binary is signed, an unsigned binary in a new ArrayBuffer
will be returned.
If the binary has no signatures, null
will be returned.
import {readFile, writeFile} from 'node:fs/promises';
import {unsign} from 'macho-unsign';
const unsigned = unsign(await readFile('macho-binary'));
if (unsigned) {
console.log('Signature Removed', unsigned);
await writeFile('macho-binary-unsigned', Buffer.from(unsigned));
} else {
console.log('Not signed');
}
If you find a bug or have compatibility issues, please open a ticket under issues section for this repository.
Copyright (c) 2019-2024 Alexander O'Mara
Licensed under the Mozilla Public License, v. 2.0.
If this license does not work for you, feel free to contact me.