A Binary Ninja architecture plugin providing support for the HCS08 family of instructions.
This architecture plugin provides support for the disassembling and lifting of HCS08 instructions.
- Full disassembly support for the HCS08 family of instructions
- Partial lifting to Binary Ninja's low level IL
- Testing for proper info/text generation
The easiest way to use this plugin is to download and install a pre-compiled release binary.
- Dowload the shared library corresponding to your OS/arch from the latest GitHub Release
- Copy the downloaded binary to your Binary Ninja plugin directory (e.g.
~/.binaryninja/plugins/) - Start Binary Ninja
- Binary Ninja (minimum version:
5.1.8104) - CMake 3.15 or higher
- C++20 compatible compiler
- Google Test (pulled in automatically via CMake during build)
# Clone the binja API
git clone https://github.com/Vector35/binaryninja-api.git
cd binaryninja-api
# Set up CMake files
echo -e "\nadd_subdirectory(plugins)" >> CMakeLists.txt
echo -e "\nadd_subdirectory(hcs08)" >> plugins/CMakeLists.txt
# Download HCS08 architecture source
cd plugins
git clone https://github.com/idaholab/bn-hcs08-arch.git
cd ..
# Build
cmake -DCMAKE_BUILD_TYPE=release -DHEADLESS=yes .
cmake --build . --target all -j
# Install
cp out/bin/libhcs08.so ~/.binaryninja/plugins/libhcs08.so- Open Binary Ninja and select "Open with Options..."
- Under "Load Options", set your entry point offset and image base
- Choose
hcs08from the "Platform" dropdown menu - Open the binary file and wait for auto-analysis to complete
Note that you may need to manually define functions or customize your binary view for the file to load properly
To build with debug symbols, follow the instructions above to build from source but change the build type to debug:
cmake -DCMAKE_BUILD_TYPE=debug -DHEADLESS=yes .This architecture supports testing for some instruction info and text generation. See the *_test.cpp files for details.
A test binary named hcs08_architecture_test is automatically created in the project directory when building.
To run the tests, simply execute this binary. We welcome additional pull requests to further enhance this test suite!
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
While every effort was made to ensure the accuracy of this plugin, you may still encounter bugs such as:
- Improperly disassembled instructions
- Missing instructions
- Typos
If you encounter a bug, please consider opening an issue or pull request!
Additionally, not all instructions have been lifted to LLIL. We welcome pull requests to help complete this task!
Licensed under MIT.
See LICENSE file for details.
Please see the NOTICE file for details.
If you encounter issues with this repository, please create an issue.