Version 3.0.4

July 15, 2015

We are excited to announce the stable version 3.0.4 of Capstone disassembly framework!

This release fixes some important security issues, so all users are strongly recommended to uprade.

The source code is available in zip and tar.gz formats, or at tagname 3.0.4 in our Github repo.

Find pre-compiled binaries in the Download section.

For any issues, please feed back via our contact.

NOTE

  • Do use the Python bindings come with this version, as we fixed some issues of version 3.0.3.

See file bindings/python/README in the source on how to do fresh-install.

  • Our Python package capstone on PyPi can build & install the core at the time of installing Python module, so the external dependency on the core is eliminated.

Windows users can either instal Python binding of Capstone from Windows installer, or using our PyPi package capstone-windows. Note that this already includes the prebuilt libraries (for both Win32 & Win64 editions) inside, so there is no need to install the core separately.


Summary of the important changes of version 3.0.4.

Library

  • Improve cross-compile for Android using Android NDK.
  • Support cross-compile for AArch64 Android (with Linux GCC).
  • Removed osxkernel_inttypes.h that is incompatible with BSD license.
  • Make it possible to compile with CC having a space inside (like "ccache gcc").

X86

  • Fix a null pointer dereference bug on handling code with special prefixes.
  • Properly handle AL/AX/EAX operand for OUT instruction in AT&T syntax.
  • Print immediate operand in positive form in some algorithm instructions.
  • Properly decode some SSE instructions.

Arm

  • Fixed a memory corruption bug on IT instruction.

Mips

  • Fixed instruction ID of SUBU instruction.
  • Fixed a memory corruption bug.

PowerPC

  • Fixed some memory corruption bugs.

XCore

  • Fixed a memory corruption bug when instruction has a memory operand.

Python binding

  • Support Virtualenv.
  • setup.py supports option --user if not in a virtualenv to allow for local usage.
  • Properly handle the destruction of Cs object in the case the shared library was already unloaded.