Capstone disassembly/disassembler framework: Core (Arm, Arm64, BPF, EVM, M68K, M680X, MOS65xx, Mips, PPC, RISCV, Sparc, SystemZ, TMS320C64x, Web Assembly, X86, X86_64, XCore) + bindings. (bloaty 依赖)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Nguyen Anh Quynh d7c0f5dcae python: indentation for README.TXT 10 years ago
..
capstone Set _detail in a dummy Cs, closes #251 10 years ago
prebuilt python: do not include msvcr120.dll because we can static compile it 10 years ago
pyx - Fixed memory leak for cython disasm functions 10 years ago
.gitignore Update building script to copy source files to build directory if missing. 10 years ago
LICENSE.TXT python: add LICENSE & PKG-INFO for Python module 10 years ago
MANIFEST.in python: add README.pypi* 10 years ago
Makefile python: rename Windows package from capstone-win to capstone-windows 10 years ago
PKG-INFO.src python: make setup.py support pre-built Windows core 10 years ago
PKG-INFO.win python: distribute msvcr120.dll for Windows installer 10 years ago
README.TXT python: indentation for README.TXT 10 years ago
README.pypi-src python: add instructions for PyPi packages 10 years ago
README.pypi-win python: add instructions for PyPi packages 10 years ago
setup.py python: typo in setup.py 10 years ago
setup_cython.py x86: add 3 new undocumented instructions fdisi8087_nop, feni8087_nop & ffreep 10 years ago
test.py python: update Mips modes to CS_MODE_MIPS32 & CS_MODE_MIPS64 10 years ago
test_all.py python: update test_all.py 11 years ago
test_arm.py python: fix test_arm.py 10 years ago
test_arm64.py Fix python binding tests 10 years ago
test_detail.py python: update Mips modes to CS_MODE_MIPS32 & CS_MODE_MIPS64 10 years ago
test_lite.py python: update Mips modes to CS_MODE_MIPS32 & CS_MODE_MIPS64 10 years ago
test_mips.py python: update Mips modes to CS_MODE_MIPS32 & CS_MODE_MIPS64 10 years ago
test_ppc.py python: test_ppc.py prints crx.scale & crx.cond as integers 10 years ago
test_skipdata.py python: fix test_skipdata.py after the change in the core on SKIPDATA's callback prototype 11 years ago
test_sparc.py Fix python binding tests 10 years ago
test_systemz.py fix some conflicts when merging msvc2 into next 11 years ago
test_x86.py x86: add @rex to cs_x86 struct. updated python & java binding for this change 11 years ago
test_xcore.py Fix python binding tests 10 years ago
xprint.py Fix python binding tests 10 years ago

README.TXT

0. This documentation explains how to install Python binding for Capstone
from source. If you want to install it from PyPi package, see the below
docs instead:

- README.pypi-src: How to compile the Capstone core & install binding
at the same time from PyPi package "capstone"

- README.pypi-win: How to install binding for Windows from PyPi package
"capstone-windows". Note that this package already has prebuilt core
inside, so no compilation is needed.

1. To install pure Python binding on *nix, run the command below:

$ sudo make install

To install Python3 binding package, run the command below:
(Note: this requires python3 installed in your machine)

$ sudo make install3

2. For better Python performance, install cython-based binding with:

$ sudo make install_cython

Note that this requires cython installed in your machine first.
To install cython, see section 3 below.

3. To install cython, you have to ensure that the header files
and the static library for Python are installed beforehand.

E.g. on Ubuntu, do:

$ sudo apt-get install python-dev

Depending on if you already have pip or easy_install
installed, install cython with either:

$ sudo pip install cython
or:
$ sudo easy_install cython

NOTE: Depending on your distribution you might also be able to
install the required cython version using your repository.

E.g. on Ubuntu, do:

$ sudo apt-get install cython

However, our cython-based binding requires cython version 0.19 or newer,
but sometimes distributions only provide older version. Make sure to
verify the current installed version before going into section 2 above.

E.g, on Ubuntu, you can verify the current cython version with:

$ apt-cache policy cython

Which should at least print version 0.19


This directory contains some test code to show how to use Capstone API.

- test.py
This code shows the most simple form of API where we only want to get basic
information out of disassembled instruction, such as address, mnemonic and
operand string.

- test_lite.py
Similarly to test.py, but this code shows how to use disasm_lite(), a lighter
method to disassemble binary. Unlike disasm() API (used by test.py), which returns
CsInsn objects, this API just returns tuples of (address, size, mnemonic, op_str).

The main reason for using this API is better performance: disasm_lite() is at least
20% faster than disasm(). Memory usage is also less. So if you just need basic
information out of disassembler, use disasm_lite() instead of disasm().

- test_detail.py:
This code shows how to access to architecture-neutral information in disassembled
instructions, such as implicit registers read/written, or groups of instructions
that this instruction belong to.

- test_<arch>.py
These code show how to access architecture-specific information for each
architecture.


2. To install Python binding on Windows:

Recommended method:

Use the Python module installer for 32/64 bit Windows from:

http://www.capstone-engine.org/download.html


Manual method:

If the module installer fails to locate your Python install, or if you have
additional Python installs (e.g. Anaconda / virtualenv), run the following
command in command prompt:

C:\> C:\location_to_python\python.exe setup.py install

Next, copy capstone.dll from the 'Core engine for Windows' package available
on the same Capstone download page and paste it in the path:

C:\location_to_python\Lib\site-packages\capstone\