|
Some checks failed
Python - Build and publish wheels with cibuildwheel / Building on ubuntu-latest - i686 - cp*-manylinux* (push) Failing after 2s
Python - Build and publish wheels with cibuildwheel / Building on ubuntu-latest - x86_64 - cp*-manylinux* (push) Failing after 2s
Python - Build and publish wheels with cibuildwheel / Building on ubuntu-latest - i686 - cp*-musllinux* (push) Failing after 2s
cstool / CAPSTONE_BPF_SUPPORT only (push) Failing after 2s
cstool / CAPSTONE_EVM_SUPPORT only (push) Failing after 2s
cstool / CAPSTONE_LOONGARCH_SUPPORT only (push) Failing after 2s
cstool / CAPSTONE_M680X_SUPPORT only (push) Failing after 2s
cstool / CAPSTONE_MIPS_SUPPORT only (push) Failing after 2s
cstool / CAPSTONE_MOS65XX_SUPPORT only (push) Failing after 3s
cstool / CAPSTONE_SH_SUPPORT only (push) Failing after 2s
cstool / CAPSTONE_SYSTEMZ_SUPPORT only (push) Failing after 2s
cstool / CAPSTONE_TRICORE_SUPPORT only (push) Failing after 2s
Python - Build and publish wheels with cibuildwheel / Building on ubuntu-latest - x86_64 - cp*-musllinux* (push) Failing after 2s
Python - Build and publish wheels with cibuildwheel / Make SDist (push) Failing after 2s
Packages Build / build_linux (push) Failing after 2s
cstool / CAPSTONE_AARCH64_SUPPORT only (push) Failing after 2s
cstool / CAPSTONE_ALPHA_SUPPORT only (push) Failing after 2s
cstool / CAPSTONE_ARC_SUPPORT only (push) Failing after 2s
cstool / CAPSTONE_ARM_SUPPORT only (push) Failing after 2s
cstool / CAPSTONE_HPPA_SUPPORT only (push) Failing after 2s
cstool / CAPSTONE_M68K_SUPPORT only (push) Failing after 2s
cstool / CAPSTONE_PPC_SUPPORT only (push) Failing after 2s
cstool / CAPSTONE_RISCV_SUPPORT only (push) Failing after 2s
cstool / CAPSTONE_SPARC_SUPPORT only (push) Failing after 2s
cstool / CAPSTONE_TMS320C64X_SUPPORT only (push) Failing after 3s
cstool / CAPSTONE_WASM_SUPPORT only (push) Failing after 2s
cstool / CAPSTONE_X86_SUPPORT only (push) Failing after 2s
cstool / CAPSTONE_XCORE_SUPPORT only (push) Failing after 2s
cstool / CAPSTONE_XTENSA_SUPPORT only (push) Failing after 2s
Run Test / ubuntu-22.04 x64 release - no assert warnings (push) Has been cancelled
Run Test / ubuntu-22.04 x64 debug - assert warn (push) Has been cancelled
Run Test / ubuntu-22.04 x64 release - assert warn (push) Has been cancelled
Run Test / ubuntu-22.04 x64 cmake (push) Has been cancelled
Run Test / ubuntu-24.04 x64 ASAN (push) Has been cancelled
Run Test / ubuntu-22.04 x64 make (push) Has been cancelled
Run Test / windows x64 MSVC 64bit (push) Has been cancelled
Run Test / windows x64 MSVC 64bit DIET (push) Has been cancelled
Cross Build Tests / [BUILD ONLY] Android 35 (arm64_v8a) NDK 29 (push) Has been cancelled
Cross Build Tests / QEMU Linux ARM (push) Has been cancelled
Cross Build Tests / QEMU Linux Mips64el (push) Has been cancelled
Cross Build Tests / QEMU Linux Mips 32 (push) Has been cancelled
Cross Build Tests / QEMU Linux PPC64 (push) Has been cancelled
Cross Build Tests / QEMU Linux s390x (push) Has been cancelled
Cross Build Tests / [BUILD ONLY] Windows i686 mingw (push) Has been cancelled
Python - Build and publish wheels with cibuildwheel / Building on windows-latest - AMD64 - cp* (push) Has been cancelled
Python - Build and publish wheels with cibuildwheel / Building on windows-11-arm - ARM64 - cp* (push) Has been cancelled
Python - Build and publish wheels with cibuildwheel / Building on ubuntu-24.04-arm - aarch64 - cp*-manylinux* (push) Has been cancelled
Python - Build and publish wheels with cibuildwheel / Building on ubuntu-24.04-arm - aarch64 - cp*-musllinux* (push) Has been cancelled
Python - Build and publish wheels with cibuildwheel / Building on macos-latest - arm64 - cp* (push) Has been cancelled
Python - Build and publish wheels with cibuildwheel / Building on windows-latest - x86 - cp* (push) Has been cancelled
Python - Build and publish wheels with cibuildwheel / Building on macos-15-intel - x86_64 - cp* (push) Has been cancelled
Packages Build / build_windows (push) Has been cancelled
Run clang-format-20 / clang-format-20 (push) Has been cancelled
Run clang-tidy / clang-tidy (push) Has been cancelled
Python - Build and publish wheels with cibuildwheel / publish (push) Has been cancelled
In CAPSTONE_DIET builds, getRegisterName() returns NULL because the
register-name string table is compiled out. Every other AArch64 printer
helper feeds that NULL into SStream_concat0(), which is a no-op on NULL
under CAPSTONE_DIET. printMatrixTileVector is the outlier: it calls
strlen(RegName) + 1 directly to size a scratch buffer, so a NULL
result causes SIGSEGV inside strlen().
Early-return after AArch64_add_cs_detail_1() when RegName is NULL, so
detail-mode users still get the operand recorded.
Repro on a diet aarch64 build:
static const unsigned char code[] = { 0xc0, 0xc0, 0xc0, 0xc0 };
cs_disasm(handle, code, sizeof(code), 0, 0, &insn); /* SIGSEGV */
Fixes capstone-engine/capstone#3014
Co-authored-by: Amit Sides <amit-sides@users.noreply.github.com>
|
||
|---|---|---|
| .github | ||
| .reuse | ||
| arch | ||
| bindings | ||
| contrib | ||
| cross_configs | ||
| cstool | ||
| docs | ||
| ext_patches | ||
| include | ||
| LICENSES | ||
| packages | ||
| suite | ||
| tests | ||
| windows | ||
| windowsce | ||
| xcode | ||
| .appveyor.yml | ||
| .clang-format | ||
| .dockerignore | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| BUILDING.md | ||
| capstone-config.cmake.in | ||
| capstone.pc.in | ||
| ChangeLog | ||
| cmake.sh | ||
| cmake_uninstall.cmake.in | ||
| CMakeLists.txt | ||
| CMakePresets.json | ||
| COMPILE_MAKE.TXT | ||
| config.mk | ||
| CONTRIBUTING.md | ||
| CPackConfig.cmake | ||
| CPackConfig.txt | ||
| CREDITS.TXT | ||
| cs.c | ||
| cs_priv.h | ||
| cs_simple_types.h | ||
| functions.mk | ||
| LEB128.h | ||
| make.sh | ||
| Makefile | ||
| Mapping.c | ||
| Mapping.h | ||
| MathExtras.h | ||
| MCAsmInfo.h | ||
| MCDisassembler.h | ||
| MCFixedLenDisassembler.h | ||
| MCInst.c | ||
| MCInst.h | ||
| MCInstPrinter.c | ||
| MCInstPrinter.h | ||
| MCInstrDesc.c | ||
| MCInstrDesc.h | ||
| MCRegisterInfo.c | ||
| MCRegisterInfo.h | ||
| pkgconfig.mk | ||
| README.md | ||
| SPONSORS.TXT | ||
| SStream.c | ||
| SStream.h | ||
| utils.c | ||
| utils.h | ||
Capstone Engine
Tip
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
- Useful links and tutorials: docs/README
- Software architecture overview: docs/ARCHITECTURE.md
- Testing documentation: tests/README.md
- Updater (Auto-Sync) documentation: suite/auto-sync/README.md
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.