Skip to content
Snippets Groups Projects
  1. Jun 13, 2020
  2. Jun 12, 2020
  3. Jun 10, 2020
  4. Jun 09, 2020
  5. May 07, 2020
  6. Apr 13, 2020
  7. Feb 15, 2020
    • Edward Larson's avatar
      Remove bounds check on ppc branch instructions target address (fix issue 423) (#428) · 4d060561
      Edward Larson authored
      (cherry picked from commit 06afb493e09cb7591fedf17cc5b06f9a865b385c)
      4d060561
    • turekt's avatar
      Update keystone-binding.go to fix issue #363 (#426) · ccbb743b
      turekt authored
      When trying to execute `make install` inside the go binding sample, the output shows an error that is specified by guitmz in issue #363 
      
      Adding the missing cgo LDFLAGS resolves this issue.
      ccbb743b
    • Daniel Henry-Mantilla's avatar
      Fix Rust bindings (#437) · 27d86048
      Daniel Henry-Mantilla authored
      - A bool coming from C cannot be trusted; functionally it is a c_int,
          and conversion to bool must be done by comparing to 0;
      
        - similarly, a `#[repr(C)]` enum cannot be trusted to be a `u32`;
          it is more often than not a `c_int`. This could cause breakage with
          the ABI of the C functions of the binding. So the signatures and
          enum definitions have been adapted based on the
          `include/keystone/keystone.h` definitions.
      
        - and most importantly: a ks_handle is a `ks_engine *` in C parlance,
          and using `size_t` to represent it is not the right way. Moreover,
          so doing prevents the `Sync` and `Send` traits from being
          auto-unimplemented, meaning that this is implicitly asserting that
          keystone is multithread-safe, even for the same instance. If that is
          the case, then a `unsafe impl Sync for Keystone {}` (ditto for
          `Send`) should be added to make such assertion explicit.
      
          That's why an opaque type using the classic Rust idiom of a
          zero_sized #[repr(C)] struct has been made (while waiting for Rust
          to feature external types), and `Option<ptr::NonNull<_>>` is being
          used as the pointer type (equivalent to *mut _), but it allows to
          communicate nullable / non-nullable invariants at the type-level.
          This has then been transposed to the internals of keystone-rs.
      27d86048
    • Phoebe's avatar
      Add vcpkg installation instructions (#449) · 343fbe0e
      Phoebe authored
      343fbe0e
  8. Dec 31, 2019
  9. Nov 22, 2019
  10. Aug 02, 2019
  11. Feb 08, 2019
  12. Jan 21, 2019
    • Trey Keown's avatar
      Fix ADRP instruction encoding (#396) · 622fe092
      Trey Keown authored
      * Fix ADRP instruction encoding
      
      * Trigger checks on PR again, it failed for some reason unrelated to my code
      
      * Add correct offset checks back in
      622fe092
  13. Dec 08, 2018
  14. Sep 24, 2018
  15. Sep 17, 2018
  16. Sep 16, 2018
  17. Sep 13, 2018
  18. Sep 11, 2018
  19. Aug 02, 2018
  20. Jul 25, 2018
    • bsharet's avatar
      Don't build universal binaries by default (#366) · 3ea06c9e
      bsharet authored
      * Don't build universal binaries by default
      
      Starting Xcode 10 beta, there's no support for i386.
      This commit changes the default build on iOS to regular libraries
      instead of universal binaries.
      Build of universal binaries is still supported with macos-universal.
      
      * Add macos-no-universal option (compatibility)
      
      Keep the default to be macos-no-universal, but add it as an option as
      well for backward compatibility.
      3ea06c9e
  21. Jul 18, 2018
    • Nguyen Anh Quynh's avatar
      add Java binding to README · e4d73ee0
      Nguyen Anh Quynh authored
      e4d73ee0
    • Jämes Ménétrey's avatar
      Introduction of the Java bindings (#364) · 097dca27
      Jämes Ménétrey authored
      * 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.
      097dca27
  22. May 10, 2018
Loading