Commit graph

364 commits

Author SHA1 Message Date
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
Chris Eagle 49f9f81079 First pass of const_generator still requires manual tweak of UC_MODE_BIG_ENDIAN 2015-08-28 19:43:45 -07:00
Chris Eagle 1a081c5ed8 Initial changes to support use of const_generator.py 2015-08-28 19:41:13 -07:00
Nguyen Anh Quynh 8aba3170c6 bindings: update consts after the latest change in the core 2015-08-29 09:03:12 +08:00
Nguyen Anh Quynh 10464408a5 Merge branch 'const-gen' of https://github.com/lunixbochs/unicorn into lunixbochs-const-gen 2015-08-29 00:42:38 +08:00
Nguyen Anh Quynh 3f771abe73 python: add sample_all.sh 2015-08-29 00:26:34 +08:00
Ryan Hileman 40ba1ea1b0 improve const generator; emit unicorn.h consts 2015-08-28 07:32:25 -07:00
Ryan Hileman c5bcb02847 add Go bindings 2015-08-27 21:22:30 -07:00
Nguyen Anh Quynh 2fcc8528ae chmod -x SampleNetworkAuditing.java 2015-08-27 10:47:49 +08:00
Chris Eagle 5ff5577aaa Port sample_network_auditing.py to java 2015-08-26 19:41:37 -07:00
Nguyen Anh Quynh 8aedc1b5d5 Merge pull request #53 from tacoxnguyen/master
make sample_network_auditing.py runnable
2015-08-27 00:06:14 +08:00
Nguyen Anh Quynh 9e929ca2f3 Merge branch 'master' of https://github.com/cseagle/unicorn into cseagle-master 2015-08-26 23:37:41 +08:00
Kong Nguyen 4d7b7c1d5e make sample_network_auditing.py runnable 2015-08-26 22:40:41 +08:00
Jonathon Reinhart 60d0004329 remove executable bit from mode of source files
http://stackoverflow.com/questions/1580596/how-do-i-make-git-ignore-file-mode-chmod-changes
2015-08-26 05:34:31 -04:00
Chris Eagle 9023e77201 Fixed bug introduced in uc_mem_map 2015-08-26 00:26:42 -07:00
Chris Eagle c1514609b1 Add missing line from upstream patch 2015-08-25 21:22:58 -07:00
Chris Eagle e280088caf Add 16-bit example, tracking upstream 2015-08-25 21:01:48 -07:00
Nguyen Anh Quynh 22b549a4db x86: add sample for 16bit mode 2015-08-26 09:25:29 +08:00
Chris Eagle fafdac516a Make a bad Makefile slightly less bad 2015-08-25 11:41:14 -07:00
Chris Eagle 0359c44462 Initial checkin of unicorn java binding 2015-08-25 03:21:47 -07:00
Nguyen Anh Quynh 783b68c85b handle SYSCALL for shellcode.py 2015-08-24 15:02:06 +08:00
Nguyen Anh Quynh 60099d1d69 x86: add back 2 registers X86_REG_FCW & X86_REG_FPIP 2015-08-24 13:58:52 +08:00
Nguyen Anh Quynh d64ef59871 python: update consts after the latest change in the core 2015-08-24 13:16:22 +08:00
mothran 2516de7ed8 renamed m68k enum constants 2015-08-23 21:56:24 -07:00
mothran 1dd3334f87 changed the constants in the newest regression and sample files 2015-08-23 21:51:53 -07:00
mothran 995924176a Merge branch 'const_rename' 2015-08-23 21:42:02 -07:00
mothran a167f7c456 renames the register constants so unicorn and capstone can compile together 2015-08-23 21:36:33 -07:00
Nguyen Anh Quynh 033a44361b python: rename API uc_support to uc_arch_supported 2015-08-24 09:53:16 +08:00
Ryan Hileman 76d8541717 add check for mem_map(size=0) (#14) 2015-08-23 14:16:40 -07:00
Nguyen Anh Quynh e1baf2f36b x86: support hooking SYSCALL/SYSENTER instructions. we no longer share the SYSCALL callback with interrupt instructions 2015-08-23 01:19:40 +08:00
Ryan Hileman 2dd3983ee3 add syscall test 2015-08-21 18:02:26 -07:00
Nguyen Anh Quynh 344d016104 import 2015-08-21 15:04:50 +08:00