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.
65 lines
2.0 KiB
65 lines
2.0 KiB
3 years ago
|
This documentation explains how to build Keystone on Windows.
|
||
|
For *nix OS, see [COMPILE-NIX.md](COMPILE-NIX.md)
|
||
|
|
||
|
|
||
|
1. Dependency
|
||
|
|
||
|
CMake is required as dependency.
|
||
|
Download & install cmake from http://www.cmake.org
|
||
|
|
||
|
Microsoft Visual Studio 2013 or older is required for compiling.
|
||
|
Download & install it from https://www.visualstudio.com
|
||
|
|
||
|
Python is another dependency. Download & install it from
|
||
|
https://www.python.org
|
||
|
|
||
|
|
||
|
2. Open the Visual Studio Command Prompt, and from the root directory
|
||
|
of Keystone source, do:
|
||
|
|
||
|
$ mkdir build
|
||
|
$ cd build
|
||
|
|
||
|
To build DLL file, run:
|
||
|
|
||
|
$ ..\nmake-dll.bat
|
||
|
|
||
|
By default, this builds all architectures, which is: AArch64, ARM, Hexagon,
|
||
|
Mips, PowerPC, Sparc, SystemZ & X86. To compile just some selected ones,
|
||
|
pass a semicolon-separated list of targets to LLVM_TARGETS_TO_BUILD,
|
||
|
like follows if we only want AArch64 & X86.
|
||
|
|
||
|
$ cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DLLVM_TARGETS_TO_BUILD="AArch64;X86" -G "NMake Makefiles" ..
|
||
|
$ nmake
|
||
|
|
||
|
To build LIB file, run:
|
||
|
|
||
|
$ ..\nmake-lib.bat
|
||
|
|
||
|
Like above, this builds all architectures. To compile just some selected ones,
|
||
|
pass a semicolon-separated list of targets to LLVM_TARGETS_TO_BUILD,
|
||
|
like follows if we only want AArch64 & X86.
|
||
|
|
||
|
$ cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DLLVM_TARGETS_TO_BUILD="AArch64, X86" -G "NMake Makefiles" ..
|
||
|
$ nmake
|
||
|
|
||
|
Find the generated libraries in build\llvm\lib\keystone.{dll,lib}
|
||
|
|
||
|
In the case you build LIB file, a tool named "kstool.exe" is also
|
||
|
compiled & available under directory "build\kstool".
|
||
|
(Find source of "kstool" in directory "kstool/kstool")
|
||
|
|
||
|
|
||
|
3. Test Keystone with "kstool" like below.
|
||
|
|
||
|
$ kstool.exe x32 "add eax, ebx"
|
||
|
|
||
|
Run "kstool.exe" without any option to find out how to use this handy tool.
|
||
|
|
||
|
|
||
|
4. Learn more on how to code your own tools with our samples.
|
||
|
|
||
|
For C sample code, see code in directory samples/
|
||
|
|
||
|
For Python sample code, see code in directory bindings/python/
|