Commit Graph

373 Commits

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