Commit Graph

142 Commits

Author SHA1 Message Date
Nguyen Anh Quynh
4692f3445f Merge pull request #248 from farmdve/master
X86 zero-byte opcode causes Unicorn to crash.
2015-11-05 20:49:04 +08:00
Nguyen Anh Quynh
b3dfde8a17 Merge branch 'master' of https://github.com/unicorn-engine/unicorn 2015-11-05 20:41:51 +08:00
farmdve
7f3c567ae5 X86 zero-byte opcode causes Unicorn to crash.
The opcode 0x00 translates as `add byte ptr ds:[eax],al`, which leads to
a segfault in Unicorn.

Using a debugger, I believe the crash is located in
`qemu/translate-all.c` in function `page_flush_tb_1`, more specifically
this code `pd[i].first_tb = NULL;`
2015-11-05 14:41:15 +02:00
Nguyen Anh Quynh
95745eff3b regress: fix compiled warnings in eflags_nosync.c 2015-11-05 20:22:07 +08:00
farmdve
894739515e X86 EFLAGS not synced properly.
these commits should fix my previous ones.
2015-11-04 09:38:57 +02:00
Nguyen Anh Quynh
613ebbb20e Merge pull request #244 from emdel/master
SIGABRT issue
2015-11-04 10:07:48 +08:00
mariano
9f7d1812a3 SIGABRT issue 2015-11-03 12:58:20 -08:00
Nguyen Anh Quynh
68a2a0c7ab regress: add shebang for hook_code_stop_emu.py 2015-11-03 22:45:48 +08:00
practicalswift
696c58f9f0 Add test case for segfault-on-emu_stop() bug.
The following code segfaults:
unicorn.Uc(unicorn.UC_ARCH_X86, unicorn.UC_MODE_64).emu_stop()

Tested under Linux and OS X.
2015-11-03 14:11:49 +01:00
Nguyen Anh Quynh
f5cec3815a Merge pull request #240 from williballenthin/test-hook-code-stop-emu
add hook_code_stop_emu.py test for issue #232
2015-11-03 09:48:58 +08:00
practicalswift
29903c07f9 Fix typo. 2015-11-02 23:23:02 +01:00
practicalswift
b91df4af23 Test case for issue #236 (potential memory leak) 2015-11-02 23:19:38 +01:00
practicalswift
a435307543 Test case for issue #237 (OS X crash when creating 2048:th Uc object) 2015-11-02 23:18:30 +01:00
Willi Ballenthin
11dfaf4dec hook_code_stop_emu.py: show PC before asserting 2015-11-02 10:05:00 -05:00
Willi Ballenthin
1a8ca49db1 hook_code_stop_emu.py: formatting 2015-11-02 10:03:31 -05:00
Willi Ballenthin
f02d03dde3 add hook_code_stop_emu.py test for issue #232 2015-11-02 09:54:36 -05:00
Nguyen Anh Quynh
3a36e327ab support memory redirection, so the issue #217 is fixed 2015-10-27 14:37:03 +08:00
Nguyen Anh Quynh
cea1cf210d tests: mips_kseg0_1.c prints out friendly error message rather than just error code 2015-10-27 12:36:03 +08:00
Nguyen Anh Quynh
7553c9c1c2 tests: add mips_kseg0_1 to Makefile to compile it 2015-10-27 11:25:34 +08:00
Nguyen Anh Quynh
05d89da496 Merge pull request #222 from pkooiman/master
Test for executing from  MIPS kseg0/kseg1 memory ranges
2015-10-27 08:44:32 +08:00
Peter Kooiman
0bad2a8a90 Added test for executing from MIPS kseg0/ksegq1 memory ranges to tests/regress 2015-10-26 18:37:27 +01:00
gaffe
21ce78924c assert that PC was changed in callback-pc test 2015-10-23 11:28:10 -07:00
Nguyen Anh Quynh
dfc8658083 regress: fix compilation warning of mem_double_unmap.c 2015-10-23 11:36:09 +08:00
coco
dd56621bbb fix for use after free in case of double unmap 2015-10-21 22:25:49 +02: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
Sean Heelan
bb4011efe2 Regression test for issue #165 2015-10-06 12:55:09 +07:00
Nguyen Anh Quynh
9410b8fbe7 regress: add shebang for ensure_typedef_consts_generated.py 2015-10-04 11:21:37 +08:00
Sean Heelan
fd6b510038 Added a comment explaining what is being tested for 2015-10-03 12:36:17 +07:00
Sean Heelan
f62418fc07 Regression test for issue #161 2015-10-03 12:22:41 +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
4a42041a83 handle 'bad ram pointer' case. this fixes issue #159 2015-09-29 18:22:22 +08:00
Nguyen Anh Quynh
976950d3c3 chmod +x tests/regress/bad_ram.py 2015-09-29 15:24:30 +08:00
mothran
0e258b9587 updated a few small errors in the script 2015-09-28 22:50:27 -07:00
mothran
eeebcc5a44 added bad_ram regress 2015-09-28 21:41:38 -07:00
Nguyen Anh Quynh
8b4d274c34 regress: convert some mips tests to use unittest 2015-09-28 11:57:24 +08:00
Nguyen Anh Quynh
2b0b4169bc mips: advance PC for SYSCALL instruction. this fixes issue #157 2015-09-28 10:58:43 +08:00
Ryan Hileman
13be3435c9 add regress for #157 2015-09-27 01:08:46 -07:00
Nguyen Anh Quynh
53ce8f217d mips: handle delay slot better for branch instructions. this should fix issue #155 2015-09-27 15:05:40 +08:00
Ryan Hileman
4b42b4be52 add regress for #155 2015-09-26 12:48:25 -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
Nguyen Anh Quynh
14a01b5186 mips: handle delay slot so do not duplicate calling instruction handler. this fixes issue #133 2015-09-22 11:59:53 +08:00
danghvu
3c1d65ea66 Reorganize test directories 2015-09-21 20:47:45 -05:00