Commit graph

345 commits

Author SHA1 Message Date
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