Version 0.9.1
July 27, 2016
We are thrilling to announce a stable release, version 0.9.1, of Keystone Engine!
- Full source code & precompiled binaries are available in the download section.
- A Github repo for Keystone is ready at https://github.com/keystone-engine/keystone.
- See documentation for how to compile and install Keystone.
- Learn quick from this tutorial on how to program with Keystone in C & Python.
This version fixes some important bugs inside the core of Keystone (especially X86 assembler), added some new bindings & made some minor improvements, without breaking compatibility. All users of Keystone are encouraged to upgrade to v0.9.1.
NOTE
: Keystone is now available on PyPi in keystone-engine package. This package includes the core, Cmake is required to build the shared library. Then Python users can easily install Keystone with:
$ sudo pip install keystone-engine
See below for the changelog.
Core & tool
- Fix a segfault in kstool (on missing assembly input).
- kstool now allows to specify instruction address.
- Build Mac libraries in universal format by default.
- Add “lib32” option to cross-compile to 32-bit *nix (on 64-bit system).
- Add “lib_only” option to only build libraries (skip kstool).
- New bindings: Haskell & OCaml.
X86
- Fix instructions: LJMP, LCALL, CDQE, SHR, SHL, SAR, SAL, LOOP, LOOPE, LOOPNE.
- Better handling a lot of tricky input caught by assert() before.
- Better support for Nasm syntax.
Arm
- Fix BLX instruction.
Python binding
- Better Python3 support.
- Expose
@stat_count
inKsError
class whenks_asm()
returns with error. See sample code inbindings/python/sample_asm_count.py
Go binding
- Fix Go binding for 32-bit