mirror of
https://github.com/capstone-engine/capstone.git
synced 2024-11-23 13:39:46 +00:00
b227acc29c
* Basic changes of new arch - BPF * Define some constants * defined some API methods * Able to print MISC instruction * Follow Linux coding style * Ability to show ALU insn names * decode return * Add suite/MC/BPF * decode jump * decode store * decode load * print instruction done * try to implement BPF_reg_access * Implements explicit accessed registers and fix some tiny bugs * Fix unhandled ja case * Added BPF_REG_OFF do fix wrong display in jump class * Great I'm able to decode cBPF with eyes * Fix: misunderstood the 16-byte instruction's imm * Add ldxdw * Add extended-all.cs * Implements cstest/bpf_getdetail.c * Fix memory leak * Add BPF to fuzz * Implemented regs_read and regs_write * Fix missing write-access on ALU's dst * Updated cstool/, test_basic.c, test_detail.c, and test_iter.c * Updated docs * Fix type of cs_bpf#operands * Implements python bindings * Fix some bugs found by self code review * Remove dummy tests * remove typeof * Address comments * Fix MSVC's warnings and add test_bpf.py to bindings/python/Makefile * Fix: call is not offset
88 lines
3.8 KiB
Plaintext
88 lines
3.8 KiB
Plaintext
This documentation explains how to compile Capstone with CMake, focus on
|
|
using Microsoft Visual C as the compiler.
|
|
|
|
To compile Capstone on *nix, see COMPILE.TXT.
|
|
|
|
To compile Capstone on Windows using Visual Studio, see COMPILE_MSVC.TXT.
|
|
|
|
*-*-*-*-*-*
|
|
|
|
This documentation requires CMake & Windows SDK or MS Visual Studio installed on
|
|
your machine.
|
|
|
|
Get CMake for free from http://www.cmake.org.
|
|
|
|
|
|
|
|
(0) Tailor Capstone to your need.
|
|
|
|
Out of archtitectures supported by Capstone, if you just need several selected archs,
|
|
run "cmake" with the unwanted archs disabled (set to 0) as followings.
|
|
|
|
- CAPSTONE_ARM_SUPPORT: support ARM. Run cmake with -DCAPSTONE_ARM_SUPPORT=0 to remove ARM.
|
|
- CAPSTONE_ARM64_SUPPORT: support ARM64. Run cmake with -DCAPSTONE_ARM64_SUPPORT=0 to remove ARM64.
|
|
- CAPSTONE_M680X_SUPPORT: support M680X. Run cmake with -DCAPSTONE_M680X_SUPPORT=0 to remove M680X.
|
|
- CAPSTONE_M68K_SUPPORT: support M68K. Run cmake with -DCAPSTONE_M68K_SUPPORT=0 to remove M68K.
|
|
- CAPSTONE_MIPS_SUPPORT: support Mips. Run cmake with -DCAPSTONE_MIPS_SUPPORT=0 to remove Mips.
|
|
- CAPSTONE_MOS65XX_SUPPORT: support MOS65XX. Run cmake with -DCAPSTONE_MOS65XX_SUPPORT=0 to remove MOS65XX.
|
|
- CAPSTONE_PPC_SUPPORT: support PPC. Run cmake with -DCAPSTONE_PPC_SUPPORT=0 to remove PPC.
|
|
- CAPSTONE_SPARC_SUPPORT: support Sparc. Run cmake with -DCAPSTONE_SPARC_SUPPORT=0 to remove Sparc.
|
|
- CAPSTONE_SYSZ_SUPPORT: support SystemZ. Run cmake with -DCAPSTONE_SYSZ_SUPPORT=0 to remove SystemZ.
|
|
- CAPSTONE_XCORE_SUPPORT: support XCore. Run cmake with -DCAPSTONE_XCORE_SUPPORT=0 to remove XCore.
|
|
- CAPSTONE_X86_SUPPORT: support X86. Run cmake with -DCAPSTONE_X86_SUPPORT=0 to remove X86.
|
|
- CAPSTONE_X86_TMS320C64X: support TMS320C64X. Run cmake with -DCAPSTONE_TMS320C64X_SUPPORT=0 to remove TMS320C64X.
|
|
- CAPSTONE_X86_M680X: support M680X. Run cmake with -DCAPSTONE_M680X_SUPPORT=0 to remove M680X.
|
|
- CAPSTONE_X86_EVM: support EVM. Run cmake with -DCAPSTONE_EVM_SUPPORT=0 to remove EVM.
|
|
- CAPSTONE_X86_WASM: support Web Assembly. Run cmake with -DCAPSTONE_WASM_SUPPORT=0 to remove WASM.
|
|
- CAPSTONE_BPF_SUPPORT: support BPF. Run cmake with -DCAPSTONE_BPF_SUPPORT=0 to remove BPF.
|
|
|
|
By default, all architectures are compiled in.
|
|
|
|
|
|
Besides, Capstone also allows some more customization via following macros.
|
|
|
|
- CAPSTONE_USE_SYS_DYN_MEM: change this to OFF to use your own dynamic memory management.
|
|
- CAPSTONE_BUILD_DIET: change this to ON to make the binaries more compact.
|
|
- CAPSTONE_X86_REDUCE: change this to ON to make X86 binary smaller.
|
|
- CAPSTONE_X86_ATT_DISABLE: change this to ON to disable AT&T syntax on x86.
|
|
|
|
By default, Capstone use system dynamic memory management, and both DIET and X86_REDUCE
|
|
modes are disabled. To use your own memory allocations, turn ON both DIET &
|
|
X86_REDUCE, run "cmake" with: -DCAPSTONE_USE_SYS_DYN_MEM=0 -DCAPSTONE_BUILD_DIET=1 -DCAPSTONE_X86_REDUCE=1
|
|
|
|
|
|
For each option, refer to docs/README for more details.
|
|
|
|
|
|
|
|
(1) CMake allows you to generate different generators to build Capstone. Below is
|
|
some examples on how to build Capstone on Windows with CMake.
|
|
|
|
|
|
(*) To build Capstone using Nmake of Windows SDK, do:
|
|
|
|
mkdir build
|
|
cd build
|
|
..\nmake.bat
|
|
|
|
After this, find the samples test*.exe, capstone.lib & capstone.dll
|
|
in the same directory.
|
|
|
|
|
|
|
|
(*) To build Capstone using Visual Studio, choose the generator accordingly to the
|
|
version of Visual Studio on your machine. For example, with Visual Studio 2013, do:
|
|
|
|
mkdir build
|
|
cd build
|
|
cmake -G "Visual Studio 12" ..
|
|
|
|
After this, find capstone.sln in the same directory. Open it with Visual Studio
|
|
and build the solution including libraries & all test as usual.
|
|
|
|
|
|
|
|
(2) You can make sure the prior steps successfully worked by launching one of the
|
|
testing binary (test*.exe).
|
|
|