Commit graph

929 commits

Author SHA1 Message Date
farmdve 3e57615c76 Fix uc_mem_unmap memory leak and in uc_close.
It appears the problem is that we are not calling the memory region
destructor. After modifying memory_unmap to include the destructor call
for the memory region, the memory is freed.

Furthermore in uc_close we must explicitly free any blocks that were not
unmapped by the user to prevent leaks.

This should fix issue 305.
2015-12-11 02:42:31 +02:00
coco 14e75252a5 added testcase for the values read from high addresses 2015-12-10 16:18:22 +01:00
Nguyen Anh Quynh 9d7f81d195 Merge pull request #307 from xorstream/mips_delayslot_codehook
Added mnemonic printing to disasm function.
2015-12-10 13:17:57 +08:00
Nguyen Anh Quynh cea1f301ea Merge pull request #306 from xorstream/msvc_samples
Moved unicorn_dynload.h into bindings dir.
2015-12-10 13:16:51 +08:00
Nguyen Anh Quynh efb4f6aecb Merge pull request #305 from farmdve/fix_bugs
Unmapped memory is not freed.
2015-12-10 13:16:18 +08:00
xorstream 27128a9563 Added mnemonic printing to disasm function. 2015-12-10 13:09:31 +11:00
xorstream a6a62f6bea Moved unicorn_dynload.h into bindings dir. 2015-12-10 12:06:57 +11:00
farmdve 0d98607121 Unmapped memory is not freed.
While uc_mem_unmap does unmap memory regions from Unicorn, it does not
free the memory. It accumulates over time when reusing a single Unicorn
instance.
2015-12-10 00:08:07 +02:00
Nguyen Anh Quynh 1b145f431b code style 2015-12-10 00:53:48 +08:00
Nguyen Anh Quynh 0393d339c0 Merge branch 'msvc_samples' of https://github.com/xorstream/unicorn into xorstream-msvc_samples 2015-12-10 00:44:22 +08:00
Nguyen Anh Quynh fc09d9ea9b Merge pull request #302 from xorstream/mips_delayslot_codehook
Added MIPS delay slot code hook test.
2015-12-10 00:43:21 +08:00
xorstream eb8d1b58c7 Added MIPS delay slot code hook test.
Tests that the code hook gets called for instructions in the branch delay slot for MIPS cpu.
2015-12-09 18:09:15 +11:00
xorstream 7f04b0f772 Added MIPS delay slot code hook test.
Tests that the code hook gets called for instructions in the branch delay slot for MIPS cpu.
2015-12-09 18:06:53 +11:00
Nguyen Anh Quynh 088a5e0061 Merge pull request #298 from ranmrdrakono/master
added test for memory quirks
2015-12-09 11:30:57 +08:00
coco e4fe6b58b4 added test for memory quirks 2015-12-08 18:23:06 +01:00
xorstream 514715f7d5 Added previously ignored project dirs to MSVC support for unicorn samples. 2015-12-08 19:26:53 +11:00
xorstream c5c13e110a Added samples projects for MSVC binding.
Added MSVC support to unicorn samples.
2015-12-08 18:21:32 +11:00
Nguyen Anh Quynh c08fa22550 Merge pull request #296 from lunixbochs/master
Go binding: add mem_protect wrapper
2015-12-06 06:35:38 +07:00
Ryan Hileman 638ff7a3f5 Go binding: add mem_protect wrapper 2015-12-05 11:24:56 -08:00
Nguyen Anh Quynh c37b2582d7 modify header guard of unicorn_dynload.h for consistency 2015-12-05 11:20:22 +07:00
Nguyen Anh Quynh fc54007fab msvc: code style 2015-12-05 10:55:28 +07:00
Nguyen Anh Quynh 0e5bc9f84c Merge pull request #294 from xorstream/msvc_support
Added MSVC++ support for unicorn
2015-12-05 10:46:51 +07:00
xorstream 3ce4f6f7a2 Revert "Added MIPS delay slot code hook test"
This reverts commit 032eb66908.
2015-12-05 09:58:49 +11: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
xorstream 032eb66908 Added MIPS delay slot code hook test
Tests that the code hook gets called for instructions in the branch
delay slot for MIPS cpu.
2015-12-04 16:51:19 +11:00
Nguyen Anh Quynh 49f6c59c18 Merge pull request #288 from practicalswift/sparc_jump_to_zero
Crash case: Jump to invalid address (0x0), sparc32
2015-12-03 08:58:42 +07:00
practicalswift 74abb47130 Merge branch 'master' of github-as-practicalswift:unicorn-engine/unicorn into sparc_jump_to_zero 2015-12-02 21:57:56 +01:00
practicalswift 31e32d1734 Crash case: Jump to invalid address (0x0), sparc32 2015-12-02 21:55:13 +01:00
Nguyen Anh Quynh b636ef8996 Merge pull request #286 from practicalswift/invalid_read_in_tb_flush_x86_64
Add invalid_read_in_tb_flush_x86_64 to .gitignore and Makefile
2015-12-02 13:24:39 +07:00
practicalswift 23aa6aa9a6 Add invalid_read_in_tb_flush_x86_64 to .gitignore and Makefile 2015-12-02 07:15:44 +01:00
Nguyen Anh Quynh d03edf2f16 Merge pull request #285 from practicalswift/invalid_read_in_tb_flush_x86_64
Crash case: Invalid read of size 8 in tb_flush_x86_64 (#284)
2015-12-02 09:34:29 +07:00
practicalswift c50bf567c0 Crash case: Invalid read of size 8 in tb_flush_x86_64 2015-12-01 22:41:51 +01:00
Nguyen Anh Quynh e7b30bbd02 Merge pull request #283 from practicalswift/mips32-invalid-read-of-size-4
Crash case: Invalid read of size 4 when tracing (MIPS32). See #282
2015-12-01 22:48:10 +07:00
practicalswift 7a1067ad4a Crash case: Invalid read of size 4 when tracing (MIPS32). See #282 2015-11-30 23:44:49 +01:00
Nguyen Anh Quynh d4214150c2 Merge pull request #281 from practicalswift/x86_16-segfault
Crash case: Invalid read of size 8 in tb_flush_x86_64. See #280
2015-11-30 15:36:32 +07:00
practicalswift 75a325e8c6 Crash case: Invalid read of size 8 in tb_flush_x86_64. 2015-11-29 23:00:34 +01:00
Nguyen Anh Quynh 480c49e706 Merge pull request #278 from lunixbochs/map-ptr
add permissions to map_ptr api
2015-11-29 04:43:57 +07:00
Ryan Hileman 230cbd5330 add permissions to map_ptr api 2015-11-28 11:28:31 -08:00
Nguyen Anh Quynh f4882ae1a2 simplify code by replacing mem_map_start()/mem_map_finish() in uc.c with mem_map() 2015-11-28 18:26:08 +08:00
Nguyen Anh Quynh 4a759cebb5 set permission for memory region allocated by memory_map_ptr(). this fixes the segfault in sample_x86.c, function test_x86_map_ptr() 2015-11-28 17:11:27 +08:00
Nguyen Anh Quynh 8f1e8c0ab1 add sample code for API uc_mem_map_ptr() 2015-11-28 16:17:52 +08:00
Nguyen Anh Quynh f57c098056 declare variables at begin of function 2015-11-28 15:56:19 +08:00
Nguyen Anh Quynh 6b599314e1 Merge branch 'map-ptr' of https://github.com/lunixbochs/unicorn into lunixbochs-map-ptr 2015-11-28 15:50:53 +08:00
Ryan Hileman 18066b3578 support uc_mem_map_ptr in Go and Python bindings 2015-11-27 23:30:36 -08:00
Ryan Hileman 6d21ebabea implement host-controlled memory mapping for #261 2015-11-27 23:30:36 -08:00
Nguyen Anh Quynh 5210423fe4 Merge pull request #273 from edgarmb/master
fixed small typo
2015-11-18 11:03:59 +08:00
Edgar Barbosa c6b6ba5daa fixed small typo 2015-11-17 19:35:11 -02:00
Nguyen Anh Quynh 2764cb4170 Merge pull request #271 from practicalswift/invalid_test_case_name
invalid_read_in_cpu_tb_exec_x86_64 → invalid_write_in_cpu_tb_exec_x86_64
2015-11-18 01:07:16 +08:00
Nguyen Anh Quynh 42b8879bb2 Merge branch 'master' of https://github.com/farmdve/unicorn into farmdve-master 2015-11-18 00:45:55 +08:00
Nguyen Anh Quynh 3302b9798c add some debug helper on generated machine code 2015-11-18 00:43:18 +08:00