capstone

Capstone disassembly/disassembler framework for ARM, ARM64 (ARMv8), BPF, Ethereum VM, M68K, M680X, Mips, MOS65XX, PPC, RISC-V(rv32G/rv64G), SH, Sparc, SystemZ, TMS320C64X, TriCore, Webassembly, XCore and X86.

OTHER License

Stars
7K
Committers
307

Bot releases are hidden (Show)

capstone - Version 5.0.1 Latest Release

Published by kabeor about 1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/capstone-engine/capstone/compare/5.0...5.0.1

capstone - Version 5.0 post1

Published by kabeor over 1 year ago

This version exists to fix the issue of the same name that we yanked V5.0 on PyPI caused. The code is still the same as V5.0.

Full Changelog: https://github.com/capstone-engine/capstone/compare/5.0...5.0-post1

capstone - Version 5.0

Published by kabeor over 1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/capstone-engine/capstone/compare/4.0.1...5.0

capstone - Version 5.0-rc4

Published by kabeor over 1 year ago

capstone - Version 5.0-rc3

Published by kabeor over 1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/capstone-engine/capstone/compare/5.0-rc2...5.0-rc3

capstone - Version 5.0-rc2

Published by aquynh over 2 years ago

Improvements:

  • Fix for python publish build (#1844)
  • Modernize CMake and switch to CMake 3.15 (#1841)
  • Fix AArch64 ldapr detailed information (#1840)
  • Fix incorrect MI->ac_idx leading to wrong AArch64 InsnOp access printing (#1845)

Contributors:

  • @stevielavern
  • @mrexodia
  • @kabeor
capstone - Version 5.0-rc1

Published by aquynh over 2 years ago

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
capstone - Version 4.0.2

Published by aquynh over 4 years ago

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
capstone - Version 4.0.1

Published by aquynh almost 6 years ago

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.
capstone - Version 4.0

Published by aquynh almost 6 years ago

[ 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
capstone - Version 3.0.5

Published by aquynh about 6 years ago

[ 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.
capstone - Version 3.0.5-rc3

Published by aquynh about 7 years ago

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
capstone - Version 4.0-alpha5

Published by aquynh over 7 years ago

Fix many bugs, and add new architecture TMS320C64X.

capstone - Version 3.0.5-rc2

Published by aquynh over 7 years ago

See http://www.capstone-engine.org/Version-3.0.5-RC2-changelog for details on important changes.

capstone - Version 4.0-alpha4

Published by aquynh almost 8 years ago

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

capstone - Version 3.0.5-rc1

Published by aquynh about 8 years ago

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
capstone - Version 4.0-alpha3

Published by aquynh about 8 years ago

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

capstone - Version 4.0-alpha2

Published by aquynh over 9 years ago

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

capstone - Version 3.0.4

Published by aquynh over 9 years ago

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.
capstone - Version 4.0-alpha1

Published by aquynh over 9 years ago

See here for the changelog of this alpha version: https://github.com/aquynh/capstone/wiki/ChangeLog-4.0-alpha1

Badges
Extracted from project README
Build status pypi package pypi downloads oss-fuzz Status
Related Projects