Skip to content

Releases: capstone-engine/capstone

Version 4.0

18 Dec 17:02
Compare
Choose a tag to compare

[ Core ]

  • New APIs: cs_regs_access()
  • Add new options for cs_option(): CS_OPT_MNEMONIC & CS_OPT_UNSIGNED & CS_OPT_SYNTAX_MASM.
  • Various updates & bugfixes for all architectures.
  • Add 4 new architectures: EVM, M68K, M680X & TMS320C64x.
  • Add new group types: CS_GRP_PRIVILEGE & CS_GRP_BRANCH_RELATIVE.
  • Add new error types: CS_ERR_X86_MASM.

[ X86 ]

  • Add XOP code condition type in x86_xop_cc.
  • Add some info on encoding to cs_x86 in cs_x86_encoding.
  • Add register flags update in cs_x86.{eflags, fpu_flags}
  • Change cs_x86.disp type from int32_t to int64_t.
  • Add new groups: X86_GRP_VM & X86_GRP_FPU.
  • Lots of new instructions (AVX)

[ ARM64 ]

  • Add instruction ARM64_INS_NEGS & ARM64_INS_NGCS.

[ Mips ]

  • Add mode CS_MODE_MIPS2.

[ PPC ]

  • Change cs_ppc_op.imm type from int32_t to int64_t.
  • Add new groups: PPC_GRP_ICBT, PPC_GRP_P8ALTIVEC, PPC_GRP_P8VECTOR & PPC_GRP_QPX.
  • Lots of new instructions (QPX among them)

[ Sparc ]

  • Change cs_sparc_op.imm type from int32_t to int64_t.

[ Binding ]

  • New bindings: PowerShell & VB6

Version 3.0.5

18 Jul 16:21
Compare
Choose a tag to compare

[ Core ]

  • Fix the include path for Android builds when building cstool.
  • Add posibility to disable universal build for Mac OS.
  • cstool: Separate instruction bytes by spaces.
  • Fix code path of pkg-config in Cmake.
  • Update XCode project for XCode 9.1.
  • Add Cortex-M support to cstool.
  • Cmake forces to be build using MT with MSVC.
  • Better support for Mac OS kernel.

[ X86 ]

  • Fix some issues in handling EVEX & VEX3 instructions.
  • Fix immediate operand for AND instruction in ATT mode.
  • Fix ATT syntax when imm operand is 0.
  • Better handle XACQUIRE/XRELEASE.
  • Fix imm operand of RETF.

[ ARM ]

  • Fix an integer overlow bug.

[ ARM64 ]

  • Bug fix for incorrect operand type in certain load/store instructions.

[ Mips ]

  • Mode CS_MODE_MIPS32R6 automatically sets CS_MODE_32

[ PPC ]

  • Fix endian check.

[ Sparc ]

  • Fix an integer overlow bug.

[ SystemZ ]

  • Fix an integer overlow bug.

[ Python binding ]

  • Raise error on accessing irrelevant data fields if skipdata & detail modes are enable.

Version 3.0.5-rc3

31 Jul 13:20
Compare
Choose a tag to compare
Version 3.0.5-rc3 Pre-release
Pre-release

Changelog:

Core

  • Fix compilation for MacOS kernel extension
  • cstool to support armbe and arm64be modes
  • Add nmake.bat for Windows build
  • Fix an integer overflow for Windows kernel driver
  • Support to embedded Capstone into MacOS kernel
  • cstool: fix mips64 mode
  • Fix a compiling error in MS Visual Studio 2015
  • Install pkgconfig file with CMake build
  • Fix SOVERSION property of CMake build
  • Properly handle switching to Endian mode at run-time for Arm, Arm64, Mips & Sparc
  • Fix MingW build
  • Better handle CMake installation for Linux 64bit

X86

  • Support BND prefix of Intel MPX extension
  • Correct operand size for CALL/JMP in 64bit mode with prefix 0x66
  • LOCK NOP is a valid instruction
  • Fix ATT syntax for instruction with zero offset segment register
  • LES/LDS are invalid in 64bit mode
  • Fix number of operands for some MOV instructions

ARM

  • Fix POP reg to update SP register
  • Update flags for UADD8 instruction

ARM64

  • Better performance with new lookup table
  • Handle system registers added in ARMv8.1/2

Visual Basic binding

  • New binding

Version 4.0-alpha5

17 Apr 13:33
Compare
Choose a tag to compare
Version 4.0-alpha5 Pre-release
Pre-release

Fix many bugs, and add new architecture TMS320C64X.

Version 3.0.5-rc2

02 Mar 16:07
Compare
Choose a tag to compare
Version 3.0.5-rc2 Pre-release
Pre-release

Version 4.0-alpha4

08 Jan 01:40
Compare
Choose a tag to compare
Version 4.0-alpha4 Pre-release
Pre-release

4.0-alpha4 release with some important bug-fixes from 4.0-alpha3 version.

Version 4.0-alpha3

20 Jul 14:44
Compare
Choose a tag to compare
Version 4.0-alpha3 Pre-release
Pre-release

4.0-alpha3 release with some important security bug-fixes from 4.0-alpha2 version.

Version 3.0.5-rc1

26 Jul 15:13
Compare
Choose a tag to compare
Version 3.0.5-rc1 Pre-release
Pre-release

Changelog:

Core

  • better support for embedding Capstone into Windows kernel drivers
  • support to embedded Capstone into MacOS kernel
  • support MacOS 10.11 and up
  • better support for Cygwin
  • support build packages for FreeBSD & DragonflyBSD

X86

  • some random 16-bit code can be handled wrongly.
  • remove abundant operand type X86_OP_FP
  • fix instructions MOVQ, LOOP, LOOPE, LOOPNE, CALL/JMP rel16, REPNE LODSD, MOV *AX, MOFFS, FAR JMP/CALL

ARM

  • properly handle IT instruction
  • fix LDRSB

Sparc

  • fix POPC instruction

Python binding

  • Better PyPy support
  • add version
  • better support for Python 3

Java binding

  • better handle input with invalid code

Version 4.0-alpha2

15 Jul 14:19
Compare
Choose a tag to compare
Version 4.0-alpha2 Pre-release
Pre-release

4.0-alpha2 release with some important security bug-fixes from 4.0-alpha1 version.

Version 3.0.4

15 Jul 14:18
Compare
Choose a tag to compare

ChangeLog

Library:

  • Improve cross-compile for Android using Android NDK.
  • Support cross-compile for AArch64 Android (with Linux GCC).
  • Removed osxkernel_inttypes.h due to license issue (incompatible with BSD license).
  • Now it is possible to compile with CC having a space inside (such as "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.

PowerPC:

  • Fixed some memory corruption bugs.

Mips:

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

Arm:

  • Fixed a memory corruption bug on IT instruction.

XCore:

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

Python:

  • 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.