Commit Graph

262 Commits

Author SHA1 Message Date
Elton G
47150b6df3 reg_read and reg_write now work with registers W0 through W30 in Aarch64 (#716)
* reg_read and reg_write now work with registers W0 through W30 in Aarch64 emulaton

* Added a regress test for the ARM64 reg_read and reg_write on 32-bit registers (W0-W30)
Added a new macro in uc_priv.h (WRITE_DWORD_TO_QWORD), in order to write to the lower 32 bits of a 64 bit value without overwriting the whole value when using reg_write

* Fixed WRITE_DWORD macro

reg_write would zero out the high order bits when writing to 32 bit registers

e.g. uc.reg_write(UC_X86_REG_EAX, 0) would also set register RAX to zero
2017-01-15 20:13:35 +08:00
Nguyen Anh Quynh
55f0292aa9 Merge branch 'master' of https://github.com/unicorn-engine/unicorn 2017-01-13 20:13:31 +08:00
Nguyen Anh Quynh
353dc99af6 regress: fix arm_fp_vfp_disabled.py 2017-01-13 20:13:20 +08:00
hedger
d2b7d13443 Fixed circular refs preventing Uc instances from being GC'd. Added a test case, requires objgraph module. 2017-01-11 18:23:21 +03:00
Nguyen Anh Quynh
bc569f5a54 rename API uc_mem_free() to uc_free(). see #662 2017-01-10 20:59:14 +08:00
Nguyen Anh Quynh
fdbbdc6216 rename uc_context_free() to uc_mem_free(). see #373 2017-01-09 20:52:14 +08:00
me
87e8532e67 regress: link on Linux with -lrt 2016-12-26 14:16:56 +08:00
Nguyen Anh Quynh
5f81c00559 Merge branch 'noglib' of https://github.com/cseagle/unicorn into cseagle-noglib 2016-12-19 17:32:27 +08:00
Chris Eagle
e46545f722 remove glib dependency by provide compatible replacements 2016-12-18 14:56:58 -08:00
Grazfather
795a241dd3 Add ARM bx crash regress test case 2016-11-26 12:51:01 -08:00
Stephen
75d90aff52 Make cleanup (#666)
* make cleanup

* Update .travis.yml
Update eflags_nosync.c
Update sigill2.c
Update ro_mem_test.c
Update ro_mem_test.c
Update nr_mem_test.c
Update mem_fuzz.c
Update mem_double_unmap.c
Update emu_stop_in_hook_overrun.c
Update eflags_nosync.c
remove unused
Update Makefile
Update Makefile
Update Makefile
Update Makefile
Update Makefile
Update Makefile
Update Makefile
Update mem_64_c.c
Update mem_64_c.c
Update Makefile
Update Makefile
Update Makefile
Update Makefile
Update Makefile
Update Makefile
Update .travis.yml
try android ndk build
Update unicorn.py
Update unicorn.py
Update Makefile
Update unicorn.py
Update unicorn.py
remove an untrue comment

if a dll/so/dylib gets loaded at runtime is dependent on many different factors, primarily the LD/DYLD paths. Those do not always include the current working directory
Update Makefile
Update .appveyor.yml
Update .travis.yml
Update Makefile
Update .appveyor.yml
Fix bad sample

* Update Makefile

* Update Makefile

* Update install-cmocka-linux.sh

* remove verbose option from tar

* add upgrade to pacman for cmake

* pacman double update, needed to get new packages

* enable cmocka unit testing

* rejigger commands to fail on any step

should get fails in msys builds for cmocka

* fix quote

* make cmocka in cygwin only

* add msys cache
2016-11-19 17:17:48 +08:00
Peter Harliman Liem
7660768942 Fix leak and style in map_write.c (#658)
Fix potential leak, wrong text in log, and restyle
to a cleaner exit path
2016-10-25 23:47:55 +08:00
Stephen
bc08bfda67 Unit testing in CI (#651)
- in appveyor, install clang and cmake in cygwin, enable package upgrades, and build cmocka and enable testing for gcc only
- in `gitignore`, ignore generated cmocka folder
- in travis, use brew in osx to install cmocka, and enable testing for gcc and clang on os x and linux
- in `Makefile`, change to use `uname -s` to determine os type
- make `install-cmocka-linux.sh`, a simple shell script to download and install cmocka on linux
- in `bindings/Makefile`, enable `make -c` to call subdirectory makefiles instead of `cd [dir] && make` and include environment variables for runtime access to generated libraries
- in `samples/Makefile`, change to use `uname -s` to determine os type, remove `clean_bins` from `all` command, and include `Werror` for compile strictness
- in `tests/unit/Makefile`, add `cflags` for compile time access to cmocka headers and library, include execute vars for runtime access to cmocka and unicorn libs
- in `tests/unit/test_tb_x86.c`, comment out assert that would not compile
2016-10-22 00:21:10 +08:00
Andrew Dutcher
ea54204952 Tweak some names in a few places, encapsulate the uc_context struct to hide it from users for some reason 2016-10-10 14:04:51 -07:00
Andrew Dutcher
1ab2154fe5 Change save/restore API to have explicit alloc/free functions. Python has explicit save/update functions. 2016-10-07 11:39:42 -07:00
Nguyen Anh Quynh
73577cbcd1 rename uc_regstate_restore to uc_context_restore, uc_context_save to uc_context_save 2016-10-07 10:03:19 +08:00
Nguyen Anh Quynh
b7cdbe7a88 Merge branch 'feat/reg_save_restore' of https://github.com/rhelmot/unicorn into rhelmot-feat/reg_save_restore 2016-10-07 09:57:07 +08:00
Stephen
0137a66c61 Update test_hang.c 2016-10-05 10:29:16 -07:00
Stephen
f2998f14cd Update test_hang.c 2016-10-05 09:20:36 -07:00
Andrew Dutcher
e3b0e52013 Rename save/restore functions to match the style of the rest of the API 2016-09-28 21:21:44 -07:00
Andrew Dutcher
3deb9fdcad Fix save/restore to work while emulation is not active 2016-09-08 14:41:34 -07:00
Andrew Dutcher
f2af98942b Added (failing?) test for reg save/restore 2016-08-31 20:25:28 -05:00
Andrew Dutcher
f8ac51bb3d Document assembly instructions for x86_self_modifying 2016-08-30 14:40:26 -05:00
Nguyen Anh Quynh
10519d6864 regress: fix compilation warning in invalid_read_in_cpu_tb_exec.c 2016-08-30 21:23:50 +08:00
Nguyen Anh Quynh
69d976375e Merge branch 'fix/self_modifying' of https://github.com/rhelmot/unicorn into rhelmot-fix/self_modifying 2016-08-30 21:20:22 +08:00
Nguyen Anh Quynh
49d546b355 regress: fix some warnings on printing sizeof() 2016-08-28 01:38:37 +08:00
Nguyen Anh Quynh
89c9ea5f8f Merge branch 'fix/eflags' of https://github.com/rhelmot/unicorn into rhelmot-fix/eflags 2016-08-24 16:13:31 +08:00
Nguyen Anh Quynh
40ea64af19 Merge branch 'feat/xmm_regs' of https://github.com/rhelmot/unicorn into rhelmot-feat/xmm_regs 2016-08-23 06:52:45 +08:00
nnn
64e6fbc480 Fixed printf format specifier 2016-08-20 22:34:14 -07:00
nnn
d77fd18915 Fixed multiple bugs in test_x86_rip_bug.c
Fixed format warning in test_hang.c
2016-08-20 22:23:51 -07:00
nnn
4a67727f81 Updated Makefile 2016-08-20 18:47:45 -07:00
Neil
06fc5d1ea9 Add files via upload
Unit Test for Issue #534
2016-08-20 21:35:23 -04:00
Hors
90fb03cf5c Update mem_map_0x100000000.c 2016-08-19 23:33:04 +02:00
Hors
0fc3861699 Update Makefile 2016-08-19 23:32:19 +02:00
Hors
deeca1f722 Create mem_map_0x100000000.c 2016-08-19 11:19:06 +02:00
Andrew Dutcher
46c53fa4b7 Add regression test for new eflags patch 2016-08-15 00:12:32 -07:00
Andrew Dutcher
42949408ca Added test for real self-modifying code 2016-08-14 23:21:38 -07:00
Andrew Dutcher
b1f03a02f2 Add tests for xmm register read/write 2016-08-14 19:26:32 -07:00
Andrew Dutcher
97b10da133 Undo the disaster that was the patch to unicorn github issue #266 and fix it correctly. makes normal self-modifying code work. 2016-08-09 19:35:20 -07:00
samothtronicien
edd37f7a1c removing tests/regress/test_x86_shl.cpp 2016-08-01 10:31:10 +02:00
samothtronicien
92f97da49f bit of refactoring 2016-07-31 19:45:46 +02:00
samothtronicien
f1041a2615 renamed to test_x86_shl_enter_leave.c 2016-07-31 03:23:00 +02:00
samothtronicien
ae8e34173a added tests with enter/leave 2016-07-31 03:19:52 +02:00
samothtronicien
1ecc5abdbc fixed typo: test_x86_shl_pf -> test_x86_shl 2016-07-30 16:44:54 +02:00
samothtronicien
8120b7732e added test_x86_shl_pf to makefile 2016-07-30 16:42:51 +02:00
samothtronicien
c1cd06ec52 ported test to C 2016-07-30 16:41:40 +02:00
samothtronicien
6c3eecb2a3 added unit test for x86
This test highlight the issue with the SHL instruction in the form (SHL r, CL), the flags values retrieved in the code hook are not correct.
2016-07-30 04:18:12 +02:00
samothtronicien
6fc1f27492 completed the test
The issue noticed before only occurs while we are in the hook_code (eflags is not correctly updated after the execution of the SHL instruction using CL).
Once the emulation has finished executing the code the value of eflags is correct.
2016-07-29 18:52:53 +02:00
samothtronicien
2ba32922e4 Moved test_x86_shl.cpp to tests/regress 2016-07-29 12:00:48 +02:00
Nguyen Anh Quynh
07426d324b regress: chmod +x x86_fldt_fsqrt.py 2016-07-16 22:31:39 +08:00