unicorn/bindings/python
Ilya Leoshkevich 28c4c665f0 Add "holes" to where the removed x86 registers used to be
A number of x86 registers were removed for #1440, causing a change in
numbering for many other registers. This is causing inconveniences at
the moment, e.g. it's not possible to use the Unicorn2 shared library
as a drop-in replacement for the Unicorn1 one.

Restore the old numbering.

Fixes #1492.
2022-03-22 11:31:58 +01:00
..
prebuilt Allow dlls to be copied out of prebuilt directory 2016-11-17 20:59:39 -08:00
unicorn Add "holes" to where the removed x86 registers used to be 2022-03-22 11:31:58 +01:00
build_wheel.sh PyPI publishing 2021-10-04 22:22:41 +08:00
Makefile Fix gen_const 2021-10-26 13:10:59 +02:00
MANIFEST.in Basically, make python builds work as expected 2016-09-12 14:06:20 -07:00
README.TXT Cleanups/fixes for the library issue conglomerate (#897) 2017-09-24 22:33:01 +08:00
sample_all.sh fix file perms 2015-08-28 21:05:38 -07:00
sample_arm64.py Update sample for MRS hook 2022-02-27 15:28:32 +01:00
sample_arm64eb.py Fix Python 3 samples (#836) 2017-05-15 09:11:22 +08:00
sample_arm.py Implement coprocessor register read/write for python bindings 2022-02-11 23:03:56 +01:00
sample_armeb.py update armeb & arm64eb samples 2017-04-25 12:55:26 +08:00
sample_ctl.py Update python bindings 2021-11-04 21:47:30 +01:00
sample_m68k.py make cleanup 2016-11-06 16:27:24 -08:00
sample_mips.py make cleanup 2016-11-06 16:27:24 -08:00
sample_network_auditing.py Get Python samples running on Python 3 2016-07-29 00:28:43 -07:00
sample_ppc.py import Unicorn2 2021-10-03 22:14:44 +08:00
sample_riscv.py import Unicorn2 2021-10-03 22:14:44 +08:00
sample_s390x.py Add python support for s390x 2022-01-01 00:58:10 +01:00
sample_sparc.py make cleanup 2016-11-06 16:27:24 -08:00
sample_x86.py import Unicorn2 2021-10-03 22:14:44 +08:00
setup.cfg Fixes to make python distribution for windows work 2016-11-05 09:18:50 -07:00
setup.py Bump version 2022-02-13 09:56:10 +01:00
shellcode.py update python binding samples, shellcode.py with 64bit syscall (#1052) 2019-01-15 14:57:11 +08:00

This documentation explains how to install the python binding for Unicorn
from source.

1. Installing on Linux:

	$ sudo python setup.py install

	This will build the core C library, package it with the python bindings, 
	and install it to your system.

    If you want to prevent the build of the native library during the python installation,
    set the environment variable LIBUNICORN_PATH. You may also set this to a directory
    containing libunicorn.so if you wish to use a verison of the native library other than
    the globally installed one.


2. Installing on Windows:

	Run the following command in command prompt:

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

	Next, copy all the DLL files from the 'Core engine for Windows' package available
	on the Unicorn download page and paste it in the path:

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


3. Sample code

	This directory contains some sample code to show how to use Unicorn API.

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

	- shellcode.py
	  This shows how to analyze a Linux shellcode.

	- sample_network_auditing.py
	  This shows how to analyze & interpret Linux shellcode.