capstone/bindings/python
Kalmalyzer 8a6fca85e4 M68K: Branch targets are a separate addressing mode; PC relative displacements printed as target addresses (#1068)
* Branch targets are a separate addressing mode

Branch targets are relative displacements that identify code locations. These are neither .w nor .l nor immediates. This change removes the immediate #s before branch target addresses in disassembly, and represents the actual branch instructions more accurately in the cs_m68k_op datastructure.

M68K Python bindings have also been updated.

* m68k_inst.pc handles better; print target for PC relative offsets

Previous changes to branch operations relied on m68k_inst.pc pointing to (start of instruction + 2). This was not the case - it pointed to the end of the current instruction. This change makes it so that m68k_inst.pc points to (start of instruction), which is simple to work with.

It also changes printing of PC relative offsets to print the absolute target address, which is consistent with how most 68000 assemblers & disassemblers behave.
2018-01-06 20:13:41 +08:00
..
capstone M68K: Branch targets are a separate addressing mode; PC relative displacements printed as target addresses (#1068) 2018-01-06 20:13:41 +08:00
prebuilt Add ability to copy prebuilt libraries from prebuilt directory during python build 2017-03-05 06:08:36 +08:00
pyx Added support for the TMS320C64x architecture. 2017-04-14 17:00:40 +03:00
.gitignore Python: Make cython work with extreme prejudice 2016-10-25 21:49:58 -07:00
BUILDING.txt python: cleanup 2016-10-30 16:19:10 +08:00
LICENSE.TXT python: add LICENSE & PKG-INFO for Python module 2015-01-30 14:45:33 +08:00
Makefile M680X: Target ready for pull request (#1034) 2017-10-21 21:44:36 +08:00
MANIFEST.in Python: Clean up the capstone-windows stuff with extreme prejudice 2016-10-25 21:48:41 -07:00
README.txt Python: Spelling/capitalization/contact fixes in readme 2016-10-25 21:49:58 -07:00
setup.py Add ability to copy prebuilt libraries from prebuilt directory during python build 2017-03-05 06:08:36 +08:00
setup_cython.py cython: add m68x to ext_module_names[] 2017-11-21 15:21:49 +08:00
test_all.py M680X: Target ready for pull request (#1034) 2017-10-21 21:44:36 +08:00
test_arm.py arm: treat ARM address as unsigned 2016-09-04 00:13:50 +09:00
test_arm64.py python: add access field for ARM64 2016-04-12 13:42:07 +08:00
test_basic.py M680X: Target ready for pull request (#1034) 2017-10-21 21:44:36 +08:00
test_customized_mnem.py python: a minor fix for test_customized_mnem.py 2015-04-27 12:56:31 +08:00
test_detail.py M680X: Target ready for pull request (#1034) 2017-10-21 21:44:36 +08:00
test_lite.py M680X: Target ready for pull request (#1034) 2017-10-21 21:44:36 +08:00
test_m68k.py M68K: Branch targets are a separate addressing mode; PC relative displacements printed as target addresses (#1068) 2018-01-06 20:13:41 +08:00
test_m680x.py M680X: Target ready for pull request (#1034) 2017-10-21 21:44:36 +08:00
test_mips.py python: update Mips modes to CS_MODE_MIPS32 & CS_MODE_MIPS64 2014-11-13 11:42:38 +08:00
test_ppc.py python: clean up test_*.py 2015-04-27 11:51:48 +08:00
test_skipdata.py python: cast skipdata function inside binding to simplify the API 2016-10-02 01:35:28 +08:00
test_sparc.py python: clean up test_*.py 2015-04-27 11:51:48 +08:00
test_systemz.py python: clean up test_*.py 2015-04-27 11:51:48 +08:00
test_tms320c64x.py Added support for the TMS320C64x architecture. 2017-04-14 17:00:40 +03:00
test_x86.py retrieve and print "status register updates" info (#995) 2017-09-06 20:37:21 +07:00
test_xcore.py python: clean up test_*.py 2015-04-27 11:51:48 +08:00
xprint.py python: support option CS_OPT_MNEMONIC 2015-04-27 11:34:44 +08:00

To install Capstone, you should run `pip install capstone`.

If you would like to build Capstone with just the source distribution, without
pip, just run `python setup.py install` in the folder with setup.py in it.

In order to use this source distribution, you will need an environment that can
compile C code. On Linux, this is usually easy, but on Windows, this involves
installing Visual Studio and using the "Developer Command Prompt" to perform the
installation. See BUILDING.txt for more information.

If you don't want to build your own copy of Capstone, you can use a precompiled
binary distribution from PyPI. Saying `pip install capstone` should
automatically obtain an appropriate copy for your system. If it does not, please
open an issue at https://github.com/aquynh/capstone and tag @rhelmot - they
will fix this, probably!

--------------------------------------------------------------------------------

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, ARM64 (ARMv8), Mips, PPC, Sparc,
  SystemZ, XCore and X86 (including X86_64).

- 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 wrappers for C++, C#, Go,
  Java, NodeJS, Ocaml, Python, Ruby & Vala ready (available 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 http://www.capstone-engine.org


[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.