MachO is a small Ruby library for parsing interesting data from Mach-O binaries. It understands "normal" Mach-O binaries as well as multiarchitecure fat binarys.
It also includes an encryption simulation routine that is helpful in guessing the final size of an encrypted binary.
require 'macho'
exec = MachO::Executable.new("MyBinary")
puts "Binary contains %d architectures" % exec.archs.length
The encryption simulation routine modifies the provided binary file by filling its encryption segments with random bytes. You should generally run this step on a copy of your binary.
require 'macho'
MachO::simulate_encrypt("MyBinary")
Compressing the modified binary (using gzip
) should give a representative
size estimate of how Apple's encryption pass will affect the binary's size.
Fork the macho repository on GitHub and send a Pull Request.
Copyright © 2011, Booyah, Inc. See the COPYING
file for license
rights and limitations (MIT).