Capstone disassembly/disassembler framework for ARM, ARM64 (ARMv8), Alpha, BPF, Ethereum VM, HPPA, LoongArch, M68K, M680X, Mips, MOS65XX, PPC, RISC-V(rv32G/rv64G), SH, Sparc, SystemZ, TMS320C64X, TriCore, Webassembly, XCore and X86.
Go to file
Travis Finkenauer de99147c73 ppc: fix endian check (#1029)
* Remove `big_endian` field of `cs_struct`

Added a helper macro `MODE_IS_BIG_ENDIAN()` to check if
`CS_MODE_BIG_ENDIAN` is set.

Refactored `cs_open()` check for valid mode out of arch-specific code
into arch-independent code. Also added a valid mode check to
`cs_option()`.  The checks use a new global array
`arch_disallowed_mode_mask[]`, which is initialized in the arch-specific
`*_enable()` functions.

Fixes bug where endianness could not be set for ppc.

* Fix Mac OS brew for Travis CI
2017-10-20 23:33:24 +08:00
arch ppc: fix endian check (#1029) 2017-10-20 23:33:24 +08:00
bindings Rename test.c to test_basic.c with corresponding executable name change. (#923) 2017-05-11 22:58:12 +07:00
contrib Fix an integer overflow issue (#871) 2017-03-20 20:13:14 +08:00
cstool cstool: Separate instruction bytes by spaces (#1009) 2017-09-06 21:38:52 +08:00
docs fix typo, style 2016-09-27 07:39:51 -07:00
include Several changes for size reduction (#929) 2017-05-24 13:07:11 +08:00
msvc Compile cstool on Windows using Microsoft Visual Studio (VS). (#927) 2017-05-16 16:52:34 +07:00
packages Update to 3.0.4. Fix EPEL6 build issue 2015-07-16 12:54:49 +02:00
suite arm64: handling of system registers added in ARMv8.1/2 (#960) 2017-07-29 18:27:32 +08:00
tests Rename test.c to test_basic.c with corresponding executable name change. (#923) 2017-05-11 22:58:12 +07:00
windows provide a validity check to prevent against Integer overflow conditions (#870) 2017-03-13 23:34:48 +08:00
xcode Rename test.c to test_basic.c with corresponding executable name change. (#923) 2017-05-11 22:58:12 +07:00
.appveyor.yml rename appveyor.yml to .appveyor.yml 2016-03-15 00:02:39 +08:00
.gitignore update .gitignore 2016-10-11 00:06:07 +08:00
.travis.yml ppc: fix endian check (#1029) 2017-10-20 23:33:24 +08:00
capstone.pc.in fixed hardcoded paths with variables. (#1018) 2017-09-27 09:31:42 +08:00
ChangeLog ChangeLog for 3.0.5-rc3 2017-07-31 13:15:18 +07:00
CMakeLists.txt cmake: do not set libsuffix=64 on MacOS. fix issue #963 2017-07-19 22:53:09 +08:00
COMPILE_CMAKE.TXT add nmake.bat 2017-03-13 15:06:32 +08:00
COMPILE_MSVC.TXT fix typo, style 2016-09-27 07:39:51 -07:00
COMPILE.TXT Improve support for building for Android devices 2015-06-17 12:49:51 -05:00
config.mk OS X kernel support (see https://github.com/aquynh/capstone/pull/528) 2015-11-10 23:02:26 +01:00
CREDITS.TXT cleanup 2017-04-17 10:24:31 +08:00
cs_priv.h ppc: fix endian check (#1029) 2017-10-20 23:33:24 +08:00
cs.c ppc: fix endian check (#1029) 2017-10-20 23:33:24 +08:00
functions.mk Makefile: put common functions into functions.mk 2014-05-01 22:53:52 +08:00
HACK.TXT cstool: update README with more details 2016-10-11 00:20:58 +08:00
LEB128.h skip stdint.h for windows driver configuration 2016-04-23 15:58:31 -07:00
LICENSE_LLVM.TXT initial import 2013-11-27 12:11:31 +08:00
LICENSE.TXT a a newline to LICENSE.TXT 2014-02-20 17:08:28 +08:00
make.sh Add posibility to disable universal build for osx. (#1004) 2017-09-05 21:45:48 +07:00
Makefile Add posibility to disable universal build for osx. (#1004) 2017-09-05 21:45:48 +07:00
MathExtras.h skip stdint.h for windows driver configuration 2016-04-23 15:58:31 -07:00
MCDisassembler.h Disassembler -> Disassembly 2014-04-29 11:21:04 +08:00
MCFixedLenDisassembler.h Disassembler -> Disassembly 2014-04-29 11:21:04 +08:00
MCInst.c Add support to embed Capstone into OS X kernel extensions. 2015-04-10 23:28:12 +08:00
MCInst.h skip stdint.h for windows driver configuration 2016-04-23 15:58:31 -07:00
MCInstrDesc.c Disassembler -> Disassembly 2014-04-29 11:21:04 +08:00
MCInstrDesc.h skip stdint.h for windows driver configuration 2016-04-23 15:58:31 -07:00
MCRegisterInfo.c Disassembler -> Disassembly. also delete an orphaned file 2014-05-08 22:54:58 +08:00
MCRegisterInfo.h skip stdint.h for windows driver configuration 2016-04-23 15:58:31 -07:00
nmake.bat add nmake.bat 2017-03-13 15:06:32 +08:00
pkgconfig.mk bump PKG_TAG to rc3 2017-08-03 09:36:31 +07:00
README add VB to README 2017-04-14 23:26:55 +08:00
RELEASE_NOTES update RELEASE_NOTES 2015-07-15 13:03:41 +08:00
SStream.c remove myinttypes.h 2016-04-26 09:47:30 +08:00
SStream.h arm64: set absolute (rather than relative) address B/BL. issue reported by Pancake 2014-12-12 22:06:06 +08:00
TODO TODO 2015-03-11 11:32:54 +08:00
utils.c Add support to embed Capstone into OS X kernel extensions. 2015-04-10 23:28:12 +08:00
utils.h fix compilation from within a macOS kernel extension 2017-03-08 14:40:22 +03:00

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 bindings for Visual Basic, PHP,
  PowerShell, Emacs, Haskell, Perl, Python, Ruby, C#, NodeJS, Java, GO, C++, OCaml,
  Lua, Rust, Delphi, Free Pascal & Vala ready either 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


[Compile]

See COMPILE.TXT file for how to compile and install Capstone.


[Documentation]

See docs/README for how to customize & program your own tools with Capstone.


[Hack]

See HACK.TXT file for the structure of the source code.


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