C++ OCaml CMake Python C Java Other
Switch branches/tags
Nothing to show
Clone or download
6A and aquynh Refactor to target .NET Standard 1.1 (#344)
* Refactor to target .NET Standard 1.1

* Added Nuget details to .csproj

* Reviewed Engine methods and docs; added own Exception type.

* Added migration guide for .NET bindings.
Latest commit 0ab2b81 Aug 2, 2018
Permalink
Failed to load latest commit information.
bindings Refactor to target .NET Standard 1.1 (#344) Aug 2, 2018
debian Update Debian packaging to Ubuntu 18.04 (#352) May 10, 2018
docs Fix "Compare Keystone & LLVM" link (#332) Dec 21, 2017
include/keystone add Ethereum VM architecture Mar 30, 2018
kstool add Ethereum VM architecture Mar 30, 2018
llvm Fix x86 instruction prefix ordering (#340) Mar 31, 2018
samples add C sample for new option KS_OPT_SYM_RESOLVER in samples/sample.c Oct 2, 2016
suite Test+fix ARM Thumb2 ADR calculations (#329) Nov 29, 2017
.appveyor.yml appveyor: no file types May 1, 2016
.gitignore Introduction of the Java bindings (#364) Jul 18, 2018
.travis.yml add monitoring of brew builds (#325) Nov 5, 2017
AUTHORS.TXT import Apr 28, 2016
CMakeLists.txt Auto-detect install libdir to enable multi-arch debian builds (#345) Apr 1, 2018
CMakeUninstall.in support uninstall target. this fixes issue #21 May 2, 2016
COPYING import Apr 28, 2016
CREDITS.TXT Introduction of the Java bindings (#364) Jul 18, 2018
ChangeLog add ChangeLog & update RELEASE_NOTES Jul 27, 2016
EXCEPTIONS-CLIENT import Apr 28, 2016
LICENSE-COM.TXT fix contact address May 31, 2016
README.md add Java binding to README Jul 18, 2018
RELEASE_NOTES add ChangeLog & update RELEASE_NOTES Jul 27, 2016
SPONSORS.TXT import Apr 28, 2016
make-afl.sh afl fuzzer setup May 24, 2016
make-common.sh Don't build universal binaries by default (#366) Jul 25, 2018
make-lib.sh Don't build universal binaries by default (#366) Jul 25, 2018
make-share.sh Don't build universal binaries by default (#366) Jul 25, 2018
nmake-dll-x86.bat add nmake-dll-x86.bat May 9, 2017
nmake-dll.bat update nmake*.bat on the position of generated libraries Mar 13, 2017
nmake-lib.bat update nmake*.bat on the position of generated libraries Mar 13, 2017
pkg-config.pc.cmake Added ability to auto generate and install a keystone.pc file Jun 4, 2016

README.md

Keystone Engine

Build Status Build Status Build status

Keystone is a lightweight multi-platform, multi-architecture assembler framework. It offers some unparalleled features:

  • Multi-architecture, with support for Arm, Arm64 (AArch64/Armv8), Ethereum Virtual Machine, Hexagon, Mips, PowerPC, Sparc, SystemZ & X86 (include 16/32/64bit).
  • Clean/simple/lightweight/intuitive architecture-neutral API.
  • Implemented in C/C++ languages, with bindings for Java, Masm, C#, PowerShell, Perl, Python, NodeJS, Ruby, Go, Rust, Haskell, VB6 & OCaml available.
  • Native support for Windows & *nix (with Mac OSX, Linux, *BSD & Solaris confirmed).
  • Thread-safe by design.
  • Open source - with a dual license.

Keystone is based on LLVM, but it goes much further with a lot more to offer.

Further information is available at http://www.keystone-engine.org

License

Keystone is available under a dual license:

  • Version 2 of the GNU General Public License (GPLv2). (I.e. Without the "any later version" clause.). License information can be found in the COPYING file and the EXCEPTIONS-CLIENT file.

    This combination allows almost all of open source projects to use Keystone without conflicts.

  • For commercial usage in production environments, contact the authors of Keystone to buy a royalty-free license.

    See LICENSE-COM.TXT for more information.

Compilation & Docs

See COMPILE.md file for how to compile and install Keystone.

More documentation is available in docs/README.md.

Contact

Contact us via mailing list, email or twitter for any questions.

Contribute

Keystone is impossible without generous support from our sponsors. We cannot thank them enough!

CREDITS.TXT records other important contributors of our project.

If you want to contribute, please pick up something from our Github issues.

We also maintain a list of more challenged problems in a TODO list.