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
dfb4a9d9ad
Revert "Remove uc_cb_eventmem_t as it is identical to uc_cb_hookmem_t"
...
As pointed out by aquynh the return types are actually different. A
uc_cb_eventmem_t callback returns a bool, while uc_cb_hookmem_t has a
void return type.
This reverts commit cb2b97f26c
.
2015-09-23 12:51:47 +07:00
Sean Heelan
cb2b97f26c
Remove uc_cb_eventmem_t as it is identical to uc_cb_hookmem_t, as per
...
issue #111
2015-09-22 12:37:05 +07:00
Nguyen Anh Quynh
26ee533303
return NULL in memory_mapping() if no memory is mapped. this fixes test_bad_unmap in test_x86.c
2015-09-21 22:17:26 +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
Jonathon Reinhart
f6cecf45d2
change mem read/write APIs to use void*
...
Don't force the user to use uint8_t pointers, or cast their
pointers-to-other-objects to uint8_t* when calling these APIs.
2015-09-07 12:44:03 -04: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
d506b900eb
cache the last entry of mapped blocks in memory_mapping() for better performance
2015-09-04 15:40:47 +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
Jonathon Reinhart
5f32e2c1ae
s/uc_hook_h/uchook/g
2015-09-03 22:39:23 -04:00
Jonathon Reinhart
da46071c7d
bring new code and samples up-to-date with API changes
2015-09-03 22:15:49 -04:00
Jonathon Reinhart
5e9d07a40a
Merge remote-tracking branch 'upstream/master' into change-handle-based-api
2015-09-03 22:01:52 -04:00
Nguyen Anh Quynh
e54519c09f
cleanup
2015-09-04 09:20:13 +08:00
Chris Eagle
2da46caef7
smooth out split_region related code
2015-09-03 12:26:36 -07:00
Nguyen Anh Quynh
6ca85a72ed
simplify uc_mem_protect() & uc_mem_unmap()
2015-09-04 01:02:38 +08:00
Nguyen Anh Quynh
9f9d57e84f
cleaning & indentation
2015-09-03 18:16:49 +08:00
Nguyen Anh Quynh
b8d4240240
solve merging conflict
2015-09-03 18:05:21 +08:00
Jonathon Reinhart
5b62d436a9
change public APIs to use ucengine
...
See #52 .
2015-09-02 22:00:09 -04:00
Jonathon Reinhart
bd0a6921cc
Merge remote-tracking branch 'upstream/master' into change-handle-based-api
2015-09-02 21:04:43 -04:00
Nguyen Anh Quynh
03683a7960
fix an warning caused by _hook_mem_access()
2015-09-03 01:18:41 +08:00
Nguyen Anh Quynh
be659d201d
fix confusion betweet UC_MEM_xxx & UC_HOOK_MEM_xxx. fix issue #93
2015-09-03 01:13:57 +08:00
Nguyen Anh Quynh
8b39ec5b0c
initial support to remove a static variable in qemu-thread-win32.c
2015-09-02 16:13:12 +08:00
Chris Eagle
ad877e6af0
Add error value UC_ERR_INVAL and rename UC_ERR_OOM to UC_ERR_NOMEM to provide more error specificity
2015-09-01 13:40:19 -07:00
Chris Eagle
2c4f3769d4
clean up mem_protect related constants and error codes
2015-09-01 12:10:09 -07:00
Chris Eagle
658e399776
clean up mem_protect related constants
2015-08-31 19:08:48 -07:00
Chris Eagle
b27e987932
Add target_page_size member to uc_struct to track TARGET_PAGE_SIZE
2015-08-31 01:00:44 -07:00
Chris Eagle
410e317e92
dont use explicit page size, use TARGET_PAGE_SIZE
2015-08-30 21:24:14 -07:00
Chris Eagle
394461b941
section splitting complete for uc_mem_protect
2015-08-30 14:01:07 -07:00
Chris Eagle
0a60fa4c8a
fix perms
2015-08-30 00:22:49 -07:00
Chris Eagle
942de0f2ae
implemented basic block splitting, uc_mem_unmap should work for sub=blocks or across contiguous blocks
2015-08-30 00:22:18 -07:00
Jonathon Reinhart
3bd705a060
Merge remote-tracking branch 'upstream/master' into change-handle-based-api
2015-08-30 00:23:51 -04:00
Chris Eagle
4a680b9277
Merge branch 'master' into mem_map_ex_cse
2015-08-29 21:22:33 -07:00
Chris Eagle
6beb1b8a13
intermediate commit, working unmap of complete blocks, still need sub-blocks, and cross block
2015-08-29 21:17:30 -07:00
Nguyen Anh Quynh
b4d7347fa8
wait for the timer thread to finish at the end of uc_emu_start(). this may fix the issue #78
2015-08-30 05:12:04 +08:00
Chris Eagle
592cbc6eaf
conflict resolution with merge master
2015-08-28 23:51:56 -07:00
Chris Eagle
8e2848c9d5
Merge branch 'master' into api_update
2015-08-28 20:05:53 -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
Nguyen Anh Quynh
810054ca6d
uc_mem_read() & uc_mem_write() now can work on adjacent memory areas. this fixes issue #38
2015-08-29 10:23:53 +08:00
Chris Eagle
eab6167241
Merge branch 'master' into mem_map_ex_cse
2015-08-28 19:00:39 -07:00
Chris Eagle
9ba59e4988
Step one towards uc_mem_protect, uc_mem_unmap, and support for UC_PROT_EXEC and NX regions
2015-08-28 18:59:45 -07:00
Nguyen Anh Quynh
c0c24db4c6
chmod -x uc.c
2015-08-29 09:27:24 +08:00
Nguyen Anh Quynh
0db7d9ea4e
reset emulation_done in uc_emu_start()
2015-08-29 09:22:53 +08:00
Nguyen Anh Quynh
ab27c6aa04
return immediately if emulation is already done. this fixes issue #65
2015-08-29 09:10:18 +08:00
Chris Eagle
3452b47f7c
Add code to handle non-readable memory
2015-08-28 03:42:25 -07:00
Chris Eagle
aa509cc00f
delete redundant function
2015-08-28 02:20:56 -07:00
Chris Eagle
adc254cc74
Roll back uc_mem_protect changes
2015-08-28 01:37:49 -07:00
Chris Eagle
b31bb9638c
cleanup for pull request
2015-08-28 00:00:09 -07:00