Nguyen Anh Quynh | 3eb6eea | 2016-03-01 13:57:06 +0800 | [diff] [blame] | 1 | Capstone Engine |
| 2 | =============== |
| 3 | |
Nguyen Anh Quynh | 7907626 | 2019-02-02 00:41:32 +0800 | [diff] [blame] | 4 | [](https://travis-ci.org/aquynh/capstone) |
| 5 | [](https://ci.appveyor.com/project/aquynh/capstone/branch/master) |
Nguyen Anh Quynh | 467eed6 | 2019-02-07 18:35:51 +0800 | [diff] [blame] | 6 | [](https://pypi.python.org/pypi/capstone) |
Nguyen Anh Quynh | fc4407f | 2019-02-15 08:58:46 +0800 | [diff] [blame] | 7 | [](https://pepy.tech/project/capstone) |
Pranith Kumar | 87480e4 | 2016-02-29 23:11:44 -0500 | [diff] [blame] | 8 | |
Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 9 | Capstone is a disassembly framework with the target of becoming the ultimate |
| 10 | disasm engine for binary analysis and reversing in the security community. |
| 11 | |
| 12 | Created by Nguyen Anh Quynh, then developed and maintained by a small community, |
| 13 | Capstone offers some unparalleled features: |
| 14 | |
Nguyen Anh Quynh | ed1246d | 2018-03-31 17:29:22 +0800 | [diff] [blame] | 15 | - Support multiple hardware architectures: ARM, ARM64 (ARMv8), Ethereum VM, M68K, |
Sebastian Macke | 7436f54 | 2018-12-04 19:09:38 +0100 | [diff] [blame] | 16 | Mips, MOS65XX, PPC, Sparc, SystemZ, TMS320C64X, M680X, XCore and X86 (including X86_64). |
Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 17 | |
| 18 | - Having clean/simple/lightweight/intuitive architecture-neutral API. |
| 19 | |
| 20 | - Provide details on disassembled instruction (called “decomposer” by others). |
| 21 | |
| 22 | - Provide semantics of the disassembled instruction, such as list of implicit |
Nguyen Anh Quynh | 38b7bbb | 2014-01-22 10:21:25 +0800 | [diff] [blame] | 23 | registers read & written. |
Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 24 | |
Nguyen Anh Quynh | f596009 | 2018-11-21 17:45:33 +0800 | [diff] [blame] | 25 | - Implemented in pure C language, with lightweight bindings for D, Clojure, F#, |
Nguyen Anh Quynh | 4f05e83 | 2018-07-24 13:44:39 +0800 | [diff] [blame] | 26 | Common Lisp, Visual Basic, PHP, PowerShell, Emacs, Haskell, Perl, Python, |
| 27 | Ruby, C#, NodeJS, Java, GO, C++, OCaml, Lua, Rust, Delphi, Free Pascal & Vala |
c0rejump | 03967e6 | 2020-01-04 16:42:35 +0100 | [diff] [blame] | 28 | (ready either in main code, or provided externally by the community). |
Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 29 | |
Nguyen Anh Quynh | 9672cd2 | 2014-06-16 22:06:44 +0800 | [diff] [blame] | 30 | - Native support for all popular platforms: Windows, Mac OSX, iOS, Android, |
Nguyen Anh Quynh | afffa5d | 2018-07-20 12:36:50 +0800 | [diff] [blame] | 31 | Linux, \*BSD, Solaris, etc. |
Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 32 | |
| 33 | - Thread-safe by design. |
| 34 | |
Nguyen Anh Quynh | b0b7308 | 2014-03-03 17:57:15 +0800 | [diff] [blame] | 35 | - Special support for embedding into firmware or OS kernel. |
| 36 | |
Nguyen Anh Quynh | edbee24 | 2014-10-21 12:04:38 +0800 | [diff] [blame] | 37 | - High performance & suitable for malware analysis (capable of handling various |
| 38 | X86 malware tricks). |
| 39 | |
Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 40 | - Distributed under the open source BSD license. |
| 41 | |
Nguyen Anh Quynh | b7155b0 | 2013-12-18 00:18:06 +0800 | [diff] [blame] | 42 | Further information is available at http://www.capstone-engine.org |
| 43 | |
Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 44 | |
Nguyen Anh Quynh | 3eb6eea | 2016-03-01 13:57:06 +0800 | [diff] [blame] | 45 | Compile |
| 46 | ------- |
Nguyen Anh Quynh | 8afa3dd | 2013-12-18 00:11:25 +0800 | [diff] [blame] | 47 | |
Nguyen Anh Quynh | 6217f36 | 2014-06-16 18:38:32 +0800 | [diff] [blame] | 48 | See COMPILE.TXT file for how to compile and install Capstone. |
Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 49 | |
| 50 | |
Nguyen Anh Quynh | 3eb6eea | 2016-03-01 13:57:06 +0800 | [diff] [blame] | 51 | Documentation |
| 52 | ------------- |
Nguyen Anh Quynh | 257ea59 | 2014-10-20 17:38:53 +0800 | [diff] [blame] | 53 | |
Nguyen Anh Quynh | bc01e2c | 2014-10-20 16:29:15 +0800 | [diff] [blame] | 54 | See docs/README for how to customize & program your own tools with Capstone. |
| 55 | |
| 56 | |
Nguyen Anh Quynh | 3eb6eea | 2016-03-01 13:57:06 +0800 | [diff] [blame] | 57 | Hack |
| 58 | ---- |
Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 59 | |
Tim Strazzere | 13d7d30 | 2015-10-02 19:04:59 -0700 | [diff] [blame] | 60 | See HACK.TXT file for the structure of the source code. |
Nguyen Anh Quynh | 8afa3dd | 2013-12-18 00:11:25 +0800 | [diff] [blame] | 61 | |
| 62 | |
Nguyen Anh Quynh | 3eb6eea | 2016-03-01 13:57:06 +0800 | [diff] [blame] | 63 | License |
| 64 | ------- |
Nguyen Anh Quynh | 8afa3dd | 2013-12-18 00:11:25 +0800 | [diff] [blame] | 65 | |
Nguyen Anh Quynh | 24ca24c | 2013-12-18 10:16:07 +0800 | [diff] [blame] | 66 | This project is released under the BSD license. If you redistribute the binary |
| 67 | or source code of Capstone, please attach file LICENSE.TXT with your products. |