xref: /aosp_15_r20/external/capstone/bindings/python/README.txt (revision 9a0e4156d50a75a99ec4f1653a0e9602a5d45c18)
1*9a0e4156SSadaf EbrahimiTo install Capstone, you should run `pip install capstone`.
2*9a0e4156SSadaf Ebrahimi
3*9a0e4156SSadaf EbrahimiIf you would like to build Capstone with just the source distribution, without
4*9a0e4156SSadaf Ebrahimipip, just run `python setup.py install` in the folder with setup.py in it.
5*9a0e4156SSadaf Ebrahimi
6*9a0e4156SSadaf EbrahimiIn order to use this source distribution, you will need an environment that can
7*9a0e4156SSadaf Ebrahimicompile C code. On Linux, this is usually easy, but on Windows, this involves
8*9a0e4156SSadaf Ebrahimiinstalling Visual Studio and using the "Developer Command Prompt" to perform the
9*9a0e4156SSadaf Ebrahimiinstallation. See BUILDING.txt for more information.
10*9a0e4156SSadaf Ebrahimi
11*9a0e4156SSadaf EbrahimiBy default, attempting to install the python bindings will trigger a build of
12*9a0e4156SSadaf Ebrahimithe capstone native core. If this is undesirable for whatever reason, for
13*9a0e4156SSadaf Ebrahimiinstance, you already have a globally installed copy of libcapstone, you may
14*9a0e4156SSadaf Ebrahimiinhibit the build by setting the environment variable LIBCAPSTONE_PATH. The
15*9a0e4156SSadaf Ebrahimiexact value is not checked, just setting it will inhibit the build. During
16*9a0e4156SSadaf Ebrahimiexecution, this variable may be set to the path of a directory containing a
17*9a0e4156SSadaf Ebrahimispecific version of libcapstone you would like to use.
18*9a0e4156SSadaf Ebrahimi
19*9a0e4156SSadaf EbrahimiIf you don't want to build your own copy of Capstone, you can use a precompiled
20*9a0e4156SSadaf Ebrahimibinary distribution from PyPI. Saying `pip install capstone` should
21*9a0e4156SSadaf Ebrahimiautomatically obtain an appropriate copy for your system. If it does not, please
22*9a0e4156SSadaf Ebrahimiopen an issue at https://github.com/aquynh/capstone and tag @rhelmot - she
23*9a0e4156SSadaf Ebrahimiwill fix this, probably!
24*9a0e4156SSadaf Ebrahimi
25*9a0e4156SSadaf Ebrahimi--------------------------------------------------------------------------------
26*9a0e4156SSadaf Ebrahimi
27*9a0e4156SSadaf EbrahimiCapstone is a disassembly framework with the target of becoming the ultimate
28*9a0e4156SSadaf Ebrahimidisasm engine for binary analysis and reversing in the security community.
29*9a0e4156SSadaf Ebrahimi
30*9a0e4156SSadaf EbrahimiCreated by Nguyen Anh Quynh, then developed and maintained by a small community,
31*9a0e4156SSadaf EbrahimiCapstone offers some unparalleled features:
32*9a0e4156SSadaf Ebrahimi
33*9a0e4156SSadaf Ebrahimi- Support multiple hardware architectures: ARM, ARM64 (ARMv8), Mips, PPC, Sparc,
34*9a0e4156SSadaf Ebrahimi  SystemZ, XCore and X86 (including X86_64).
35*9a0e4156SSadaf Ebrahimi
36*9a0e4156SSadaf Ebrahimi- Having clean/simple/lightweight/intuitive architecture-neutral API.
37*9a0e4156SSadaf Ebrahimi
38*9a0e4156SSadaf Ebrahimi- Provide details on disassembled instruction (called “decomposer” by others).
39*9a0e4156SSadaf Ebrahimi
40*9a0e4156SSadaf Ebrahimi- Provide semantics of the disassembled instruction, such as list of implicit
41*9a0e4156SSadaf Ebrahimi  registers read & written.
42*9a0e4156SSadaf Ebrahimi
43*9a0e4156SSadaf Ebrahimi- Implemented in pure C language, with lightweight wrappers for C++, C#, Go,
44*9a0e4156SSadaf Ebrahimi  Java, NodeJS, Ocaml, Python, Ruby & Vala ready (available in main code,
45*9a0e4156SSadaf Ebrahimi  or provided externally by the community).
46*9a0e4156SSadaf Ebrahimi
47*9a0e4156SSadaf Ebrahimi- Native support for all popular platforms: Windows, Mac OSX, iOS, Android,
48*9a0e4156SSadaf Ebrahimi  Linux, *BSD, Solaris, etc.
49*9a0e4156SSadaf Ebrahimi
50*9a0e4156SSadaf Ebrahimi- Thread-safe by design.
51*9a0e4156SSadaf Ebrahimi
52*9a0e4156SSadaf Ebrahimi- Special support for embedding into firmware or OS kernel.
53*9a0e4156SSadaf Ebrahimi
54*9a0e4156SSadaf Ebrahimi- High performance & suitable for malware analysis (capable of handling various
55*9a0e4156SSadaf Ebrahimi  X86 malware tricks).
56*9a0e4156SSadaf Ebrahimi
57*9a0e4156SSadaf Ebrahimi- Distributed under the open source BSD license.
58*9a0e4156SSadaf Ebrahimi
59*9a0e4156SSadaf EbrahimiFurther information is available at http://www.capstone-engine.org
60*9a0e4156SSadaf Ebrahimi
61*9a0e4156SSadaf Ebrahimi
62*9a0e4156SSadaf Ebrahimi[License]
63*9a0e4156SSadaf Ebrahimi
64*9a0e4156SSadaf EbrahimiThis project is released under the BSD license. If you redistribute the binary
65*9a0e4156SSadaf Ebrahimior source code of Capstone, please attach file LICENSE.TXT with your products.
66