Capstone disassembly/disassembler framework for ARM, ARM64 (ARMv8), Alpha, BPF, Ethereum VM, HPPA, LoongArch, M68K, M680X, Mips, MOS65XX, PPC, RISC-V(rv32G/rv64G), SH, Sparc, SystemZ, TMS320C64X, TriCore, Webassembly, XCore and X86.
Go to file
Lucas Azevedo 67d975662e
Some checks failed
Run Test / ${{ matrix.config.name }} (map[arch:x64 build-system:cmake diet-build:OFF enable-asan:ON name:ubuntu-24.04 x64 ASAN os:ubuntu-24.04]) (push) Waiting to run
Run Test / ${{ matrix.config.name }} (map[arch:x64 name:windows x64 MSVC 64bit os:windows-latest platform:windows python-arch:x64 python-version:3.9]) (push) Waiting to run
Run clang-tidy / clang-tidy (push) Waiting to run
RELEASE BUILD - PyPI 📦 Distribution / Build wheels on ${{ matrix.os }} (macos-latest) (push) Waiting to run
RELEASE BUILD - PyPI 📦 Distribution / Build wheels on ${{ matrix.os }} (windows-latest) (push) Waiting to run
RELEASE BUILD - PyPI 📦 Distribution / publish (push) Blocked by required conditions
Python Package CI / build (macOS-14, 3.12) (push) Waiting to run
Python Package CI / build (macOS-14, 3.8) (push) Waiting to run
Python Package CI / build (ubuntu-24.04, 3.12) (push) Waiting to run
Python Package CI / build (ubuntu-24.04, 3.8) (push) Waiting to run
Python Package CI / build (windows-2022, 3.12) (push) Waiting to run
Python Package CI / build (windows-2022, 3.8) (push) Waiting to run
Run Test / ${{ matrix.config.name }} (map[arch:x64 build-system:cmake diet-build:OFF enable-asan:OFF name:ubuntu-22.04 x64 cmake os:ubuntu-22.04]) (push) Failing after 1s
Run Test / ${{ matrix.config.name }} (map[arch:x64 build-system:make diet-build:OFF enable-asan:OFF name:ubuntu-22.04 x64 make os:ubuntu-22.04]) (push) Failing after 0s
RELEASE BUILD - PyPI 📦 Distribution / Build wheels on ${{ matrix.os }} (ubuntu-latest) (push) Failing after 1s
RELEASE BUILD - PyPI 📦 Distribution / Make SDist (push) Failing after 1s
Auto-Sync / check (push) Has been cancelled
[next] SH: Use bitwise OR with mask for sign extension (#2389)
* Use bitwise OR with mask for sign extension

Sign extend using bitwise OR with mask, instead of unary minus.
Fixes error when building for UWP with Security Development Lifecycle (SDL).
See https://learn.microsoft.com/en-us/cpp/build/reference/sdl-enable-additional-security-checks?view=msvc-170

* Remove unused store

Remove unused store caught by clang-tidy.

* Suppress clang-tidy false positive

Ignore an unitialized va_list false positive emitted by clang-tidy

---------

Co-authored-by: Wu ChenXu <kabeor00@gmail.com>
2024-09-19 01:09:54 +08:00
.github Coverity defects (#2469) 2024-09-18 21:19:42 +08:00
.reuse [Auto-Sync] LLVM 18 update (#2296) 2024-04-22 11:55:44 +08:00
arch [next] SH: Use bitwise OR with mask for sign extension (#2389) 2024-09-19 01:09:54 +08:00
bindings Coverity defects (#2469) 2024-09-18 21:19:42 +08:00
contrib SystemZ Auto-Sync refactor (#2462) 2024-09-14 16:57:54 +08:00
cstool Coverity defects (#2469) 2024-09-18 21:19:42 +08:00
docs Coverity defects (#2469) 2024-09-18 21:19:42 +08:00
include Coverity defects (#2469) 2024-09-18 21:19:42 +08:00
LICENSES [Auto-Sync] LLVM 18 update (#2296) 2024-04-22 11:55:44 +08:00
msvc Raise minimum requirement to VS2017 (#2228) 2024-01-07 19:10:59 +08:00
packages fix typos (#2387) 2024-06-19 18:54:05 +08:00
suite Coverity defects (#2469) 2024-09-18 21:19:42 +08:00
tests Coverity defects (#2469) 2024-09-18 21:19:42 +08:00
windows Fix user data alignment in MEMBLOCK (#1471) 2019-05-09 10:24:47 +08:00
windowsce SystemZ Auto-Sync refactor (#2462) 2024-09-14 16:57:54 +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
.editorconfig Add OCaml to EditorConfig 2022-07-23 10:46:03 +02:00
.gitattributes Fix language statistics by considering *.inc files to be C files. (#1078) 2018-01-14 20:42:20 +08:00
.gitignore Auto-Sync Mips (#2410) 2024-09-07 22:30:47 +08:00
.gitmodules Architecture updater (auto-sync) - Updating ARM (#1949) 2023-07-19 17:56:27 +08:00
.travis.yml Fuzzit integration (#1520) 2019-07-25 09:06:52 +08:00
capstone-config.cmake.in Add back support for relocatable packages (#2431) 2024-08-17 23:54:12 +08:00
capstone.pc.in Add back support for relocatable packages (#2431) 2024-08-17 23:54:12 +08:00
ChangeLog fix typos (#2387) 2024-06-19 18:54:05 +08:00
cmake_uninstall.cmake.in Add back support for relocatable packages (#2431) 2024-08-17 23:54:12 +08:00
cmake.sh SystemZ Auto-Sync refactor (#2462) 2024-09-14 16:57:54 +08:00
CMakeLists.txt SystemZ Auto-Sync refactor (#2462) 2024-09-14 16:57:54 +08:00
CMakePresets.json Merge cmake.yml into CITest.yml 2022-04-11 09:35:10 +02:00
COMPILE_CMAKE.TXT SystemZ Auto-Sync refactor (#2462) 2024-09-14 16:57:54 +08:00
COMPILE_MAKE.TXT Modern Testing (#2456) 2024-08-31 21:33:38 +08:00
COMPILE_MSVC.TXT Modern Testing (#2456) 2024-08-31 21:33:38 +08:00
config.mk Modern Testing (#2456) 2024-08-31 21:33:38 +08:00
CREDITS.TXT Initial auto-sync LoongArch support (#2349) 2024-06-26 14:47:44 +08:00
cs_priv.h Coverity defects (#2469) 2024-09-18 21:19:42 +08:00
cs_simple_types.h AArch64 update to LLVM 18 (#2298) 2024-07-08 10:28:54 +08:00
cs.c Coverity defects (#2469) 2024-09-18 21:19:42 +08:00
functions.mk Fix if indent 2023-05-19 19:50:46 +01:00
HACK.TXT Modern Testing (#2456) 2024-08-31 21:33:38 +08:00
LEB128.h sync with LLVM 7.0.1. X86 is first 2019-02-26 15:19:51 +08:00
make.sh LIBDIRARCH does not propagate to Makefile (#2214) 2024-01-03 17:30:49 +09:00
Makefile Modern Testing (#2456) 2024-08-31 21:33:38 +08:00
Mapping.c Coverity defects (#2469) 2024-09-18 21:19:42 +08:00
Mapping.h Coverity defects (#2469) 2024-09-18 21:19:42 +08:00
MathExtras.h Coverity defects (#2469) 2024-09-18 21:19:42 +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 SystemZ Auto-Sync refactor (#2462) 2024-09-14 16:57:54 +08:00
MCInst.h SystemZ Auto-Sync refactor (#2462) 2024-09-14 16:57:54 +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 Auto-Sync Mips (#2410) 2024-09-07 22:30:47 +08:00
nmake.bat Initial auto-sync LoongArch support (#2349) 2024-06-26 14:47:44 +08:00
pkgconfig.mk 5.0-post1 2023-07-05 23:30:22 +08:00
README.md Modern Testing (#2456) 2024-08-31 21:33:38 +08:00
RELEASE_NOTES empty RELEASE_NOTES for v4.1 2018-12-19 07:50:18 +07:00
run-clang-tidy.sh Modern Testing (#2456) 2024-08-31 21:33:38 +08:00
SPONSORS.TXT Add webassembly arch (#1359) 2019-02-01 23:03:47 +08:00
SStream.c Coverity defects (#2469) 2024-09-18 21:19:42 +08:00
SStream.h Coverity defects (#2469) 2024-09-18 21:19:42 +08:00
utils.c Coverity defects (#2469) 2024-09-18 21:19:42 +08:00
utils.h Coverity defects (#2469) 2024-09-18 21:19:42 +08:00

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, 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).

  • 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 COMPILE_CMAKE.TXT file for how to compile and install Capstone.

Documentation

See docs/README for how to customize & program your own tools with Capstone.

Hack

See HACK.TXT file for the structure of the source code.

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.