xref: /aosp_15_r20/external/capstone/README.md (revision 9a0e4156d50a75a99ec4f1653a0e9602a5d45c18)
1*9a0e4156SSadaf EbrahimiCapstone Engine
2*9a0e4156SSadaf Ebrahimi===============
3*9a0e4156SSadaf Ebrahimi
4*9a0e4156SSadaf Ebrahimi[![Build Status](https://travis-ci.org/aquynh/capstone.svg?branch=master)](https://travis-ci.org/aquynh/capstone)
5*9a0e4156SSadaf Ebrahimi[![Build status](https://ci.appveyor.com/api/projects/status/a4wvbn89wu3pinas/branch/master?svg=true)](https://ci.appveyor.com/project/aquynh/capstone/branch/master)
6*9a0e4156SSadaf Ebrahimi[![pypi package](https://badge.fury.io/py/capstone.svg)](https://pypi.python.org/pypi/capstone)
7*9a0e4156SSadaf Ebrahimi[![pypi downloads](https://pepy.tech/badge/capstone)](https://pepy.tech/project/capstone)
8*9a0e4156SSadaf Ebrahimi
9*9a0e4156SSadaf EbrahimiDeprecation
10*9a0e4156SSadaf Ebrahimi===========
11*9a0e4156SSadaf Ebrahimi
12*9a0e4156SSadaf EbrahimiThe [`master`](https://github.com/capstone-engine/capstone/tree/master) branch is deprecated.
13*9a0e4156SSadaf EbrahimiAll forward development should be based on the [`next`](https://github.com/capstone-engine/capstone/tree/next) branch.
14*9a0e4156SSadaf Ebrahimi
15*9a0e4156SSadaf EbrahimiTo clone a fresh checkout with the `next` branch:
16*9a0e4156SSadaf Ebrahimi
17*9a0e4156SSadaf Ebrahimi    git clone -b next https://github.com/capstone-engine/capstone
18*9a0e4156SSadaf Ebrahimi
19*9a0e4156SSadaf EbrahimiTo change to the `next` branch in an existing checkout:
20*9a0e4156SSadaf Ebrahimi
21*9a0e4156SSadaf Ebrahimi    git checkout next
22*9a0e4156SSadaf Ebrahimi
23*9a0e4156SSadaf Ebrahimi----
24*9a0e4156SSadaf Ebrahimi
25*9a0e4156SSadaf EbrahimiWe moved the original historical repo of Capstone from https://github.com/aquynh/capstone to an organization, where we can add more maintainers to the project, and push Capstone development forward.
26*9a0e4156SSadaf Ebrahimi
27*9a0e4156SSadaf EbrahimiOur new home is https://github.com/capstone-engine/capstone
28*9a0e4156SSadaf Ebrahimi
29*9a0e4156SSadaf EbrahimiNov 8th, 2021.
30*9a0e4156SSadaf Ebrahimi
31*9a0e4156SSadaf Ebrahimi----
32*9a0e4156SSadaf Ebrahimi
33*9a0e4156SSadaf EbrahimiCapstone is a disassembly framework with the target of becoming the ultimate
34*9a0e4156SSadaf Ebrahimidisasm engine for binary analysis and reversing in the security community.
35*9a0e4156SSadaf Ebrahimi
36*9a0e4156SSadaf EbrahimiCreated by Nguyen Anh Quynh, then developed and maintained by a small community,
37*9a0e4156SSadaf EbrahimiCapstone offers some unparalleled features:
38*9a0e4156SSadaf Ebrahimi
39*9a0e4156SSadaf Ebrahimi- Support multiple hardware architectures: ARM, ARM64 (ARMv8), Ethereum VM, M68K,
40*9a0e4156SSadaf Ebrahimi  Mips, MOS65XX, PPC, Sparc, SystemZ, TMS320C64X, M680X, XCore and X86 (including X86_64).
41*9a0e4156SSadaf Ebrahimi
42*9a0e4156SSadaf Ebrahimi- Having clean/simple/lightweight/intuitive architecture-neutral API.
43*9a0e4156SSadaf Ebrahimi
44*9a0e4156SSadaf Ebrahimi- Provide details on disassembled instruction (called “decomposer” by others).
45*9a0e4156SSadaf Ebrahimi
46*9a0e4156SSadaf Ebrahimi- Provide semantics of the disassembled instruction, such as list of implicit
47*9a0e4156SSadaf Ebrahimi  registers read & written.
48*9a0e4156SSadaf Ebrahimi
49*9a0e4156SSadaf Ebrahimi- Implemented in pure C language, with lightweight bindings for D, Clojure, F#,
50*9a0e4156SSadaf Ebrahimi  Common Lisp, Visual Basic, PHP, PowerShell, Emacs, Haskell, Perl, Python,
51*9a0e4156SSadaf Ebrahimi  Ruby, C#, NodeJS, Java, GO, C++, OCaml, Lua, Rust, Delphi, Free Pascal & Vala
52*9a0e4156SSadaf Ebrahimi  (ready either in main code, or provided externally by the community).
53*9a0e4156SSadaf Ebrahimi
54*9a0e4156SSadaf Ebrahimi- Native support for all popular platforms: Windows, macOS, iOS, Android,
55*9a0e4156SSadaf Ebrahimi  Linux, \*BSD, Solaris, etc.
56*9a0e4156SSadaf Ebrahimi
57*9a0e4156SSadaf Ebrahimi- Thread-safe by design.
58*9a0e4156SSadaf Ebrahimi
59*9a0e4156SSadaf Ebrahimi- Special support for embedding into firmware or OS kernel.
60*9a0e4156SSadaf Ebrahimi
61*9a0e4156SSadaf Ebrahimi- High performance & suitable for malware analysis (capable of handling various
62*9a0e4156SSadaf Ebrahimi  X86 malware tricks).
63*9a0e4156SSadaf Ebrahimi
64*9a0e4156SSadaf Ebrahimi- Distributed under the open source BSD license.
65*9a0e4156SSadaf Ebrahimi
66*9a0e4156SSadaf EbrahimiFurther information is available at http://www.capstone-engine.org
67*9a0e4156SSadaf Ebrahimi
68*9a0e4156SSadaf Ebrahimi
69*9a0e4156SSadaf EbrahimiCompile
70*9a0e4156SSadaf Ebrahimi-------
71*9a0e4156SSadaf Ebrahimi
72*9a0e4156SSadaf EbrahimiSee COMPILE.TXT file for how to compile and install Capstone.
73*9a0e4156SSadaf Ebrahimi
74*9a0e4156SSadaf Ebrahimi
75*9a0e4156SSadaf EbrahimiDocumentation
76*9a0e4156SSadaf Ebrahimi-------------
77*9a0e4156SSadaf Ebrahimi
78*9a0e4156SSadaf EbrahimiSee docs/README for how to customize & program your own tools with Capstone.
79*9a0e4156SSadaf Ebrahimi
80*9a0e4156SSadaf Ebrahimi
81*9a0e4156SSadaf EbrahimiHack
82*9a0e4156SSadaf Ebrahimi----
83*9a0e4156SSadaf Ebrahimi
84*9a0e4156SSadaf EbrahimiSee HACK.TXT file for the structure of the source code.
85*9a0e4156SSadaf Ebrahimi
86*9a0e4156SSadaf Ebrahimi
87*9a0e4156SSadaf EbrahimiLicense
88*9a0e4156SSadaf Ebrahimi-------
89*9a0e4156SSadaf Ebrahimi
90*9a0e4156SSadaf EbrahimiThis project is released under the BSD license. If you redistribute the binary
91*9a0e4156SSadaf Ebrahimior source code of Capstone, please attach file LICENSE.TXT with your products.
92