Metadata-Version: 2.1
Name: gtirb-capstone
Version: 1.1.1
Summary: Utilities for rewriting GTIRB with capstone and keystone
Author-email: "GrammaTech, Inc." <gtirb@grammatech.com>
License: MIT
Project-URL: Homepage, https://github.com/grammatech/gtirb-capstone
Project-URL: Repository, https://github.com/grammatech/gtirb-capstone.git
Project-URL: Issues, https://github.com/GrammaTech/gtirb/issues
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: capstone >=5.0
Requires-Dist: gtirb >=1.10.9
Requires-Dist: keystone-engine >=0.9.2
Requires-Dist: typing-extensions ~=4.5
Requires-Dist: capstone >=5.0.3 ; python_version >= "3.12"
Requires-Dist: typing-extensions ~=4.6 ; python_version >= "3.12"

GTIRB-Capstone
==============

Integration between GTIRB and the Capstone/Keystone libraries.

## Abstract
GTIRB explicitly does not include any notion of instructions or
instruction semantics.  In general this is desirable as most tools
have their own intermediate languages and corresponding
encoders/decoders to deal with instructions.  However, in many cases
the high-quality Capstone/Keystone decoder/encoder libraries provide
sufficient instruction information for binary analysis and
transformation.  These libraries provide exceptional coverage of
multiple ISAs and are widely used.  GTIRB-Capstone integrates GTIRB
with the Capstone disassembler and the Keystone assembler allowing for
transparent access to instructions in GTIRB instances.

## Dependencies

This package requires:

 - [keystone](https://github.com/keystone-engine/keystone.git)
   To install keystone run:
   ```
   git clone https://github.com/keystone-engine/keystone.git
   cd keystone
   mkdir build
   cd build
   ../make-share.sh
   make install
   ldconfig
   ```

## Development
You can create a virtual environment for development using tox:
```
tox -e venv
. venv/bin/activate
```

This repository uses pre-commit to enforce code formatting. You should
have pre-commit installed. To activate pre-commit in this repository run:

```
pre-commit install
```

To run the tests execute tox:
```
tox
```

## Copyright and Acknowledgments

Copyright (C) 2020 GrammaTech, Inc.

This code is licensed under the MIT license. See the LICENSE file in
the project root for license terms.

This project is sponsored by the Office of Naval Research, One Liberty
Center, 875 N. Randolph Street, Arlington, VA 22203 under contract #
N68335-17-C-0700.  The content of the information does not necessarily
reflect the position or policy of the Government and no official
endorsement should be inferred.
