How To

In the development of 0tH, we opted for security over features; hence some features are not yet implemented. Here are the most relevant ones, and how to overcome them.

Fat Files Support

At the time of this writing, 0tH does not yet support multi-architecture (Fat) files. We are aware of this limitation and plan to address it in version 0.7.0. In the meantime, the venerable lipo command provides an easy workaround.

lipo does not “convert” a binary from an architecture to another; instead, it just extracts slices from a FAT file. This difference is crucial, because it means that lipo does not create/compile something for you, and its output is something that must already exist.

To understand which architectures are contained from a binary:

gabrielebiondo@MacBook-Pro MacOS Reverser % lipo -info MyApp 
Architectures in the fat file: MyApp are: x86_64 arm64

and then it is possible to extract the required architecture:

gabrielebiondo@MacBook-Pro MacOS Reverser % lipo MyApp -thin arm64 -output MyApp-arm64
gabrielebiondo@MacBook-Pro MacOS Reverser % ls -alh MyApp*                            
-rwxr-xr-x  1 gabrielebiondo  staff    20M  7 Aug 08:19 MyApp
-rwxr-xr-x  1 gabrielebiondo  staff   9.7M  7 Aug 08:19 MyApp-arm64

It is also possible to remove a given architecture from the binary:

lipo MyApp -remove x86_64 -output MyApp-no_x86_64

or merge more slices together:

lipo -create MyApp-arm64 MyApp-x86_64 -output MyApp-universal

Demo Lipo