Releases: capstone-engine/capstone
Releases · capstone-engine/capstone
Version 5.0-rc3
What's Changed
- update pkgconfig version by @kabeor in #1847
- vb6 bindings: clarify license as Apache v2.0 by @dzzie in #1850
- AArch64 SYS instruction operands by @adamjseitz in #1859
- AArch64: fix missing VAS specifiers in aliased instructions by @adamjseitz in #1860
- Add
cstool
in CMake Package Config + CMake Github Workflow by @theblackunknown in #1867 - Fix pkgconfig not installed when CAPSTONE_BUILD_CSTOOL is false by @theblackunknown in #1870
- AArch64 comprehensively add vas specifiers to aliased instructions by @adamjseitz in #1877
- Fix pkg-config template by @hamarituc in #1878
- Fix eBPF lddw opcode by @terorie in #1885
- Add eBPF callx instruction by @terorie in #1886
- Mark cs_* as thread local to avoid race condition in multithreads by @wtdcode in #1891
- One semicolon is enough in C by @trufae in #1892
- Add PowerPC paired-singles support by @terorie in #1898
- Update the table for UD0 and UD1 with the latest llvm table by @junghee in #1863
- Sync eBPF and PowerPC bindings by @terorie in #1900
- Fix PPC insn names and psq displacement by @terorie in #1902
- Fix -Werror build by @trufae in #1906
- Remove outdated ctypes requirement by @jbott in #1910
- Fix memory leak in testsuite by @hamarituc in #1919
- PPC: fix out of bound memory access by @hamarituc in #1913
- AArch64 armv9.2 update by @FinnWilkinson in #1907
- m68k: Add support for the FNOP instruction by @huth in #1921
- arm64: fix invalid free introduced in 662bb3f by @trufae in #1926
- Fixed SME index alias printing issue. by @FinnWilkinson in #1925
- Updated Arm64 python bindings after Armv9.2-a support. by @FinnWilkinson in #1932
- ARM/AArch64: Add post-index to instruction info by @ZehMatt in #1937
- Fix regressions in custom memory allocator support by @oleavr in #1934
- cstool: support riscv compressed instruction disassemble by @rrwhx in #1940
- Mention debug build option for cmake. by @Rot127 in #1942
- cstool: avoid misaligned instructions in compressed riscv by @carenas in #1943
- arm64: fix missing post_index by @HyperSine in #1944
- Add
CMAKE_EXPORT_COMPILE_COMMANDS
to cmake build doc by @Rot127 in #1948 - Fix potential array out of bounds by @mjunix in #1938
- Add Renesas SuperH instructions support by @ysat0 in #1927
- fix missing access field in arm64 java binding by @sunxingxing in #1959
- Update python bindings to fix ARM in detail mode. by @wideglide in #1961
- sh: add missing include for CMake install step by @SweetVishnya in #1964
- Fix CITest && python binding issues by @kabeor in #1965
- correct register accesses for ARM's sxtb/uxtb and similar instructions by @covanam in #1968
- In x86: Fixed backward compatibility with C90 by @hasherezade in #1969
- Fix for missing register usages on ARM64 authenticated branches (issue #1975) by @stevielavern in #1976
- AArch64: fixes register access flags for moves by @thomasdangl in #1974
- [SH] Fix build warnings by @Rot127 in #1960
- update CI ubuntu version by @kabeor in #1986
- fix cstest
Makefile
by @imbillow in #1989 - fix: compile error missing file cstool msvc/visual studio by @raigorx in #2000
- Fix missing
NOTRACK
prefix by @junghee in #2002 - Fix make builds with SH support by @trufae in #2006
- Add missing architectures in the readme and sort them by @trufae in #2008
- Add TriCore Architecture by @imbillow in #1973
- Fix compilation warnings related to TriCore. by @imbillow in #2012
- Fix SH build warnings. by @Rot127 in #2016
- Tricore fix the negative call and jump by @imbillow in #2018
- [SH] Fix warnings about unhandled switch cases by adding defaults. by @Rot127 in #2017
- Tricore fix disp fill and ctest build by @imbillow in #2019
- Fix disassemble of
xor
by @imbillow in #2023 - Fix register accesses & operands of multiple ARMv8.3 PAC instructions by @stevielavern in #2022
- Add missing arm64 to Darwin LIBARCHS and remove dependencies tracking… by @gdbinit in #2024
- Fix tricore compile warning by @imbillow in #2027
- [PPC] Fix random branch hint and
update_cr0
set up. by @Rot127 in #2028 - Fix #2032 by @Rot127 in #2033
- Add operands access support for TriCore by @imbillow in #2034
- Hotfix for
-DCAPSTONE_DIET
build. by @Rot127 in #2038 - Fix Python bindings after changes to cs_detail by @peace-maker in #2041
- RISCV: Add call, int and branch_relative instruction groups by @peace-maker in #2007
- Re-fix pkgconfig includedir/Cflags by @orlitzky in #2046
- Update ChangeLog to 5.0.0-rc3 by @kabeor in #2047
New Contributors
- @adamjseitz made their first contribution in #1859
- @theblackunknown made their first contribution in #1867
- @hamarituc made their first contribution in #1878
- @terorie made their first contribution in #1885
- @junghee made their first contribution in #1863
- @jbott made their first contribution in #1910
- @FinnWilkinson made their first contribution in #1907
- @huth made their first contribution in #1921
- @ZehMatt made their first contribution in #1937
- @rrwhx made their first contribution in #1940
- @Rot127 made their first contribution in #1942
- @HyperSine made their first contribution in #1944
- @mjunix made their first contribution in #1938
- @ysat0 made their first contribution in #1927
- @sunxingxing made their first contribution in #1959
- @wideglide made their first contribution in #1961
- @SweetVishnya made their first contribution in #1964
- @covanam made their first contribution in #1968
- @thomasdangl made their first contribution in #1974
- @imbillow made their first contribution in #1989
- @raigorx made their first contribution in #2000
- @peace-maker made their first contribution in https://github.com/capstone-engine/capstone/pul...
Version 5.0-rc2
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.