![]() * 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> |
||
---|---|---|
.github | ||
.reuse | ||
LICENSES | ||
arch | ||
bindings | ||
contrib | ||
cstool | ||
docs | ||
include | ||
packages | ||
suite | ||
tests | ||
windows | ||
windowsce | ||
xcode | ||
.appveyor.yml | ||
.clang-format | ||
.dockerignore | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
BUILDING.md | ||
CMakeLists.txt | ||
CMakePresets.json | ||
COMPILE_MAKE.TXT | ||
CONTRIBUTING.md | ||
CPackConfig.cmake | ||
CPackConfig.txt | ||
CREDITS.TXT | ||
ChangeLog | ||
LEB128.h | ||
MCAsmInfo.h | ||
MCDisassembler.h | ||
MCFixedLenDisassembler.h | ||
MCInst.c | ||
MCInst.h | ||
MCInstPrinter.c | ||
MCInstPrinter.h | ||
MCInstrDesc.c | ||
MCInstrDesc.h | ||
MCRegisterInfo.c | ||
MCRegisterInfo.h | ||
Makefile | ||
Mapping.c | ||
Mapping.h | ||
MathExtras.h | ||
README.md | ||
SPONSORS.TXT | ||
SStream.c | ||
SStream.h | ||
capstone-config.cmake.in | ||
capstone.pc.in | ||
cmake.sh | ||
cmake_uninstall.cmake.in | ||
config.mk | ||
cs.c | ||
cs_priv.h | ||
cs_simple_types.h | ||
functions.mk | ||
make.sh | ||
pkgconfig.mk | ||
run-clang-tidy.sh | ||
utils.c | ||
utils.h |
README.md
Capstone Engine
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.