Commit Graph

581 Commits

Author SHA1 Message Date
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
Ryan Hileman 5ade2fa627 Go bindings: fix concurrent hook updates 2016-07-27 05:16:12 -07:00
Hoang-Vu Dang 9a2a5b15d8 Rename unhandled CPU exception 2016-07-05 11:10:39 -05:00
Hoang-Vu Dang 9cdca5a32b Unhandled interrupt will halt execution 2016-07-04 17:07:57 -05:00
test'"/script/textarea 1b957b7b50 Python 3 compatibility: raise unicode exception messages
In order to make exceptions display well with the Python binding on Python 3.x, return exception message as unicode/str rather than str/bytes.
2016-06-30 22:54:35 +02:00
Adrian Herrera 71751cede9 Removed redundant import 2016-06-05 11:10:33 +10:00
Adrian Herrera a4cdcb7fde Very minor formatting updates 2016-06-04 15:45:36 +10:00
Ryan Hileman 5fd4c8719d improve go binding memory leaks 2016-05-28 16:02:12 -07:00
coco 4021b635b1 fixed go bindings typo 2016-05-10 23:18:08 +02:00
xorstream 544942cc64 Added MSVC bindings for uc_reg_write_batch() and uc_reg_read_batch() and fixed UC_HOOK_INSN hooking. 2016-05-10 23:29:11 +10:00
Nguyen Anh Quynh a015ddc348 add link to Rust binding 2016-04-18 10:18:39 +08:00
Adrian Herrera 0a3f83a20c Small changes to align with hapstone (Haskell bindings for Capstone)
Enums now derive bounded and made use of Applicative in Utils module
2016-04-09 00:13:25 +10:00
Nguyen Anh Quynh 023e4375d0 Merge branch 'master' of https://github.com/unicorn-engine/unicorn 2016-04-08 21:42:22 +08:00
Adrian Herrera 87b65d1dda Small formatting fix 2016-04-08 23:31:13 +10:00
Adrian Herrera b250d599b9 Removed Haskell build from Makefile - it is better to let cabal take care of this 2016-04-08 20:50:08 +10:00
Adrian Herrera 2b1454468c On second thought, you only really need to run `cabal install`, and that will run all the other intermediate steps for you... 2016-04-08 19:55:29 +10:00
Adrian Herrera 4cbe52a701 Updated Makefile to install bindings (in addition to building)
Updated Haskell README to explain how to build the samples
2016-04-08 19:29:43 +10:00
Nguyen Anh Quynh b53bab1362 haskell: update .gitignore 2016-04-08 17:33:11 +08:00
Nguyen Anh Quynh 689be9356f haskell: rename TMPDIR in bindings/Makefile to TMP_DIR 2016-04-08 16:39:20 +08:00
Adrian Herrera 34a203d4c9 Updated Haskell README to make it clear that Alex and Happy are required for c2hs 2016-04-08 17:58:11 +10:00
Ryan Hileman 20e089a774 Go bindings: fix HookAdd in sample 2016-04-07 12:09:26 -07:00
Adrian Herrera 8f43bf7ffc Improved namespacing for MMR record-style data type 2016-04-07 22:34:07 +10:00
Adrian Herrera 8cb77a2a93 Fixed Makefile build step for Haskell bindings 2016-04-07 22:27:38 +10:00
Ryan Hileman 4e9dc1d8e6 fix Go binding C99 regression 2016-04-05 20:02:07 -07:00
Adrian Herrera 431035b335 Fixed some GHC warnings 2016-04-06 09:54:05 +10:00
Adrian Herrera 47f9a0cdac Added cabal clean, configure and build commands to the bindings Makefile
This ensures that c2hs is called when const_generator.py generates code for the
other language bindings
2016-04-06 09:51:45 +10:00
Adrian Herrera 74aaf3b321 Haskell bindings
These Haskell bindings make large use of c2hs to generate much of the code, so
Unicorn's const_generator is not used.

The emulator is based on the Either monad transformer. The IO monad is used to
run the underlying Unicorn library, while the Either monad is used to handle
errors.

