Commit Graph

581 Commits

Author SHA1 Message Date
mio aff9c9dc48
Clean debug print and make it compatible with python3.5 2021-10-05 13:48:26 +02:00
lazymio 2aebf93143
Merge pull request #1443 from bet4it/reg
Support to read ST registers in rust bindings
2021-10-04 18:30:30 +02:00
mio e1204d8977
Specify the content type 2021-10-04 18:09:44 +02:00
Bet4 23e01a4862 Support to read ST registers in rust bindings 2021-10-04 23:18:05 +08:00
chfl4gs e571dc278a PyPI publishing 2021-10-04 22:22:41 +08:00
Nguyen Anh Quynh e8bd7ca087 bindings: update X86 register constants 2021-10-04 19:41:41 +08:00
mio ebb468d042
Fix msvc build 2021-10-04 10:44:30 +02:00
Nguyen Anh Quynh 0a7223996d bindings: update constants from ARM registers 2021-10-04 01:04:43 +08:00
Nguyen Anh Quynh 54e7e3b9ef bindings: add Rust 2021-10-04 01:01:43 +08:00
Nguyen Anh Quynh aaaea14214 import Unicorn2 2021-10-03 22:14:44 +08:00
Bet4 772558119a
Add missing constants in rust bindings (#1423)
* Update arm64.rs

* Update mips.rs
2021-07-08 20:43:00 +08:00
Bet4 9c6134ca91
Add Rust bindings to master branch (#1401)
* Rust bindings (#1295)

* rust bindings init

* updated bindings/README

* Improved Rust bindings: (#1309)

* Added basic block hooking
* Changed confusing struct naming. Before: Protection::All -> R,W,X, Now: Permission::All -> R,W,X
* Fixed issue with remove_hook(..). Implementation tried to remove hook from incorrect hashmap.
* Made unused private vmmap(..) public.

* Improve Rust bindings (#1367)

* fixed tests

* constant readability

* HookType as bitflags

* Mode as bitflags

* improve bitflags

* cargo fmt

* removed unnecessary "as usize"

* fixed buggy deallocation of uc_context structs

* Remove data field in rust bindings

Co-authored-by: Lukas Seidel <pr0me@users.noreply.github.com>
Co-authored-by: Nikolas Eller <nikolas.e@mail.de>
Co-authored-by: Simon Wörner <git@simon-woerner.de>
Co-authored-by: floesen <floesen@users.noreply.github.com>
2021-05-26 23:05:12 +08:00
Nguyen Anh Quynh 2874435d2f bump version to 1.0.3 2021-05-16 21:38:08 +08:00
insane-shane 4f9a6cfcf3
Handle exceptions raised in Python hook functions (#1387) 2021-04-26 00:35:56 +08:00
w4kfu-synacktiv 21ec6e8f83
Add ARM BE8 support (#1369)
Co-authored-by: w4kfu <gw4kfu@gmail.com>
2021-03-31 21:22:35 +08:00
iGio90 e42e58cd91
Remove deprecated javah and build with javac (#1360)
Hi, I was having trouble building java bindings on latest ubuntu. I installed jdk8 which has javah but somehow was failing during install (missing compiled classes even if they were in place in unicorn/). I guess mixing with jdk11 pop the issue. 
Using javac from most recent jdk works very fine.
2020-12-23 13:28:17 +08:00
Peter Meerwald-Stadler 770d5679c3
Fix some typos in include files (#1350) 2020-10-29 11:16:45 +08:00
smeng9 5e4423a419
Update binding list (#1349) 2020-10-28 09:47:59 +08:00
LAADHARI e639d3fc93
FIX java binding compilation #1339 (#1340) 2020-10-07 11:43:26 +08:00
lazymio 1044403d38
Implement uc_context_free (#1336)
* Implement uc_context_free

* Use uc_context_free for python bindings

* Format code

* Simplify code

* Move next,context inside while loop

* Add my name to CREDITS.TXT
2020-09-24 22:28:55 +08:00
lazymio 4441394258
Fix context saving (#1335)
* Fix context size

* Make UcContext convertible to bytes and picklable

Fix when updaing context

* Test context pickling

* Fix double free when the context is pickled from bytes
2020-09-24 00:53:23 +08:00
☃ Stephen Shkardoon ☃ b1459f7554
Fix failing test caused by removal of UC_ERR_TIMEOUT (#1305)
Caused by fbef45b18f.
Now the code assumes if it completes without an error, it was
successful.
2020-09-21 10:37:38 +08:00
chfl4gs c03f50f76a
Fixing installation on cygwin, Travis-ci cache adjustment (#1322)
* Adding Travis-CI cmake static

* fix 64-bit fstenv (#1300)

* fix 64-bit fstenv

* fix fstenv

* safe_zip to false and travis adjustment

* Fixed zip_safe and cygwin setup

Co-authored-by: liangjs <761232680@qq.com>
2020-09-10 10:01:13 +08:00
Nguyen Anh Quynh 564ae2b14a python: correct a comment on hooking on sample_arm64.py. fix #1292 2020-06-10 17:56:01 +08:00
chfl4gs 9288b4a845
adding pypi workflow (#1280)
* adding pypi workflow

* PyPI distribution packages workflow
2020-06-06 12:53:31 +08:00
Nguyen Anh Quynh 2e0f753e6f save cpu->jmp_env in saving context, so uc_emu_start() can be reentrant. also improved Python binding on handling context 2020-06-05 20:12:44 +08:00
Nguyen Anh Quynh 99be837364 python: add long description to setup.py 2020-05-29 11:56:24 +08:00
Nguyen Anh Quynh fbef45b18f remove UC_ERR_TIMEOUT, so timeout on uc_emu_start() is not considered error. added UC_QUERY_TIMEOUT to query exit reason 2020-05-24 23:54:45 +08:00
Nguyen Anh Quynh cf3451c37a bindings: update ARM64 registers 2020-05-10 21:51:14 +08:00
Dominik Maier 625399774c
X64 base regs (#1166)
* x86: setup FS & GS base

* Fixed base register writes for x64, removed then for x16/x32 (the don't exist there?)

* FS reg comes before GS so the base regs do so, too

* added shebang to const_generator.py

* Added base regs to and added 'all' support to const_generator

Co-authored-by: naq <aquynh@gmail.com>
2020-05-05 08:34:51 +08:00
Pedro Tammela 18aa2627f7
fix binding install on python2 (#1231) 2020-04-24 17:15:12 +08:00
Saagar Jha d69ebfa55c
Make it easier to link against libunicorn on macOS (#1195)
Adding @rpath to the install name to make it possible to link against
the library without modifying it with install_name_tool. Copying both
the versioned and unversioned dylibs simplifies linking.
2020-02-12 14:16:34 +08:00
Nguyen Anh Quynh 810bd34eef python: handle UC_ERR_TIMEOUT, so sample_x86.py behaves like sample_x86.c 2020-01-01 10:11:16 +08:00
Nguyen Anh Quynh b0d5837c61 bindings: add UC_ERR_TIMEOUT 2019-12-29 00:19:34 +08:00
Audrey Dutcher 3cea38bff7 restrict msbuild to win32 platform (#1172) 2019-11-20 00:34:56 +08:00
naq 3b17db0d84 bindings: update after the last commit on adding ARM modes 2019-10-26 05:02:39 +08:00
Audrey Dutcher fd3ccb2ef7 Python packaging logic for msvc build (#1151)
* remove bundling of DLLs we no longer need!

* Add logic for building with msvc in python setup

* Also include the msvc build scripts with sdist
2019-10-10 22:00:42 +08:00
naq 355eaecc12 bindings: update after addition of UC_HOOK_INSN_INVALID 2019-09-23 01:54:24 +08:00
Azertinv 07f94ad1fc Added an invalid instruction hook (#1132)
* first draft for an invalid instruction hook

* Fixed documentation on return value of invalid insn hook
2019-09-23 01:53:06 +08:00
AeonLucid c46e745338 Fixes #1143 (#1144) 2019-09-16 01:58:08 +08:00
BAYET 8987ad0fff Handle serialization of cpu context save (#1129)
* Handle the cpu context save in a more pythonic way, so the context can be serialized and reuse in an other process using the same emulator architecture and modes

* Fix type error ; mistakes a size_t uint64_t ; breaks in 32bit...
2019-09-07 19:09:17 +08:00
Guille Polito 56ac8859b3 Add pharo-unicorn to binding list (#1110)
* Add pharo-unicorn to binding list

* Add Pharo
2019-07-31 15:56:28 +08:00
kj.xwings.l 24f55a7973 Removed hardcoded CP0C3_ULRI (#1098)
* activate CP0C3_ULRI for CONFIG3, mips

* updated with mips patches

* updated with mips patches

* remove hardcoded config3

* git ignore vscode

* fix spacing issue and turn on floating point
2019-07-06 17:53:02 +08:00
Lukas Dresel 55d8d073bd support for YMM registers ymm8-ymm15 (#1079) 2019-04-01 11:00:34 +08:00
Jonas d6d4131873 Added x86Msr functions for the go bindings (#986) 2019-03-07 08:39:38 +08:00
Nguyen Anh Quynh 07cafff76a bindings: update for latest ARM registers addition 2019-03-07 08:38:41 +08:00
Nguyen Anh Quynh 6d47b38b7f bindings: update after recent addition of ARM_REG_IPSR 2019-02-28 09:56:29 +08:00
Nguyen Anh Quynh 738d102989 bindings: add newly added register MXCSR 2019-02-15 13:01:27 +08:00
kj.xwings.l 8c6cbe3f3c update python binding samples, shellcode.py with 64bit syscall (#1052)
* update python binding samples, shellcode.py with 64bit syscall

* fix with quynh comments

* fix with more q comments

* reformatted

* reformatted and moved file

* reformatted and moved file

* delete file

* delete dead code

* deleted more dead code

* deleted more dead code / fix bugs

* fix 64bit eip intno eax

* rearrage rip

* Inconsistent print
2019-01-15 14:57:11 +08:00
Diego Argueta f243818806 Add Lua binding to README (#1050)
Closes https://github.com/dargueta/unicorn-lua/issues/1
2018-12-24 17:45:40 +08:00
Brian McKenna 873fffc505 Haskell bindings: use ExceptT instead of deprecated EitherT (#1034) 2018-10-25 12:54:35 -03:00
Vladimir Panteleev 2ab9e83703 bindings/README: Add D bindings (#1010) 2018-09-11 12:45:07 +08:00
Coldzer0 84220d8360 Pascal/Delphi binding (#987)
* Pascal/Delphi binding

Pascal/Delphi language binding

* update credits
2018-08-03 20:33:25 +08:00
Duncan Ogilvie 0b3cd70e67 Update dotnet bindings (#973) 2018-07-05 21:30:33 +08:00
Disconnect3d 19ffa83d43 Fix naming in Python sample_x86.py (#961) 2018-05-07 09:44:27 +08:00
Sebastian Willenborg 9a01ae8379 Fix tests when using go 1.10 (#949) 2018-03-21 00:36:37 +08:00
Nguyen Anh Quynh 1f408ce359 java: cleanup Makefile 2018-03-12 13:41:38 +08:00
Jeremy Sears 94b1168776 Fix Java Makefile on Darwin (#936)
* Fixes the logic for Dylib extensions on macOS.
* Adds an uninstall task and documentation.
2018-03-12 20:40:40 +07:00
Nguyen Anh Quynh 505f926992 link to Crystal binding 2017-12-23 00:26:40 +08:00
Nguyen Anh Quynh 41cc047b87 bindings: update after #922 2017-12-20 22:13:29 +08:00
Stephen 5a117c84ff add travis testing path (#930)
closes #927
2017-12-17 19:24:09 +08:00
Sascha Schirra bc34c36eae version changed and unicorn.gemspec renamed to unicorn-engine.gemspec (#915) 2017-10-27 20:30:01 +08:00
Sascha Schirra 8df86c86a4 changed gem name to unicorn-engine (#911)
* changed gem name to unicorn-engine

* changed the gem name in Makefile
2017-10-17 00:53:20 +08:00
Andrew Dutcher 12642c2555 Cleanups/fixes for the library issue conglomerate (#897)
* Python: Disable distribution of static library on linux and macos; add environment variable LIBUNICORN_PATH to let user specify location of native library; prevent build of native library if this option is enabled; closes #869

* Python: Update README.TXT to describe how to manage the building and usage of the native library
2017-09-24 22:33:01 +08:00
Sascha Schirra 13007eb12a renamed unicorn gem to unicorn-engine (#895)
* renamed gem unicorn to unicorn-engine

* renamed modules to unicornengine

* renamed Module Unicorn to UnicornEngine and the gem unicorn-engine to unicornengine

* unicornengine -> unicorn_engine
2017-09-19 07:43:21 +07:00
fallenoak 46ae3a042e Ruby: Support reading and writing x86 FPU stack registers (#892)
In order to reduce rounding problems from calculations, FPU stack
registers for x86 architectures contain values stored in an
80-bit extended precision format.

As a result, reading and writing to these registers requires
specific handling.

This update brings the Ruby bindings in line with the Python
bindings by supporting reading and writing the FPU stack registers
using 2-element arrays: [mantissa, exponent]

The mantissa array element contains the first 64 bits of the FPU
stack register.

The exponent array element contains the last 16 bits of the FPU
stack register.
2017-09-17 22:44:30 +07:00
Benno Fünfstück b0b5f8442d python: Fix exception in finalizer at exit (#873)
Sometimes, the finalizer for an `UcRef` runs so late that the members of the
module have already been set to `None`. We need to make sure that we don't
depend on anything in the module, or we risk getting a Exception when we try
to access the `release_handle` method of `None` (`Uc`).
2017-09-15 22:21:25 +07:00
Jonas a893bcf138 Changed constatns in ruby gdt example (#876)
I think those two numbers are wrong, see http://wiki.osdev.org/Global_Descriptor_Table
2017-08-29 17:03:52 +07:00
Andrew Dutcher 744c34261f Don't error during sdist if config-host.mak doesn't exist (#846) 2017-05-31 11:36:33 +08:00
Sascha Schirra 6d8031eca4 typo fixed: contest_restore -> context_restore (#843) 2017-05-23 00:52:34 +08:00
misson20000 9cb64915c7 fix Ruby bindings (#830)
* fix mem_unmap and query for Ruby bindings

* ruby bindings: fix issues with GC freeing callbacks while we still have references to them

* ruby bindings: add test for garbage collection of hooks

* ruby bindings: let the VM garbage collect hooks properly this time

* ruby bindings: update garbage collection test to make sure Proc is garbage collected after Uc is collected

* ruby bindings: fix m_uc_hook_add to return the ruby VALUE with proper memory management instead of making another one with bad memory management

* ruby bindings: fix cb_hook_intr signature

* add architecture query

* ruby bindings: only treat certain x86 registers specially if we're actually on x86

* only treat certain x86 registers specially if we're actually on x86 (uc_reg_read and uc_reg_write)

* ruby bindings: read and write ARM64's 128-bit NEON registers
2017-05-22 20:46:30 +08:00
misson20000 3fdb2d2442 add architecture query (#842) 2017-05-21 09:47:02 +08:00
Fangrui Song 85e0a54e35 Fix Python 3 samples (#836) 2017-05-15 09:11:22 +08:00
misson20000 014ccfb94a Aarch64 add thread registers (#834)
* add thread registers to AArch64

* update bindings to add AArch64 thread registers

* fix indentation for register read/write switch-case in unicorn_aarch64.c
2017-05-14 14:42:49 +07:00
Ryan Hileman 4b50ca5cec Go: improve hook callback speed by 30% and add a HOOK_CODE benchmark (#835)
* add x86 hook benchmark

* Go: improve hook callback speed by 30%
2017-05-14 00:12:57 +07:00
Ryan Hileman d39c20acfe Go: fix NewRegBatch([]int{}) (#831) 2017-05-12 09:39:04 +07:00
Ryan Hileman 37edadedec go: add faster RegBatch type (#822) 2017-05-06 22:32:35 +08:00
Samuel Groß 5385baba39 Implemented read and write access to the YMM registers (#819) 2017-05-05 09:02:58 +08:00
zhangwm 4a62409949 arm64eb: arm64 big endian also using little endian instructions. (#816)
* arm64eb: arm64 big endian also using little endian instructions.

* arm64: using another example that depends on endians.

example:
1. store a word: 0x12345678
2. load a byte:
   * little endian : 0x78
   * big endian    : 0x12
2017-05-04 20:00:48 +08:00
Ryan Hileman 187b470245 add arm64 CPACR_EL1 register support (#814) 2017-05-02 14:51:19 +08:00
David Zimmer 9eebd6daa3 vb bindings remove DYNLOAD (#812) 2017-04-27 20:43:47 +08:00
xorstream fa45a42c76 Removed MSVC binding. (#808) 2017-04-27 10:21:04 +08:00
Nguyen Anh Quynh 0109cd6c8a Merge branch 'master' into a64 2017-04-25 13:00:15 +08:00
Nguyen Anh Quynh 2bd40b9c91 update armeb & arm64eb samples 2017-04-25 12:55:26 +08:00
Nguyen Anh Quynh 09d14704a5 bindings: update after UC_VERSION_EXTRA change 2017-04-25 12:41:00 +08:00
zhangwm 2e973a13f0 arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
Nguyen Anh Quynh e917c9de10 Merge branch 'master' into msvc2 2017-04-21 01:17:00 +08:00
Nguyen Anh Quynh 5dbc640b9a bump UC_VERSION_EXTRA to 1 2017-04-20 14:14:24 +08:00
Nguyen Anh Quynh 7441cfe4e5 Update unicorn.py
space
2017-04-18 07:46:12 +08:00
tylerni7 4f07910eae handle not having a path (#798) 2017-04-18 07:44:48 +08:00
Nguyen Anh Quynh 094ca80092 fix conflicts 2017-03-30 12:23:24 +08:00
zhangwm d2740b17ce armeb: add C sample for armeb. 2017-03-13 23:19:09 +08:00
zhangwm d8fe34a2e8 armeb: Add support for ARM big endian. 2017-03-13 22:32:44 +08:00
Nguyen Anh Quynh c01dcf0a14 fix merge conflicts 2017-03-10 21:04:33 +08:00
feliam 0150ca24b1 Add support for ARM application flags - APSR register (#776) 2017-03-09 22:28:03 +08:00
stevielavern b3a5eae81c uc_reg_read & uc_reg_write now support ARM64 Neon registers (#774)
* uc_reg_read & uc_reg_write now support ARM64 Neon registers

* Do not reuse uc_x86_xmm for uc_arm64_neon128. TODO: refactor both classes to use the same parent.
2017-03-07 21:29:34 +08:00
Nguyen Anh Quynh 117b48c33c bindings: use diff -u in Makefile 2017-02-26 16:52:06 +08:00
Adrian Herrera c090f198ad Haskell bindings update (#767)
* haskell: Properly handle invalid memory access

* haskell: source cleanup

* haskell: added support for batch reg read/write
2017-02-26 09:27:35 +08:00
Nguyen Anh Quynh f4325f8c4e bindings: update to support X86 MSR id 2017-02-24 21:51:01 +08:00
Ahmed Samy 02e6c14e12 x86: add MSR API via reg API (#755)
Writing / reading to model specific registers should be as easy as
calling a function, it's a bit stupid to write shell code and run them
just to write/read to a MSR, and even worse, you need more than just a
shellcode to read...

So, add a special register ID called UC_X86_REG_MSR, which should be
passed to uc_reg_write()/uc_reg_read() as the register ID, and then a
data structure which is uc_x86_msr (12 bytes), as the value (always), where:
	Byte	Value		Size
	0	MSR ID		4
	4       MSR val		8
2017-02-24 21:37:19 +08:00
Nguyen Anh Quynh 6ea39f7d5a merge msvc with master 2017-02-24 10:39:36 +08:00
Sascha Schirra eb4dc61c66 Updated ruby bindings (#744)
* added methods for uc_context_save, uc_context_restore

* added test for context_save

* changed version of the lib
2017-01-29 08:13:17 +08:00
Nguyen Anh Quynh b616115df1 update ChangeLog 2017-01-25 12:00:18 +08:00
Nguyen Anh Quynh a735576dd3 python: support uc_mem_regions() API 2017-01-24 12:47:27 +08:00
xorstream 21c0580d63 Remove old project dir. 2017-01-22 15:50:28 +11:00
xorstream 45cefc2cf6 Sync with current msvc branch. 2017-01-22 15:49:14 +11:00
xorstream a868ad9dc7 Moved ./bindings/msvc_native into ./msvc 2017-01-22 11:38:48 +11:00
Nguyen Anh Quynh 40434f6081 Update config-host.h
msvc: cleanup config-host.h
2017-01-22 04:53:58 +08:00
Nguyen Anh Quynh 5a1e86d46b update Windows DLL dependency 2017-01-22 00:39:21 +08:00
xorstream 2ae2134402 Added prebuild script to remove generated files and started adding projects for other CPUs. (#725)
* Changed some MSVC compatibility defines based on MSVC version.

* Added prebuild_script.bat to remove leftover configure generated files before building.

Also added project files and MSVC copies of configure generated files for all supported CPUs.
2017-01-21 23:22:51 +08:00
xorstream 37ac0efcea Added prebuild_script.bat to remove leftover configure generated files before building.
Also added project files and MSVC copies of configure generated files for all supported CPUs.
2017-01-22 01:17:36 +11:00
Nguyen Anh Quynh 17f01469ad msvc_native: add .gitignore 2017-01-21 18:12:00 +08:00
xorstream 770c5616e2 Automated leading tab to spaces conversion. 2017-01-21 12:28:22 +11:00
xorstream df41c49e2d Fixed warning about {} initialisers. 2017-01-21 11:41:11 +11:00
xorstream 429bfca48e Fixes for MSVC native support to still work with GCC/GNU. 2017-01-21 01:07:10 +11:00
xorstream 00ca6b1a5f Save copies of generated qapi files. 2017-01-21 00:31:03 +11:00
xorstream 8840d5b42b Save copies of generated qapi files. 2017-01-21 00:30:50 +11:00
xorstream fac6a66860 platform.h move #3 2017-01-21 00:13:21 +11:00
xorstream 1aaf57ca54 Some more little edits to prepare for pull request. 2017-01-20 22:46:32 +11:00
xorstream 1fea4e6d87 Some small changes to clean up before pull request. 2017-01-20 22:34:14 +11:00
xorstream 5c7c8375f9 Unicorn interface working with test app in 32bit and 64bit builds 2. 2017-01-20 17:28:14 +11:00
xorstream 002151874a Unicorn interface working with test app in 32bit and 64bit builds. 2017-01-20 17:27:22 +11:00
xorstream 1aeaf5c40d This code should now build the x86_x64-softmmu part 2. 2017-01-19 22:50:28 +11:00
xorstream 37f9a248ea This code should now build the x86_x64-softmmu part. 2017-01-19 22:42:28 +11:00
xorstream d56d09e5e1 Merge remote-tracking branch 'unicorn-engine/master' into msvc_native 2017-01-16 17:26:12 +11:00
xorstream 940c857987 Started the port for MSVC native support. 2017-01-16 17:21:12 +11:00
Nguyen Anh Quynh d6ba083c45 update CREDITS.TXT 2017-01-16 09:43:11 +08:00
David Zimmer 523fb9d9fc VB6 bindings and dynload update w/ uc_context* and uc_free api,… (#715)
* msvc unicorn.def and dynload.c added new uc_context* and uc_free api, includes support for older dlls compiled with uc_context_free (can remove next binary release)

* vb6 bindings & x86 32bit sample class for unicorn
2017-01-16 09:40:56 +08:00
hedger d2b7d13443 Fixed circular refs preventing Uc instances from being GC'd. Added a test case, requires `objgraph` module. 2017-01-11 18:23:21 +03:00
Nguyen Anh Quynh 6378db99dc Merge pull request #712 from lunixbochs/go-free-regions
go: fix uc_free, free uc_mem_regions pointer
2017-01-11 09:27:45 +08:00
Chris Eagle 8adc8afc63 Java bindings (#711)
* Remove glib from samples makefile

* support new APIs

* reimplement register batch mode interface

* stop using deprecated java API
2017-01-11 09:27:16 +08:00
Ryan Hileman ab3828222a go: fix uc_free, free uc_mem_regions pointer 2017-01-10 16:54:54 -05:00
Nguyen Anh Quynh bc569f5a54 rename API uc_mem_free() to uc_free(). see #662 2017-01-10 20:59:14 +08:00
Nguyen Anh Quynh fdbbdc6216 rename uc_context_free() to uc_mem_free(). see #373 2017-01-09 20:52:14 +08:00
Chris Eagle 21ffaf7d10 Java bindings (#709)
* Remove glib from samples makefile

* support new APIs

* reimplement register batch mode interface

* stop using deprecated java API
2017-01-06 23:56:53 +08:00
Andrew Dutcher 7bd4d62dcb Copy prebuilt static library if available. Disallow uploads from builds that fail to provide the static library 2017-01-04 06:45:18 -08:00
Andrew Dutcher 5d8934f5a9 Python: Automatically conform to PEP440 for version numbers 2017-01-04 05:51:55 -08:00
Nguyen Anh Quynh 07aa027167 msvc docs: no longer need libglib. add libpcre as dependency 2017-01-01 23:41:15 +08:00
Nguyen Anh Quynh 9a79d6fe9f Merge branch 'master' into noglib2 2016-12-27 16:48:23 +08:00
Andrew Dutcher bf2cd79a4d Windows: export a static lib that can be used outside of mingw (#699)
* Windows: export a static lib that can be used outside of mingw

* Add comments to windows_export.bat
2016-12-27 16:30:07 +08:00
Nguyen Anh Quynh 55e61f65e4 python: only preload librt.so on Linux 2016-12-26 15:54:46 +08:00
Nguyen Anh Quynh 4805407fb6 fix python test on Ubuntu 12.04 by preloading librt.so 2016-12-26 15:12:48 +08:00
Nguyen Anh Quynh 7287f2a82f Go: fix Travis test on Mac 2016-12-25 18:40:23 +08:00
Nguyen Anh Quynh af4c29c57f Go: attempt to fix compilation issue on missing clock_gettime() 2016-12-25 01:34:59 +08:00
me 1d85d1763d Merge branch 'master' into noglib 2016-12-24 13:21:53 +08:00
Antoine a7dddf6c5f python bindings: restore FreeBSD support (#698)
* python bindings: restore FreeBSD support

* python binding: use libunicorn.so if the platform is unknown
2016-12-24 00:59:19 +08:00
Chris Eagle e46545f722 remove glib dependency by provide compatible replacements 2016-12-18 14:56:58 -08:00
Nguyen Anh Quynh bd339533ca python: comment out a debug code 2016-12-04 20:46:52 +07:00
Nguyen Anh Quynh 4613580e07 python: typo 'prebuilt' dir 2016-12-04 18:18:24 +08:00
Nguyen Anh Quynh e34812c7dd fix merge conflict 2016-11-20 16:36:56 +08:00
Nguyen Anh Quynh 2a4c316b6f python: correct a comment on sample_arm.py 2016-11-19 16:51:08 +08:00
Nguyen Anh Quynh 3543452b06 ruby: update unicorn_const.rb 2016-11-19 16:48:30 +08:00
Andrew Dutcher 188a1d78d3 Allow dlls to be copied out of prebuilt directory 2016-11-17 20:59:39 -08:00
Stephen 9f0cdc4be9 Update .travis.yml
Update eflags_nosync.c
Update sigill2.c
Update ro_mem_test.c
Update ro_mem_test.c
Update nr_mem_test.c
Update mem_fuzz.c
Update mem_double_unmap.c
Update emu_stop_in_hook_overrun.c
Update eflags_nosync.c
remove unused
Update Makefile
Update Makefile
Update Makefile
Update Makefile
Update Makefile
Update Makefile
Update Makefile
Update mem_64_c.c
Update mem_64_c.c
Update Makefile
Update Makefile
Update Makefile
Update Makefile
Update Makefile
Update Makefile
Update .travis.yml
try android ndk build
Update unicorn.py
Update unicorn.py
Update Makefile
Update unicorn.py
Update unicorn.py
remove an untrue comment

if a dll/so/dylib gets loaded at runtime is dependent on many different factors, primarily the LD/DYLD paths. Those do not always include the current working directory
Update Makefile
Update .appveyor.yml
Update .travis.yml
Update Makefile
Update .appveyor.yml
Fix bad sample
2016-11-11 07:45:06 -08:00
Stephen 186540e160 make cleanup 2016-11-06 16:27:24 -08:00
Andrew Dutcher 876570c8d7 Fixes to make python distribution for windows work 2016-11-05 09:18:50 -07:00
Nguyen Anh Quynh f8e82485da python: print out _path_list with next line 2016-11-05 01:55:12 +08:00
Nguyen Anh Quynh 88bd6453d5 python: add a debug code to print out _path_list 2016-11-05 01:51:13 +08:00
Nguyen Anh Quynh d46911d301 Merge pull request #661 from lowlyw/ruby_binding_fix
fix signedness issue with reg read/write in ruby bindings
2016-11-02 15:58:59 +08:00
Nguyen Anh Quynh ffa36b9001 python: remove redundant free() prototype. bug reported by Mahin 2016-11-01 08:57:33 +08:00
Adrian Herrera eccef31651 [haskell] Added testI386ContextSave function
Based on test_i386_context_save function in samples/sample_x86.c
2016-10-31 11:57:13 +01:00
Ryan Hileman 64f4692c22 Go: add context api (#668) 2016-10-31 16:00:57 +08:00
Adrian Herrera 19028f41f6 Updates to Haskell bindings (#667)
* [haskell] Added uc_context_* support

As per issue #662

* [haskell] Updated bindings for commit 4083b87032

Updated for introduction of UC_HOOK_MEM_READ_AFTER.

* [haskell] Style fixes
2016-10-30 10:51:02 +08:00
Nguyen Anh Quynh 4d5738eeb5 python: revert the changes on APIs made by @mrphrazer 2016-10-27 16:45:10 +08:00
Lowly Worm df497a9502 fix signedness issue with reg read/write in ruby bindings 2016-10-26 00:30:22 -07:00
Tim Blazytko 17fd89a27b python bindings: updated signed reg fix 2016-10-26 09:13:19 +02:00
Tim Blazytko 632f3aaa71 fixed python bindings signed/unsigned regs/mem 2016-10-25 20:43:01 +02:00
Nguyen Anh Quynh 44ab083d9b Merge branch 'master' of https://github.com/unicorn-engine/unicorn 2016-10-25 14:38:24 +08:00
Nguyen Anh Quynh 7a1930a879 add UC_VERSION_{MAJOR, MINOR, EXTRA} 2016-10-25 14:37:47 +08:00
Sascha Schirra 2f15e2119d add new constants 2016-10-22 17:02:46 +02:00
Sascha Schirra 2c82671704 add command to create constants file for ruby 2016-10-22 17:02:35 +02:00
Nguyen Anh Quynh 4083b87032 add new hook type UC_HOOK_MEM_READ_AFTER, adapted from PR #399 by @farmdve. updated all bindings, except Ruby & Haskell 2016-10-22 11:19:55 +08:00
Stephen bc08bfda67 Unit testing in CI (#651)
- in appveyor, install clang and cmake in cygwin, enable package upgrades, and build cmocka and enable testing for gcc only
- in `gitignore`, ignore generated cmocka folder
- in travis, use brew in osx to install cmocka, and enable testing for gcc and clang on os x and linux
- in `Makefile`, change to use `uname -s` to determine os type
- make `install-cmocka-linux.sh`, a simple shell script to download and install cmocka on linux
- in `bindings/Makefile`, enable `make -c` to call subdirectory makefiles instead of `cd [dir] && make` and include environment variables for runtime access to generated libraries
- in `samples/Makefile`, change to use `uname -s` to determine os type, remove `clean_bins` from `all` command, and include `Werror` for compile strictness
- in `tests/unit/Makefile`, add `cflags` for compile time access to cmocka headers and library, include execute vars for runtime access to cmocka and unicorn libs
- in `tests/unit/test_tb_x86.c`, comment out assert that would not compile
2016-10-22 00:21:10 +08:00
Nguyen Anh Quynh 67905ab147 python: rename test_i386_reg_save() to test_i386_context_save() 2016-10-13 20:57:34 +08:00
Andrew Dutcher bfa51bb5dc rename another saved regs to saved context 2016-10-11 13:07:53 -07:00
Andrew Dutcher 1ab2154fe5 Change save/restore API to have explicit alloc/free functions. Python has explicit save/update functions. 2016-10-07 11:39:42 -07:00
Nguyen Anh Quynh 73577cbcd1 rename uc_regstate_restore to uc_context_restore, uc_context_save to uc_context_save 2016-10-07 10:03:19 +08:00
Nguyen Anh Quynh b7cdbe7a88 Merge branch 'feat/reg_save_restore' of https://github.com/rhelmot/unicorn into rhelmot-feat/reg_save_restore 2016-10-07 09:57:07 +08:00
Andrew Dutcher e3b0e52013 Rename save/restore functions to match the style of the rest of the API 2016-09-28 21:21:44 -07:00
Nguyen Anh Quynh 60a7371ec2 Merge branch 'master' of https://github.com/unicorn-engine/unicorn 2016-09-22 08:46:30 +08:00
Nguyen Anh Quynh d90ec0e74d add link to Perl binding 2016-09-22 08:46:25 +08:00
Adrian Herrera 65f1e4d550 [haskell-bindings] Fixed ARM THUMB sample as per issue #638 2016-09-21 09:47:52 +02:00
Riccardo Schirone c16a13495d bindings/python: fix install3 2016-09-20 14:22:38 +00:00
Nguyen Anh Quynh 4188c4cbca Merge branch 'master' into rhelmot-feat/setup_stuff 2016-09-20 21:00:38 +08:00
Nguyen Anh Quynh 95e8dc0fb8 ruby & java: fix address of Thumb sample 2016-09-20 20:16:29 +08:00
esanfelix 7d99b598f1 Fix #638 for python sample too 2016-09-20 10:29:21 +02:00
Luke Nelson 3bc55f9568 Relax transformers constraint for haskell bindings for GHC 8 2016-09-15 19:04:18 -07:00
Andrew Dutcher ac99b5bd14 Minor tweaks to python setup process; update gitignore 2016-09-12 14:06:50 -07:00
Andrew Dutcher 47af3ca190 Remove PKG-INFO make lines left over from the original capstone skeleton 2016-09-12 14:06:20 -07:00
Andrew Dutcher edd49cd21c Remove version number from shared library filename packaged with python bindings 2016-09-12 14:06:20 -07:00
Andrew Dutcher 6c042410ae Basically, make python builds work as expected 2016-09-12 14:06:20 -07:00
Andrew Dutcher 885b809004 Add python bindings for reg save/restore 2016-09-08 14:40:39 -07:00
4577 1f978de447 Remove BUILDDIR-specific code 2016-09-04 08:59:31 +02:00
Andrew Dutcher 41b5aa0bdc Change xmm struct names, for style and for correctness 2016-08-22 17:29:13 -05:00
Andrew Dutcher 9c720092d3 Add xmm register read/write samples in C and python 2016-08-14 18:45:59 -07:00
Andrew Dutcher 4a8f52ae7f support xmm registers 2016-08-09 19:34:34 -07:00
Nguyen Anh Quynh 236b6e9085 Merge pull request #605 from zchee/readme-ex
Fix document file extension
2016-08-08 18:07:46 +08:00
Koichi Shiraishi adcedea8e4
Fix document file extension
Signed-off-by: Koichi Shiraishi <zchee.io@gmail.com>
2016-08-08 17:33:49 +09:00
starfleetcadet75 12a809624a Fix issue #603 2016-08-07 23:49:36 -04:00
Andrew Dunham c87a487fec Get Python samples running on Python 3 2016-07-29 00:28:43 -07:00