Releases: capstone-engine/capstone
Version 5.0-rc1
New features:
- Add arch BPF (#1388)
- Add arch RISCV (#1401)
- Add arch WASM (#1359)
- PyPI workflow (#1645)
- Option to generate install target (#1698 #1700)
- Swift binding (#1707)
- Add CI Test support (#1797)
- Add benchmark (#1811)
Improvements:
- Add fixups for aarch64 instructions (#1632 #1655)
- Add fixups for x86 instructions (#1644 #1657 #1689 1751)
- Add fixups for m68k instructions (#1663 #1709)
- Add fixups for m680x instructions (#1695)
- Add fixups for mips instructions (#1674)
- Add fixups for mos65xx instructions (#1702)
- Add fixups for systemz instructions (#1679)
- Add fixups for risc-v instructions (#1682 #1690 #1691)
- Add fixups for ppc instructions (#1687 #1688)
- Add cmake config and export targets (#1637)
- Fix issues in Makefiles (#1639)
- Fix issues about cmake builds (#1649 #1659)
- MSVC tooling updates (#1651)
- Fix crash when using skipdata with NULL mnemonic(#1703)
- Fix python only use ascii character (#1704)
- Add support for aarch64 distributions (#1720)
- Fix registry access for several versions of pop such as POPDS, POPSS, etc. (#1725)
- Fix registry access on cmov instructions (#1727)
- Fix -Wstringop-truncation warnings (#1730)
- Fix always return the same type from regs_read (#1736)
- Fix inconsistent behavior of Mips_option() (#1744)
- Fix pythonic bug (#1745)
- Fixes the (pip) Python Module build on FreeBSD (#1750)
- Enable detection and build on all BSD systems (#1753)
- Fix the displacement offset for moffset-encoded operands (#1754)
- Update cmake_minimum_required to version 2.8.12 (#1756)
- Fixed typos in compilation steps (#1762)
- Fix build android (#1765)
- Support disassembling bytes from memoryview (#1773)
- Fixed library extension to build properly under CYGWIN (#1791)
- Add Capstone Engine Documentation (#1794)
- Fix eflags effects for adc/sbb (#1798)
- Update x86 operand access information (#1801)
- CI automatically build release tarball (#1802)
- Dont format sstreams when there's nothing to format (#1805)
- Fix warning about Unused variables (#1815)
- Fix insn initialization when instruction have no operands or have a prefix (#1816)
- Avoid abort() if x86 not supported (#1818)
- Fix unterminated string regression (#1819)
- Fixed incorrect operand access on x86 instruction vmovdqu (#1823)
Contributors:
- @ekilmer
- @mcmtroffaes
- @sh1r4s3
- @emoon
- @chfl4gs
- @heshpdx
- @hmoenck
- @cyanpencil
- @NicolasDerumigny
- @trofi
- @maximumspatium
- @junchao-loongson
- @carenas
- @notyourusualaccountname
- @rth7680
- @StalkR
- @aeflores
- @TobiasFaller
- @XVilka
- @meme
- @zydeco
- @catenacyber
- @michalsc
- @urbas
- @keenk
- @kazarmy
- @learn-more
- @veritas501
- @trufae
- @cederom
- @Quentin01
- @jranieri-grammatech
- @scribam
- @huettenhain
- @lbj-the-goat
- @wheremyfoodat
- @Jaysonicc
- @huettenhain
- @syscl
- @bezita
- @Smartsmurf
- @tmfink
- @kazarmy
- @rofl0r
- @bSr43
- @wtdcode
- @dropTableUsers42
- @carenas
- @owlxiao
- @mxz297
- @SpikeI
- @catenacyber
- @david942j
- @fanfuqiang
- @aquynh
- @kabeor
Version 4.0.2
Release 4.0.2 is a stable release version, with bugfixes in the core & some bindings.
Core
- Windows kernel-mode driver support
- Fix installation path on FreeBSD and DragonFly
cstool
- Add armv8, ppc32 & thumbv8 modes
- Print instruction ID
X86
- Support CS_OPT_UNSIGNED for ATT syntax
- Fix operand size for some instructions
- Fix LOCK prefixes
- Recognize xacquire/xrelease prefix
- Fix call/jmp access mode of mem operand
- Add ENDBR32, ENDBR64 to reduce mode
- Other minor fixes
ARM64
- Support CS_OPT_UNSIGNED
- Fix register access flags for memory instructions
- Fix UMOV vess
ARM
- Update writeback for STR_POST_REG
M68K
- Store correct register value in op.reg_pair
PowerPC
- BDZLA is absolute branch
SystemZ
- Fix truncated 64bit imm operand
- Fix base/index printing
Python
- Fix skipdata struct being destroyed
- Add repr for capstone.CsInsn
Java
- Fix Java bindings to use pointers instead of longs
Ocaml
- Fix x86_op record
Version 4.0.1
This release fixes some minor bugs of v4.0, as well as introduces some improvements for Python binding.
[ Core ]
- Fix some issues for packaging (Debian, Gentoo).
- Better support for building with Mingw.
- cstool has new option -s to turn on skipdata mode.
- cstool -v now report build settings of the core.
- Add suite/capstone_get_setup.c so users can integrate with their own code
to retrieve Capstone settings at build time.
[ Arm ]
- Fix 4.0 regression: the
tbh [r0, r1, lsl #1]
instruction sets the operand.shift.value back again. - Remove ARM_REG_PC group for BX instruction.
[ X86 ]
- Fix: endbr32 and endbr64 instructions are now properly decoded in both CS_MODE_32 and CS_MODE_64.
[ M680X ]
- Fix some issues reported by clang-analyzer.
[ Python ]
- Fix skipdata setup.
- Add getter/setter for skipdata_mnem, skipdata_callback.
Version 4.0
[ 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
[ 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
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
Fix many bugs, and add new architecture TMS320C64X.
Version 3.0.5-rc2
See http://www.capstone-engine.org/Version-3.0.5-RC2-changelog for details on important changes.
Version 4.0-alpha4
4.0-alpha4 release with some important bug-fixes from 4.0-alpha3 version.
Version 4.0-alpha3
4.0-alpha3 release with some important security bug-fixes from 4.0-alpha2 version.