3 Commits

Author SHA1 Message Date
Edward Larson 4f5401601b Fix for issue #427 (#429)
* Add support for MSP430

* Fix test-all.sh

* Use corrected TableGen output files

* Fix bindings for EVM and MSP430

* Remove LLVM_CONSTEXPR (like upstream LLVM did) and fix Java binding

See https://github.com/llvm-mirror/llvm/commit/6feedc56f7855aa24baf759f3bc17112ecbf5699#diff-d14f03e012a2bdbf93486dc1c4ce95ec

* Revert bindings

* Remove added files as well

* Add back changes for bindings created by const_gnerator

* Add back changes for other bindings

* Update CREDITS.TXT

* Fix ADRP instruction encoding

* Trigger checks on PR again, it failed for some reason unrelated to my code

* Add correct offset checks back in

* added llvm support post jan 2

* Remove bounds check on ppc branch instructions target address (fix issue 423)

* Fix vm address reset in aliased PPC instructions

* Fix vm address reset in aliased PPC instructions

(cherry picked from commit 06425a32f3)

* Remove bounds check on ppc branch instructions target address (fix issue 423)

(cherry picked from commit 06afb493e0)

* Clean up test for issue #427

Co-authored-by: Trey Keown <trey@redballoonsecurity.com>
Co-authored-by: Dan Pesce <dan@redballoonsecurity.com>
Co-authored-by: Trey Keown <jfktrey@gmail.com>
Co-authored-by: Nguyen Anh Quynh <aquynh@gmail.com>
2020-06-14 16:04:10 +08:00
Banny 34fcbe400d Bug fix (#408)
Bug fix for win32 jna access
2019-08-02 21:43:11 +08:00
Jämes Ménétrey 097dca275a Introduction of the Java bindings (#364)
* Add the structure for the Java Bindings

Set up the structure hosting the Java bindings using JNA,
and provides a binding for the function ks_version.

* Ignore the compiled extension of macOS libraries.

* Add infrastructure to open and close Keystone handles.

Keystone enumerations have been added, as well as the required
wrappers for JNA to convert the enumerations to and from the
native library.

Create exceptions for handling issues related to Keystone.

Implement a cleaner that automatically collect any opened
Keystone handles when a Keystone instance is garbage collected.

* The close method of Keystone is now thread-safe.

* Rename the exception KeystoneOpenFailedException into OpenFailedKeystoneException.

* Add the assemble function into the wrapper of Keystone.

* Enhance the exceptions thrown by Keystone using ks_strerror.

The exception classes have been refactored to shorten hardcoded
error messages into the wrapper and instead, rely on the error
messages generated by the native library, thanks to the function
ks_strerror.

* Add the ability to check with a given architecture is supported.

Enhance the wrapper to map the function function ks_arch_supported
in order to determine whether a given architecture is supported.

* Add the features the change the assembly syntax and resolve symbols.

Enhance the wrapper in order to support the changes of options.

* Document the class KeystoneEncoded.

* Add additional unit tests for a better coverage.

* Reorder the native functions import and document the native functions prototype.

* Optimize the code.

* Add the target folder to the gitignore.

* Add missing Javadoc annotations for the exceptions.

* Add a gitkeep for the folder hosting the Keystone library for macOS.

* Update the Maven configuration for version and dependencies.

Use the version convention defined in the README, add a couple
of testing dependencies and plugins to package the bindings in
a fat JAR and enable Maven to use jUnit 5.

* Use JNA Direct Mapping for better performances on native function calls.

* Add the README.

* Add myself to the credits :)

* Use the syntax highlighting of Java in the README.

* Fix a typo.

* Optimize imports.

* Add predefined folders hosting the library Keystone on Windows.

* Add the Java bindings to the README of the bindings summary.
2018-07-18 14:05:01 +08:00