cxmon is an interactive command-driven file manipulation tool that is inspired by the "Amiga Monitor" by Timo Rossi.The project has commands and features similar to a machine code monitor/debugger, but it lacks any functions for running/tracing code.
There are, however, built-in PowerPC, 680x0, 80x86 (including x86-64), 6502 and Z80 disassemblers, and special support for disassembling MacOS code.
Usage: ./cxmon [-m] [-r] [command...]
What can I do with cxmon?
The primary intention behind cxmon was to provide a tool for emulation developers and other people that need to manipulate or inspect binary data and machine code. It has been an invaluable tool during the development of Basilisk II, SheepShaver and Frodo. Possible uses of cxmon include:
· disassembling executables in non-native formats, including raw formats like ROM images
· analyzing boot blocks
· patching program files
· removing unneeded headers from binary data files
You can also simply use it as an interactive workbench for manipulating files, or even as a hex calculator.
Here are some simple examples of what is possible with cxmon:
Join "file1" and "file2" to "file3"
[ 0 "file1"
[ . "file2"
] 0 . "file3"
Remove the first 24 bytes (e.g. an unneeded header) from a file
[ 0 "file"
] 18 .-18 "file"
Convert a four-character-code to its hex and decimal values
Disassemble LILO boot code
[ 0 "/boot/boot.0800"
Create a modified version of cxmon that has " $" instead of "->" as a prompt
[ 0 "cxmon"
h 0 . "->"
: . " $"
] 0 size "cxmon1"
Convert a binary file which contains 16-bit numbers in little-endian format to big-endian format (or vice-versa)
[ 0 "file"
yh 0 .-1 :>>8|: