Commit graph

66 commits

Author SHA1 Message Date
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
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
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
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
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 359055b4ff python: properly load supporting DLLs in dependency order. this fixes issue #208 2015-10-26 15:46:10 +08:00
Nguyen Anh Quynh 298a942dd1 python: fix DLL loading for Windows 2015-10-19 22:10:05 +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
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
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
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
Nguyen Anh Quynh 7a5d790ade rename UC_MEM_EXE to UC_MEM_FETCH 2015-09-08 12:55:56 +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
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
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
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 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 94ac0f02e6 file permissions changes 2015-08-28 20:03:36 -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