Go to file
Rot127 270d16e458
Fix VFP feature check. (#2090)
VFP instructions could only be disassembled if armv8 was set as arch.
This is because the predicate fails due to this feature check. This is incorrect as also armv7 can have VFP support.
2023-07-18 23:57:31 +08:00
.github/workflows [workflows] Adjust matrix version 2023-06-23 09:44:42 +08:00
arch Fix VFP feature check. (#2090) 2023-07-18 23:57:31 +08:00
bindings bindings: update Java consts for Arm64 2023-07-05 13:36:21 +08:00
contrib Constify backends (#1549) 2019-12-23 20:30:57 +08:00
cstool Add operands access support for TriCore 2023-05-30 12:27:38 +08:00
docs docs: Refactor project structure and remove unnecessary file. 2023-04-14 00:35:15 +08:00
include Fix tricore.h 2023-06-23 23:46:19 +08:00
msvc fix msvc dll to compile with has_tricore, plus added CRT_SECURE_NO_WARNINGS 2023-06-24 10:00:39 +02:00
packages merge next to master 2018-07-20 12:36:50 +08:00
suite Update tests and inc files 2023-07-01 16:26:54 +08:00
tests Fix TriCore test 2023-06-17 22:33:54 +02:00
windows Fix user data alignment in MEMBLOCK (#1471) 2019-05-09 10:24:47 +08:00
windowsce Added documentation for building for Windows CE. 2016-04-12 09:26:47 +02:00
xcode merge next to master 2018-07-20 12:36:50 +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 Fix all compiler errors 2023-04-14 00:34:16 +08:00
.travis.yml Fuzzit integration (#1520) 2019-07-25 09:06:52 +08:00
CMakeLists.txt Add operands access support for TriCore 2023-05-30 12:27:38 +08:00
CMakePresets.json Merge cmake.yml into CITest.yml 2022-04-11 09:35:10 +02:00
COMPILE.TXT Modify Makefiles for TriCore architecture 2023-04-14 00:34:08 +08:00
COMPILE_CMAKE.TXT Modify Makefiles for TriCore architecture 2023-04-14 00:34:08 +08:00
COMPILE_MSVC.TXT Modify Makefiles for TriCore architecture 2023-04-14 00:34:08 +08:00
CREDITS.TXT Fix tricore python binding 2023-04-24 22:18:07 +08:00
ChangeLog Update ChangeLog v5.0 Final 2023-07-05 22:58:24 +08:00
HACK.TXT Fix HACK.TXT 2023-04-24 22:53:03 +08:00
LEB128.h sync with LLVM 7.0.1. X86 is first 2019-02-26 15:19:51 +08:00
LICENSE.TXT a a newline to LICENSE.TXT 2014-02-20 17:08:28 +08:00
LICENSE_LLVM.TXT initial import 2013-11-27 12:11:31 +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 Add `.clang-format` and format 2023-05-30 11:09:37 +08:00
MCInst.h Add `.clang-format` and format 2023-05-30 11:09:37 +08:00
MCInstrDesc.c Add `.clang-format` and format 2023-05-30 11:09:37 +08:00
MCInstrDesc.h Add `.clang-format` and format 2023-05-30 11:09:37 +08:00
MCRegisterInfo.c In x86: Fixed backward compatibility with C90 (#1969) 2023-03-10 08:37:47 +08:00
MCRegisterInfo.h arm64: sync with LLVM 7.0.1 2019-04-10 14:17:08 +08:00
Makefile Add operands access support for TriCore 2023-05-30 12:27:38 +08:00
Mapping.c Add operands access support for TriCore 2023-05-30 12:27:38 +08:00
Mapping.h Add operands access support for TriCore 2023-05-30 12:27:38 +08:00
MathExtras.h sync with LLVM 7.0.1. X86 is first 2019-02-26 15:19:51 +08:00
README.md README: use https 2023-06-18 21:15:09 +08:00
RELEASE_NOTES empty RELEASE_NOTES for v4.1 2018-12-19 07:50:18 +07:00
SPONSORS.TXT Add webassembly arch (#1359) 2019-02-01 23:03:47 +08:00
SStream.c ppc: sync with llvm 7.0.1 2019-04-30 13:50:42 +08:00
SStream.h ppc: sync with llvm 7.0.1 2019-04-30 13:50:42 +08:00
capstone-config.cmake.in Add cmake config and export targets. (#1637) 2020-06-02 20:58:33 +08:00
capstone.pc.in capstone.pc.in: use https in the URL. 2023-06-16 10:02:51 -04:00
cmake.sh Fix pkgcfg generation for the archs variable (#1830) 2022-01-26 11:28:04 +08:00
cmake_uninstall.cmake.in add cmake uninstall option 2022-01-27 14:22:43 +08:00
config.mk Merge branch 'next' into tricore 2023-04-27 13:23:35 +08:00
cs.c Revert "Mark cs_* as thread local to avoid race condition in multithreads" (#1933) 2023-07-01 16:57:10 -07:00
cs_priv.h Revert "Mark cs_* as thread local to avoid race condition in multithreads" (#1933) 2023-07-01 16:57:10 -07:00
cs_simple_types.h Add operands access support for TriCore 2023-05-30 12:27:38 +08:00
functions.mk Fix if indent 2023-05-19 19:50:46 +01:00
make.sh build: add xlc and AIX support (#1559) 2019-10-31 04:02:31 +08:00
nmake.bat Add cmake option to tell whether architectures should be included by default (#1463) (#1466) 2019-04-29 19:20:01 +07:00
pkgconfig.mk 5.0-post1 2023-07-05 23:30:22 +08:00
utils.c Add `.clang-format` and format 2023-05-30 11:09:37 +08:00
utils.h Pull auto-sync's changes from 2ab11ad9bd 2023-05-30 11:08:18 +08:00

README.md

Capstone Engine

Build status pypi package pypi downloads oss-fuzz Status

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, ARM64 (ARMv8), BPF, Ethereum VM, 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.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.