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