Instructions on how to build the bindings are located in
bindings/haskell/README.TXT. The same samples found in samples/ can be found
in bindings/haskell/samples. They should produce the same output, with slight
differences in their error handling and messaging.
2016-04-06 09:21:36 +10:00
Ryan Hileman acd88856e1 add batched reg access 2016-04-04 20:51:38 -07:00
Nguyen Anh Quynh e79345bfb5 Merge branch 'python-code-cleanup' of https://github.com/jbremer/unicorn into jbremer-python-code-cleanup 2016-03-30 09:55:42 +08:00
Jurriaan Bremer 76786850c4 code cleanup of python bindings
Addresses a couple of pep8 related changes improving the code quality.
2016-03-29 16:20:40 +02:00
Sascha Schirra 5d4fb062d4 set gdt example added 2016-03-27 22:04:33 +02:00
Sascha Schirra cf1c7ee7ca sample for sparc added 2016-03-27 21:44:09 +02:00
Sascha Schirra 30d26366f6 sample for mips added 2016-03-27 21:38:46 +02:00
Sascha Schirra 6c54b8e283 sample for m68k added 2016-03-27 21:31:34 +02:00
Sascha Schirra 40c8f0540c sample for arm64 added 2016-03-27 21:15:45 +02:00
Sascha Schirra 4a10a9f9e4 sample for arm added 2016-03-27 21:00:33 +02:00
Sascha Schirra 813db7aff9 *.gem added 2016-03-27 20:59:56 +02:00
Sascha Schirra ae979259bd gem removed 2016-03-27 20:58:38 +02:00
Sascha Schirra 97c39a3a83 Bugfix: remove hook_add call if no insn type is given 2016-03-27 20:58:05 +02:00
Sascha Schirra ae9e21f9b8 license parameter changed 2016-03-27 18:26:43 +02:00
Nguyen Anh Quynh 5995c95f23 Merge pull request #486 from cseagle/bindings
update java bindings to reflect changes in uc_hook_add
2016-03-25 19:07:56 +07:00
Chris Eagle b63866e30a update java bindings to reflect changes in uc_hook_add 2016-03-25 02:27:56 -07:00
Nguyen Anh Quynh c9b36c1b1d Merge pull request #475 from sashs/master
GDT regress test
2016-03-25 10:09:04 +07:00
Ryan Hileman 79ec6145db expose version from Go bindings 2016-03-24 08:56:44 -07:00
Sascha Schirra 3642c68587 Remove blank line 2016-03-22 18:36:26 +01:00
Nguyen Anh Quynh 16f77061d9 ruby: spaces & indentation 2016-03-22 20:54:51 +08:00
Sascha Schirra a6b570d033 Version changed 2016-03-22 13:30:52 +01:00
Sascha Schirra 9379d41764 blank lines removed 2016-03-22 13:30:29 +01:00
Sascha Schirra a9de03edfb README format changed 2016-03-22 12:26:12 +01:00
Sascha Schirra 04cad5cd8c README format changed 2016-03-22 12:23:08 +01:00
Sascha Schirra 80b2f45178 README format changed 2016-03-22 12:22:02 +01:00
Sascha Schirra 937b3bc22c README changed 2016-03-22 12:19:26 +01:00
Sascha Schirra 5e72ce39f0 ruby binding added 2016-03-22 12:17:23 +01:00
Sascha Schirra 25864b589d Bugfix: uc_x86_mmr has no attribute limits 2016-03-18 07:44:05 +01:00
Ryan Hileman 2a9a794bff tweak Go bindings for 32-bit 2016-03-14 17:44:02 -07:00
Nguyen Anh Quynh 28b94d10b8 bindings: add X86 FPTAGS & FPCW registers after recent change in the core 2016-03-14 09:14:48 +08:00
Nguyen Anh Quynh d8f82b1b3d Merge branch 'master' of https://github.com/feliam/unicorn into feliam-master 2016-03-14 09:10:19 +08:00
feliam 23b3f651f9 Indentation 2016-03-10 07:45:36 -03:00
xorstream c5b123d2d9 Updated MSVC bindings for new and changed functions. 2016-03-10 14:41:11 +11:00
feliam 3038726a5b Fix 2016-03-09 22:14:51 -03:00
feliam 0a3799eada FPU control word and tags 2016-03-09 19:14:33 -03:00
feliam a5f2a64de5 -spaces- 2016-03-09 18:27:59 -03:00
feliam ff66a72d7b GDT/LDT/IDT/FPU access from python bingings 2016-03-09 18:07:38 -03:00
Nguyen Anh Quynh eb5a762452 python: add __version__ 2016-03-06 21:21:39 +08:00
Nguyen Anh Quynh 0950f2e18b python: 0.9 -> 1.0 in setup.py 2016-03-06 17:28:32 +08:00
Nguyen Anh Quynh bf7dc4293b python: README -> README.md in setup.py 2016-03-06 17:27:50 +08:00
Nicolas PLANEL 2031f7cbdd [query] update bindings UC_QUERY_PAGE_SIZE
Signed-off-by: Nicolas PLANEL <nplanel@redhat.com>
2016-03-04 15:54:24 +11:00
Ryan Hileman 4f1c88e70c Go: add RegReadMmr and test 2016-02-28 12:01:24 -08:00
Ryan Hileman 43eb9ec351 Go: add uc_query api 2016-02-27 11:15:06 -08:00
Ryan Hileman 9f1603c157 Go: add MemRegions 2016-02-27 11:10:15 -08:00
Ryan Hileman 74f783a274 Go: add x86 RegWriteMmr method 2016-02-27 10:56:04 -08:00
Ryan Hileman 475c8de3de Go: update test hooks 2016-02-27 10:56:04 -08:00
Ryan Hileman 693719e732 Go: update hook interface 2016-02-27 10:55:59 -08:00
Nguyen Anh Quynh 0822c0af85 bump API version to 1.0 2016-02-11 08:05:15 +08:00
Nguyen Anh Quynh a7a1dcc661 uc_hook_add(): add begin & end arguments for all hook types. also update Python binding after this change 2016-02-11 08:02:13 +08:00
Chris Eagle 9b8098bf63 file perms 2016-02-07 07:24:34 -08:00
Chris Eagle 84fbe5aa5d add x86 mmr handling to java binding 2016-02-07 07:23:07 -08:00
Chris Eagle a5b1ae47c3 remove unnecessary file 2016-02-06 19:19:55 -08:00
Nguyen Anh Quynh 6cdd11e5d8 Merge pull request #427 from cseagle/bindings
Bindings
2016-02-07 08:58:50 +08:00
Chris Eagle ec5998bd02 fix file perms 2016-02-06 15:18:44 -08:00
Chris Eagle 21b9fa860b fix file perms 2016-02-06 15:18:03 -08:00
Chris Eagle aa1657006b implement missing APIs (uc_query, uc_mem_map_ptr, uc_mem_regions) in java binding 2016-02-06 15:16:44 -08:00
McLovi9 7394a9ba30 Add query mode bind 2016-02-06 14:35:31 +01:00
Nguyen Anh Quynh 6986fa3947 x86: add new register enums for IDT, LDT, GDT & TR 2016-02-06 17:35:45 +08:00
cforgeron de224f1573 - Switch to 'in' which works in 2/3 instead of legacy '.has_key()'
- Renamed 'id' variable use (which is a built-in) to my_id.
- Small formatting changes to make it more PEP compliant.
2016-01-31 17:01:14 -04:00
cforgeron 44fa4e29e7 - Added detect for Python 2/3 so the correct iteritems()/iter is called.
- Renamed 'id' variable use (which is a built-in) to my_id.
- Small formatting changes to make it more PEP compliant.
2016-01-31 15:09:20 -04:00
Nguyen Anh Quynh a2ef52172c add combination hook type UC_HOOK_MEM_VALID to intercept all valid memory access 2016-01-31 13:12:34 +08:00
Nguyen Anh Quynh 876c423dd0 python: support recent change on uc_hook_add() with begin/end params 2016-01-26 23:12:35 +08:00
xorstream bc0003188e uc_mode fixes for bindings 2016-01-25 17:42:51 +11:00
Nguyen Anh Quynh 9ec2163571 bindings: add UC_MODE_PPC32 constant after recent update on unicorn.h 2016-01-24 20:50:26 +08:00
Nguyen Anh Quynh 6f3d48077e rename UC_QUERY_ARM_MODE to a more generic name UC_QUERY_MODE. make all bindings support this new constant 2016-01-24 01:08:23 +08:00
Nguyen Anh Quynh d79925f477 sparc: add SPARC32 mode (= UC_MODE_32) 2016-01-23 10:48:18 +08:00
Nguyen Anh Quynh ca79d11211 bindings: update constants after recent changes in unicorn.h 2016-01-23 10:31:16 +08:00
xorstream 8763d426c2 Fix uc_mode usage in source code 2016-01-23 12:08:49 +11:00
enkomio 2c54f1a969 Solution refactoring and bug fixing 2016-01-04 16:59:05 +01:00
enkomio 272fb8524f Fixed spacing in dotnet comment 2016-01-04 16:55:20 +01:00
enkomio 2952d255c2 Fixed spacing in constants files generation for .NET 2016-01-04 11:31:17 +01:00
enkomio 5d3aac30e6 refactored code and minor bug fixing 2016-01-04 11:30:11 +01:00
enkomio 232cff02d2 Implemented IDisposable in order to disposed allocated unmanaged memory 2016-01-02 14:13:47 +01:00
Ryan Hileman c0eabddef3 add binding support for Go 1.6beta1 (fix #326) 2015-12-18 07:42:11 -08:00
Nguyen Anh Quynh 771f9f7c3b fix conflicts when merging map-ptr branch to master branch 2015-12-17 08:12:02 +08:00
xorstream 5acb454b7b Fixed the unicorn_dynload.c version of uc_hook_add() to handle UC_HOOK_MEM_*_PROT and UC_HOOK_MEM_*_UNMAPPED. 2015-12-16 13:46:14 +11:00
xorstream f68077852f Fixed includes for moved unicorn_dynload.h file 2015-12-15 17:17:14 +11:00
xorstream a6a62f6bea Moved unicorn_dynload.h into bindings dir. 2015-12-10 12:06:57 +11:00
xorstream c5c13e110a Added samples projects for MSVC binding.
Added MSVC support to unicorn samples.
2015-12-08 18:21:32 +11:00
Ryan Hileman 638ff7a3f5 Go binding: add mem_protect wrapper 2015-12-05 11:24:56 -08:00
Nguyen Anh Quynh fc54007fab msvc: code style 2015-12-05 10:55:28 +07:00
xorstream 77f946f2fc Added MSVC++ support for unicorn
This lets you import the pre-built unicorn.dll files with Microsoft
Visual C++ projects.

There is support for static and dynamic linking of dlls. This has been
tested as working for both 32bit and 64bit versions.

The dynamic linking code should also work in Linux, though I have not
tested it.
2015-12-04 22:09:24 +11:00
Ryan Hileman 230cbd5330 add permissions to map_ptr api 2015-11-28 11:28:31 -08:00
Ryan Hileman 18066b3578 support uc_mem_map_ptr in Go and Python bindings 2015-11-27 23:30:36 -08:00
Nguyen Anh Quynh 2f297bdd3a handle some errors properly so avoid exit() during initialization. this fixes issue #237 2015-11-12 01:43:41 +08:00
Nguyen Anh Quynh fe408b0dc7 bindings: link to Delphi/Pascal binding 2015-11-10 21:00:29 +08:00
Willi Ballenthin 5eb75c311e python bindings: use relative paths for imports to support py3 2015-11-02 09:34:58 -05:00
Willi Ballenthin 197602b806 python README.TXT: clarify working directories
clarify in which directory to build the core project and install the python bindings. when i went to install the python bindings, i was momentarily confused why the root Makefile didn't have an `install3` target.
2015-11-01 08:50:06 -05:00
Ryan Hileman a6ffb71e4c Go bindings: add Close() and set as GC finalizer 2015-10-30 22:08:35 -07:00
Tim Blazytko 94012558fb python bindings: added mem_protect 2015-10-28 05:26:09 +01:00
Tim Blazytko fe2ecdf6f9 python bindings: added mem_unmap 2015-10-28 05:25:36 +01:00
Nguyen Anh Quynh 24a7036a87 Merge branch 'master' of https://github.com/unicorn-engine/unicorn 2015-10-26 15:46:20 +08:00
Nguyen Anh Quynh 359055b4ff python: properly load supporting DLLs in dependency order. this fixes issue #208 2015-10-26 15:46:10 +08:00
Ryan Hileman 715d5c3557 Go 1.2 binding compatibility 2015-10-25 04:33:10 -07:00
Nguyen Anh Quynh 298a942dd1 python: fix DLL loading for Windows 2015-10-19 22:10:05 +08:00
Nguyen Anh Quynh 1ee7544d84 Merge pull request #203 from lunixbochs/master
add MemUnmap to Go bindings
2015-10-19 08:26:17 +08:00
Ryan Hileman 716cbd78e9 add MemUnmap to Go bindings 2015-10-18 12:21:43 -07:00
Nguyen Anh Quynh 30858032a0 Merge pull request #195 from strazzere/master
Add OSX	10.11 dylib load fix
2015-10-17 11:05:45 +08:00
Nguyen Anh Quynh 56a7b0246c Merge pull request #194 from lunixbochs/master
fix #192 (outdated enums in Go test)
2015-10-17 10:03:12 +08:00
Tim Strazzere a44b6e1efc Add OSX 10.11 dylib load fix
El Capitan does	not guaranteed that
(DY)LD_LIBRARY_PATH will exist, so force
one last check for the default install
directory that the install script uses.
2015-10-16 17:07:53 -07:00
Ryan Hileman e45d225d69 fix #192 (outdated enums in Go test) 2015-10-16 12:21:38 -07:00
Antonio Parata d92bee414d Implemented exception as error management mechanism and removed the error codes 2015-10-16 17:43:56 +02:00
Ryan Hileman c41294d45d fix sample.go 2015-10-16 05:59:55 -07:00
Matt 8886553116 Fix typo in register name (Python sample)
Register should be `edx` (not `dex`)
2015-10-15 20:40:03 +02:00
Nguyen Anh Quynh 749a25d6d3 python: no installer & PyPI packages available yet 2015-10-15 23:51:31 +08:00
Antonio Parata d2f487485c Refactored test project 2015-10-15 12:03:23 +02:00
Antonio Parata c0ba09e0b8 Implemented uc_strerror and minor refactoring 2015-10-15 11:24:20 +02:00
Nguyen Anh Quynh 03b2fbfbcb enable gen_const for .NET in bindings/Makefile 2015-10-15 16:23:14 +08:00
Nguyen Anh Quynh 7dae96c428 Merge branch 'master' of https://github.com/enkomio/unicorn into enkomio-master 2015-10-15 16:17:41 +08:00
Nguyen Anh Quynh 83bdfa357b add bindings/README 2015-10-15 16:14:36 +08:00
Chris Eagle 4720322711 Add README.TXT for java bindings 2015-10-14 16:50:50 -07:00
Antonio Parata 59c3f1b315 Generated constants file via python script 2015-10-14 16:34:10 +02:00
Antonio Parata a45bc0c8cd Refactored in order to be independent from the OS path separator, also added support for .net constants generation 2015-10-14 16:32:31 +02:00
Antonio Parata c1423332d4 Fixed typo and minor code refactoring 2015-10-14 15:05:18 +02:00
Antonio Parata 7a105c495b First dotnet binding commit 2015-10-14 10:55:50 +02:00
Ryan Hileman 1bb4d6685c add Go README and sample.go 2015-10-13 19:41:55 -07:00
Nguyen Anh Quynh b1d41d414b on some hook events, uc_hook_add() should not allow more than 1 handler. this add UC_ERR_HOOK_EXIST error type 2015-10-10 18:01:47 +08:00
Nguyen Anh Quynh d93210ad5a python: better support for Python3 (adapted from Capstone code) 2015-10-04 10:55:29 +08:00
Ryan Hileman 7e7c6512f5 add composite const generator (fix #161) 2015-10-03 10:41:19 -07:00
Nguyen Anh Quynh 9e64cba6ec Rename some hook related enums:
- UC_ERR_READ_INVALID -> UC_ERR_READ_UNMAPPED
 - UC_ERR_WRITE_INVALID -> UC_ERR_WRITE_UNMAPPED
 - UC_ERR_FETCH_INVALID -> UC_ERR_FETCH_UNMAPPED
 - UC_MEM_READ_INVALID -> UC_MEM_READ_UNMAPPED
 - UC_MEM_WRITE_INVALID -> UC_MEM_WRITE_UNMAPPED
 - UC_MEM_FETCH_INVALID -> UC_MEM_FETCH_UNMAPPED
 - UC_HOOK_MEM_READ_INVALID -> UC_HOOK_MEM_READ_UNMAPPED
 - UC_HOOK_MEM_WRITE_INVALID -> UC_HOOK_MEM_WRITE_UNMAPPED
 - UC_HOOK_MEM_FETCH_INVALID -> UC_HOOK_MEM_FETCH_UNMAPPED
 - UC_HOOK_MEM_INVALID -> UC_HOOK_MEM_UNMAPPED

This also renames some newly added macros to use _INVALID postfix:

 - UC_HOOK_MEM_READ_ERR -> UC_HOOK_MEM_READ_INVALID
 - UC_HOOK_MEM_WRITE_ERR -> UC_HOOK_MEM_WRITE_INVALID
 - UC_HOOK_MEM_FETCH_ERR -> UC_HOOK_MEM_FETCH_INVALID
 - UC_HOOK_MEM_ERR -> UC_HOOK_MEM_INVALID

Fixed all the bindings Java, Go & Python.
2015-09-30 14:46:55 +08:00
Chris Eagle 347a01d6b5 spaces to tabs in Makefile 2015-09-25 00:20:02 -07:00
Chris Eagle 0e680fbafa Hack to make gen_const work even if java not installed 2015-09-24 22:45:59 -07:00
Chris Eagle 25f85ae1dd file permissions 2015-09-24 21:27:57 -07:00
Chris Eagle a21772ad37 Cause java constnats to get updated by bindings Makefile 2015-09-24 21:26:54 -07:00
Chris Eagle f65ba7fb69 Merge branch 'master' into java_dev 2015-09-24 09:48:44 -07:00
Chris Eagle 4ebc876bd1 file permissions 2015-09-24 09:47:06 -07:00
Chris Eagle 4297ba4310 additional update to handle new hooking macros 2015-09-24 09:41:49 -07:00
Chris Eagle 14a71b5546 update java bindings for new memory event hooking constants 2015-09-24 04:33:02 -07:00
Ryan Hileman eb19d9bff5 update Go bindings for #149 2015-09-24 01:01:39 -07:00
Nguyen Anh Quynh 90eb8f2e72 This commit continues the PR #111
- Allow to register handler separately for invalid memory access
- Add new memory events for hooking:
   - UC_MEM_READ_INVALID, UC_MEM_WRITE_INVALID, UC_MEM_FETCH_INVALID
   - UC_HOOK_MEM_READ_PROT, UC_HOOK_MEM_WRITE_PROT, UC_HOOK_MEM_FETCH_PROT
- Rename UC_ERR_EXEC_PROT to UC_ERR_FETCH_PROT
- Change API uc_hook_add() so event type @type can be combined from hooking types
2015-09-24 14:18:02 +08:00
Sean Heelan 75c5904ec1 Makes the hook types consistent, with a single indicator for each of
read, write and fetch.

This commit only adds the enum values. The functionality still has to be
updated.

As per issue #111
2015-09-22 12:26:01 +07:00
danghvu 8c163706e4 Fix issue #113, untracked reference 2015-09-16 21:33:01 -05:00
Nguyen Anh Quynh fe807952d0 bindings: update Sparc registers after the last core change 2015-09-15 14:17:57 +07:00
Nguyen Anh Quynh 548355acca sparc: do not accept BIGENDIAN mode in samples. more sanity check should be done in the core 2015-09-11 14:02:27 +08:00
Nguyen Anh Quynh 39ac1bcb4e rename UC_ERR_INVAL to UC_ERR_ARG 2015-09-09 16:54:47 +08:00
Nguyen Anh Quynh d7ef204398 rename error codes ERR_MEM_READ, ERR_MEM_WRITE, ERR_MEM_FETCH 2015-09-09 16:25:48 +08:00
Nguyen Anh Quynh d3d38d3f21 handle read/write/fetch from unaligned addresses. this adds new error codes UC_ERR_READ_UNALIGNED, UC_ERR_WRITE_UNALIGNED & UC_ERR_FETCH_UNALIGNED 2015-09-09 15:52:15 +08:00
Ryan Hileman 9a0d80b84c refactor Go bindings to be more idiomatic 2015-09-08 00:04:27 -07:00
Nguyen Anh Quynh fda17cd377 java: rename UC_MEM_EXE to UC_MEM_FETCH 2015-09-08 12:57:40 +08:00
Nguyen Anh Quynh 7a5d790ade rename UC_MEM_EXE to UC_MEM_FETCH 2015-09-08 12:55:56 +08:00
Ryan Hileman 7beb90ca95 remove UC_ prefix for go binding consts 2015-09-07 19:25:13 -07:00
Ryan Hileman 185b7a7cef fix Go types on uc_mem_read() and uc_mem_write() 2015-09-07 19:25:04 -07:00
Chris Eagle 1843a96321 update jave binding to follow apit change of uc_mem_read and uc_mem_write 2015-09-07 14:12:43 -07:00
Ryan Hileman 70c42731c2 update go bindings for type changes 2015-09-05 06:56:11 -07:00
Nguyen Anh Quynh 99824e1d56 bindings: rename uchook to uc_hook, ucengine to uc_engine, uc_hook_t to uc_hook_type 2015-09-05 11:25:49 +08:00
Nguyen Anh Quynh d1bdbd11e7 rename uchook to uc_hook, ucengine to uc_engine, uc_hook_t to uc_hook_type 2015-09-05 11:20:32 +08:00
Chris Eagle a53eae3a29 Merge branch 'master' into java_dev 2015-09-03 22:34:00 -07:00
Chris Eagle b3b814e8b1 update java bindings for type safety and API changes 2015-09-03 22:28:09 -07:00
Nguyen Anh Quynh 022f8d82d1 handle memory fetch as invalid memory access. now we can also report error if exec memory is unmapped (UC_ERR_MEM_FETCH) 2015-09-04 11:55:17 +08:00
Chris Eagle bae718274e Merge branch 'master' into java_dev 2015-09-03 20:30:31 -07:00
Nguyen Anh Quynh 7ceb2eb0b9 bindings: update constants after the recent changes in the core 2015-09-04 10:54:21 +08:00
Jonathon Reinhart 291ec98675 python: fix a couple more function signatures 2015-09-03 22:46:43 -04:00
Jonathon Reinhart 99e34d212a bring python bindings up-to-date with new API 2015-09-03 22:34:58 -04:00
Nguyen Anh Quynh 0962c4822b cleanup & update bindings' constants 2015-09-04 09:43:31 +08:00
Ryan Hileman f230de876e fix go binding hook arguments 2015-09-02 20:00:13 -07:00
Chris Eagle 1f9b799ed3 Update java api to include mem_unmap and mem_protect 2015-08-31 03:09:57 -07:00
Ryan Hileman ac1fc4d631 add missing interrupt hook for Go bindings 2015-08-30 15:53:06 -07:00
Ryan Hileman f83ddf5ad4 clean up Go binding hook types 2015-08-30 15:52:50 -07:00
Ryan Hileman cb09df3027 fix invalid memory hook in Go bindings 2015-08-29 09:42:36 -07:00
Ryan Hileman e2036424c1 improve Go binding safety 2015-08-29 08:33:20 -07:00
Nguyen Anh Quynh 15f6da1c3a bindings: update UC_MODE_BIG_ENDIAN after the change in the core 2015-08-29 15:10:33 +08:00
Nguyen Anh Quynh 6d8e5b32f4 Merge pull request #72 from cseagle/java_dev
Java dev
2015-08-29 15:09:16 +08:00
Chris Eagle 27d5c7ec48 Fix perms 2015-08-28 23:33:49 -07:00
Chris Eagle c24944cfa9 Fix capitalization for unicorn.h mapping in java and go binding 2015-08-28 23:33:38 -07:00
Chris Eagle 52b04f5939 Fix perms 2015-08-28 23:31:15 -07:00
Chris Eagle 72d69d5d38 Fix capitalization for unicorn.h mapping in java binding 2015-08-28 23:29:59 -07:00
Ryan Hileman 59f4722009 update Go bindings for new mem_map API 2015-08-28 23:12:44 -07:00
Chris Eagle 4e1cb3afde pre-pull cleanup 2015-08-28 23:07:52 -07:00
Nguyen Anh Quynh 0c78613612 Go: update some consts after the last change on uc_mem_map() API 2015-08-29 13:18:22 +08:00
Nguyen Anh Quynh fcd0d02bae python: udpate binding after the last change on uc_mem_map() API 2015-08-29 13:17:50 +08:00
Chris Eagle 986096d443 fix file perms 2015-08-28 21:05:38 -07:00
Chris Eagle e29cdbe867 File permissions 2015-08-28 20:56:16 -07:00
Chris Eagle 1d6bd17a13 Update java bindings for new version of uc_mem_map 2015-08-28 20:54:05 -07:00
Chris Eagle 94ac0f02e6 file permissions changes 2015-08-28 20:03:36 -07:00
Chris Eagle 65787d415a rename uc_mem_map_ex to uc_mem_map and all associated changes 2015-08-28 20:02:21 -07:00