Go to file
Rot127 3fc2d57e48
v6 Alpha4 update (#2670)
* Fix wrong version requirement of tricore instructions: (#2620)

crc32.b
crc32b.w
crc32l.w
crcn
popcnt.w
shuffle

Remove invalid instruction:
BISR_rc_v161

Learn up misconfigure of nor and not

* Switch to ubuntu-24.04-arm runner image (#2625)

* Build Tarball before DEB/RPM package. (#2627)

Because it was run after the RPM/DEB package build it contained the 'build' directory
with all its files. Which made it way too big.

* Add aliases mapping for MIPS & test for id, alias_id (#2635)

* Add checks for MIPS details on cstest_py (#2640)

* Give the user some guidance where to add missing enumeration values. (#2639)

* - Added missing files for sdist archive (#2624)

* cmake: Fix building capstone as sub-project (#2629)

* cmake: Use PROJECT_SOURCE_DIR instead of CMAKE_SOURCE_DIR

capstone can be built as sub-project through cmake's fetch_content
mechanism. In this case, `CMAKE_SOURCE_DIR` refers to the parent project
(that has nothing to do with capstone), while `PROJECT_SOURCE_DIR` refers
to the root of the capstone source tree.

Recently introduced changes to enable CPack (#2590) are using the wrong
variable and are hence breaking builds that use capstone through
fetch_content. Use the correct variable to fix this issue.

* cmake: Only include cpack in top-level builds

Do not include cpack in builds where capstone is used through
fetch_content.

* Update operand type enums of all arch modules to the one in `capstone.h` (#2633)

* Set all operand types to the main CS_OP_ types from capstone.h.

* Add test cases from issue.

* Enhance shift value and types of shift instructions. (#2638)

* Enhance shift value and types of shift instructions.

Shifts via registers now save the register id in cs_arch64_op.shift.value
and set the shift type accordingly.

* Sort table

* Fix build for compilers requiring explicit static for inline functions.. (#2645)

* Tms32c64x Little Endian (#2648)

* Add little endian support for TMS320c64x.
This requires now to initialize TMS320c64x with the
CS_MODE_BIG_ENDIAN flag.

* Fix typo

* Add Call group to svc, smc and hvc. (#2651)

* Decode BH field in print_insn_detail_ppc (#2662)

---------

Co-authored-by: Changqing  Jing <changqing.jing@bmw.com>
Co-authored-by: @Antelox <anteloxrce@gmail.com>
Co-authored-by: Giovanni <561184+wargio@users.noreply.github.com>
Co-authored-by: Philipp Wagner <mail@philipp-wagner.com>
Co-authored-by: Tim Haines <thaines.astro@gmail.com>
2025-04-02 11:26:42 +08:00
.github v6 Alpha4 update (#2670) 2025-04-02 11:26:42 +08:00
.reuse [Auto-Sync] LLVM 18 update (#2296) 2024-04-22 11:55:44 +08:00
LICENSES Create debian and rpm package on releases (#2590) 2025-01-20 22:50:31 +08:00
arch v6 Alpha4 update (#2670) 2025-04-02 11:26:42 +08:00
bindings v6 Alpha4 update (#2670) 2025-04-02 11:26:42 +08:00
contrib Documentation updates (#2476) 2024-09-23 11:26:56 +08:00
cstool v6 Alpha4 update (#2670) 2025-04-02 11:26:42 +08:00
docs Update BPF arch (#2568) 2024-12-15 20:46:45 +08:00
include v6 Alpha4 update (#2670) 2025-04-02 11:26:42 +08:00
packages Create debian and rpm package on releases (#2590) 2025-01-20 22:50:31 +08:00
suite v6 Alpha4 update (#2670) 2025-04-02 11:26:42 +08:00
tests v6 Alpha4 update (#2670) 2025-04-02 11:26:42 +08:00
windows Fix user data alignment in MEMBLOCK (#1471) 2019-05-09 10:24:47 +08:00
windowsce Documentation updates (#2476) 2024-09-23 11:26:56 +08:00
xcode fix typos (#2346) 2024-05-12 21:17:20 +08:00
.appveyor.yml rename appveyor.yml to .appveyor.yml 2016-03-15 00:01:10 +08:00
.clang-format Add `.clang-format` and format 2023-05-30 11:09:37 +08:00
.dockerignore Change CI to create Debian Package to Release (#2521) 2024-11-04 20:32:53 +08:00
.editorconfig Add OCaml to EditorConfig 2022-07-23 10:46:03 +02:00
.gitattributes Change CI to create Debian Package to Release (#2521) 2024-11-04 20:32:53 +08:00
.gitignore Rebased #2570 (#2614) 2025-01-28 22:34:24 +08:00
.gitmodules Architecture updater (auto-sync) - Updating ARM (#1949) 2023-07-19 17:56:27 +08:00
BUILDING.md Rebased #2570 (#2614) 2025-01-28 22:34:24 +08:00
CMakeLists.txt v6 Alpha4 update (#2670) 2025-04-02 11:26:42 +08:00
CMakePresets.json Merge cmake.yml into CITest.yml 2022-04-11 09:35:10 +02:00
COMPILE_MAKE.TXT Rebased #2570 (#2614) 2025-01-28 22:34:24 +08:00
CONTRIBUTING.md Documentation updates (#2476) 2024-09-23 11:26:56 +08:00
CPackConfig.cmake Create debian and rpm package on releases (#2590) 2025-01-20 22:50:31 +08:00
CPackConfig.txt v6 Alpha4 update (#2670) 2025-04-02 11:26:42 +08:00
CREDITS.TXT Rebased #2570 (#2614) 2025-01-28 22:34:24 +08:00
ChangeLog chore(version): Update Version to 6.0.0-Alpha3 (#2616) 2025-01-29 00:59:30 +08:00
LEB128.h sync with LLVM 7.0.1. X86 is first 2019-02-26 15:19:51 +08:00
MCAsmInfo.h SystemZ Auto-Sync refactor (#2462) 2024-09-14 16:57:54 +08:00
MCDisassembler.h sync with LLVM 7.0.1. X86 is first 2019-02-26 15:19:51 +08:00
MCFixedLenDisassembler.h RISCV support ISRV32/ISRV64 (#1401) 2019-03-09 08:41:12 +08:00
MCInst.c Auto-Sync reproducability + ARM update (#2532) 2024-11-22 00:31:27 +08:00
MCInst.h Xtensa Support (#2380) 2024-09-30 11:35:51 +08:00
MCInstPrinter.c Coverity defects (#2469) 2024-09-18 21:19:42 +08:00
MCInstPrinter.h fix typos (#2346) 2024-05-12 21:17:20 +08:00
MCInstrDesc.c AArch64 update to LLVM 18 (#2298) 2024-07-08 10:28:54 +08:00
MCInstrDesc.h AArch64 update to LLVM 18 (#2298) 2024-07-08 10:28:54 +08:00
MCRegisterInfo.c Auto-Sync Mips (#2410) 2024-09-07 22:30:47 +08:00
MCRegisterInfo.h Xtensa Support (#2380) 2024-09-30 11:35:51 +08:00
Makefile Rebased #2570 (#2614) 2025-01-28 22:34:24 +08:00
Mapping.c Rebased #2570 (#2614) 2025-01-28 22:34:24 +08:00
Mapping.h Rebased #2570 (#2614) 2025-01-28 22:34:24 +08:00
MathExtras.h Rebased #2570 (#2614) 2025-01-28 22:34:24 +08:00
README.md Rebased #2570 (#2614) 2025-01-28 22:34:24 +08:00
SPONSORS.TXT Update sponsors and remove empty file. (#2485) 2024-09-25 15:35:29 +08:00
SStream.c Update BPF arch (#2568) 2024-12-15 20:46:45 +08:00
SStream.h Update BPF arch (#2568) 2024-12-15 20:46:45 +08:00
capstone-config.cmake.in Add back support for relocatable packages (#2431) 2024-08-17 23:54:12 +08:00
capstone.pc.in Update v6 to have Debian Packages (#2579) 2024-12-17 13:04:03 +08:00
cmake.sh Rebased #2570 (#2614) 2025-01-28 22:34:24 +08:00
cmake_uninstall.cmake.in Add back support for relocatable packages (#2431) 2024-08-17 23:54:12 +08:00
config.mk Rebased #2570 (#2614) 2025-01-28 22:34:24 +08:00
cs.c v6 Alpha4 update (#2670) 2025-04-02 11:26:42 +08:00
cs_priv.h Fixing UB santizer, `LITBASE` and assert errors. (#2499) 2024-10-06 08:45:13 +08:00
cs_simple_types.h AArch64 update to LLVM 18 (#2298) 2024-07-08 10:28:54 +08:00
functions.mk Fix if indent 2023-05-19 19:50:46 +01:00
make.sh LIBDIRARCH does not propagate to Makefile (#2214) 2024-01-03 17:30:49 +09:00
pkgconfig.mk chore(version): Update Version to 6.0.0-Alpha3 (#2616) 2025-01-29 00:59:30 +08:00
run-clang-tidy.sh Modern Testing (#2456) 2024-08-31 21:33:38 +08:00
utils.c PPC LLVM 18 (#2540) 2024-12-05 19:26:33 +08:00
utils.h Xtensa Support (#2380) 2024-09-30 11:35:51 +08:00

README.md

Capstone Engine

Build status pypi package pypi downloads oss-fuzz Status

[!TIP] Welcome to join our community group!

Capstone is a disassembly framework with the target of becoming the ultimate disasm engine for binary analysis and reversing in the security community.

Created by Nguyen Anh Quynh, then developed and maintained by a small community, Capstone offers some unparalleled features:

  • Support multiple hardware architectures: ARM, AArch64, Alpha, ARC, BPF, Ethereum VM, LoongArch, HP PA-RISC (HPPA), M68K, M680X, Mips, MOS65XX, PPC, RISC-V(rv32G/rv64G), SH, Sparc, SystemZ, TMS320C64X, TriCore, Webassembly, XCore and X86 (16, 32, 64), Xtensa.

  • Having clean/simple/lightweight/intuitive architecture-neutral API.

  • Provide details on disassembled instruction (called “decomposer” by others).

  • Provide semantics of the disassembled instruction, such as list of implicit registers read & written.

  • Implemented in pure C language, with lightweight bindings for Swift, D, Clojure, F#, Common Lisp, Visual Basic, PHP, PowerShell, Emacs, Haskell, Perl, Python, Ruby, C#, NodeJS, Java, GO, C++, OCaml, Lua, Rust, Delphi, Free Pascal & Vala ready either in main code, or provided externally by the community).

  • Native support for all popular platforms: Windows, Mac OSX, iOS, Android, Linux, *BSD, Solaris, etc.

  • Thread-safe by design.

  • Special support for embedding into firmware or OS kernel.

  • High performance & suitable for malware analysis (capable of handling various X86 malware tricks).

  • Distributed under the open source BSD license.

Further information is available at https://www.capstone-engine.org

Compile

See BUILDING.md file for how to compile and install Capstone.

Documentation

Contributing

See CONTRIBUTING.md for an intro.

Fuzz

See suite/fuzz/README.md for more information.

License

This project is released under the BSD license. If you redistribute the binary or source code of Capstone, please attach file LICENSE.TXT with your products.