findcode-1.1.0.zip (info) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
FindCode helps to create "bin_map" and "bin_names" files used by FDisasm.
To use FindCode, place it in the same folder as a file named "bin" that you are trying to disassemble. Launch FindCode and you will see a simple text editing window. Type a location within the "bin" file that you believe contains code, in hexadecimal notation. For example, "2A" (without the quotes), for an offset of 42 (decimal) from the beginning of "bin". Then choose the "Go" command from the "File" menu.
Assuming there is code at offset 42, FindCode will find every instruction that it thinks can definitely be reached from there, and add this to the file "bin_map". (The file is created if it doesn't already exist.) It will also create labels for the targets of branches and other memory accesses within "bin" that it can identify, and add them to the file "bin_names". (This file also is created if it doesn't already exist.) It will not change labels that already exist in "bin_names".
If FindCode thinks that an invalid instruction can definitely be reached from the starting offset you specified, it will give an error message and make no changes to "bin_map" and "bin_names".
When FindCode is done, it will automatically launch FDisasm if it is located in the same folder. You can then enter other locations into FindCode and choose the "Go" command. FindCode will open and close the "bin_map" and "bin_names" files every time the "Go" command is chosen, so you can manually edit these files and still leave FindCode running.
You can specify more than one starting offset, separated by spaces or returns.
See the Compiling page for instructions on compiling FindCode from the source code.
You can redistribute FindCode and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation. See the included file COPYING.
FindCode is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details.
If you find FindCode useful, please consider helping the Gryphel Project, of which it is a part.