Commit Graph

494 Commits

Author SHA1 Message Date
mio 3ea7857be3
Exit early when invalid read happens
In this way, the target register won't be overwritten
2022-10-20 21:57:28 +02:00
mio a5d4d30a31
Sync PC for mem ldst on aarch64 2022-10-20 21:19:18 +02:00
Nguyen Anh Quynh b99ec09c90 tests: remove unused var 2022-10-12 14:43:01 +08:00
mio c144f06145
Format code 2022-10-01 00:14:08 +02:00
mio 19d8876e23
Deep copy for arm cpu state 2022-10-01 00:14:08 +02:00
relapids 1065c2dff4 Fix test_uc_hook_cached_uaf for MacOS M1 (aarch64). 2022-09-25 15:24:56 -07:00
Timo Röhling e1e7b25268
Adjust big memory test for host pagesize
On machines with a page size larger than 4K, the requested memory size
in `test_map_big_memory` gets rounded up and overflows to zero.

This PR adds some code to query the page size and adjust the requested
memory size accordingly.
2022-09-25 18:16:06 +02:00
Mio a0e119c6f0
Format code 2022-08-31 23:27:24 +08:00
Mio c4a0813f4a
Add a test for infinite loop when sync-ing pc for UC_HOOL_BLOCK #1661 2022-08-31 23:27:05 +08:00
relapids 154a21d6a3 Disable ARM-specific tests when ARM is unavailable. 2022-08-18 18:29:24 -07:00
relapids 2e8986174b Fix leak in test_mem_protect_map_ptr. 2022-08-15 05:38:29 -07:00
mio bdb141aeef
Disable unaligned access test on ppc and aarch64
The memoy read operations on these architectures are inlined

e.g. ldur on aarch64
2022-08-14 15:42:37 +02:00
mio 419d710c4a
Return true when we handled the memory events 2022-08-14 13:37:25 +02:00
mio 2c00546c6e
Merge rhelmot's fix 2022-08-14 13:35:54 +02:00
mio 6db6790ec2 Merge remote-tracking branch 'zachesez/ppc_cr_read_fix' into dev 2022-07-23 20:46:40 +08:00
Mio d6d57834b0
Format code 2022-07-23 19:27:37 +08:00
Mio c7ff9d66cf
Move vex.l test to test_x86 2022-07-23 19:26:35 +08:00
Zach Szczesniak 2b25867e4b Fixed endianness when writing PPC32 CR register. 2022-07-20 18:31:13 -04:00
Duncan Ogilvie e485f39846 Add a test to make sure VEX.L stops emulation with an error 2022-07-20 13:59:27 +02:00
lazymio 0ebac3b455
Fix typo 2022-06-02 15:06:50 +02:00
lazymio 6d61aec82f
Format code 2022-06-02 14:46:26 +02:00
lazymio 637dc8a8a0
Generate an extra block to trigger segfault 2022-06-02 14:45:38 +02:00
lazymio 40436e885b
Fix the cached hook test 2022-06-02 14:38:53 +02:00
lazymio 774c942143
Add a test for hook cache UAF
If a hook is deleted but wrongly cached, a UAP is probably triggered
2022-06-01 23:58:02 +02:00
lazymio e3613a9f59
Format code 2022-05-28 23:46:18 +02:00
lazymio 2a6529348c
Support uc_mem_protect on mmio regions
Also make mmio ranges return the correct errors on wrong protection
2022-05-28 23:33:43 +02:00
lazymio ba50035830
Format code 2022-05-23 12:30:44 +02:00
lazymio dae48aecee
Mem hook should return a bool 2022-05-20 13:31:54 +02:00
lazymio 0d41d4bbb2
Merge QDucasse:x86_hook_address for tests 2022-05-20 13:07:49 +02:00
lazymio f4f726d7fc
Add test for ensuring hooks are get called only once 2022-05-07 00:23:04 +02:00
Quentin DUCASSE 38dfd69309 Equivalent tests for arm64 2022-05-04 18:03:06 +02:00
Quentin DUCASSE f569417878 Equivalent tests for riscv 2022-05-04 17:18:47 +02:00
Quentin DUCASSE 8ee9e89f01 Fixed code comment for x86 tests 2022-05-04 17:06:48 +02:00
Quentin DUCASSE a3ed8bbce5 Tests for jump hook address 2022-05-04 16:51:43 +02:00
lazymio ba132b974d
Move tests to root directory
Reference: https://doc.rust-lang.org/stable/cargo/guide/project-layout.html
2022-04-29 23:40:03 +02:00
Eric Poole cfee2139a0
TriCore Support (#1568)
* TriCore Support

python sample

* Update sample_tricore.py

Correct attribution

* Update sample_tricore.py

Fixed byte code to execute properly.

* Update sample_tricore.py

Removed testing artifact

* Added tricore msvc config-file.h

* Added STATIC to tricore config and added helper methods to symbol file generation.

* Update op_helper.c

Use built in crc32

* Fix tricore samples and small code blocks are now handled properly

* Add CPU types

* Generate bindings

* Format code

Co-authored-by: lazymio <mio@lazym.io>
2022-04-29 23:11:34 +02:00
lazymio ed90e98d81
Generate a TB at least to make sure cahce is not cleared for ADD and DEC 2022-04-26 01:18:00 +02:00
lazymio d3f1ec1345
Add a test for count hook cache 2022-04-26 01:17:59 +02:00
lazymio 3d3deac5e6
Fix crash when mapping a big memory and calling uc_close 2022-04-16 19:17:41 +02:00
lazymio cf18982e1c
Add two tests for mem map wrap 2022-04-16 18:19:41 +02:00
lazymio c379d1bfe4
Format code 2022-04-16 17:50:12 +02:00
lazymio b136f08f2d
Check CPU model for uc_ctl 2022-04-16 17:49:47 +02:00
shuffle2 2912cd1e29
fix rust bindings build on windows (#1584)
Refine rust bindings.
2022-04-16 13:40:04 +02:00
lazymio e3d0a33ab8
Fix BE32 usermode address XOR 2022-04-05 11:55:58 +02:00
lazymio 3112cd920e
Add a test for nested uc_emu_start exits 2022-03-06 23:51:35 +01:00
lazymio 2a4e42f315
Fix test 2022-03-06 23:40:57 +01:00
lazymio e5207a1363
Implement UC_HOOK_INSN for aarch64 MRS/MSR/SYS/SYSL 2022-02-27 15:28:31 +01:00
lazymio d946114dfe
Set EFLAGS correctly on startup 2022-02-25 22:44:42 +01:00
lazymio 186be25c40
Fix wrong mode in tests 2022-02-25 22:28:26 +01:00
lazymio 45b5d7d8d2
Add test for caf2fe1ddb 2022-02-25 22:24:17 +01:00
Bet4 d96083d4d1 Fix pc after ppc sc inst 2022-02-20 20:42:46 +08:00
lazymio 73e4a90d3a
Manually revert 63a445cbba 2022-02-13 10:13:01 +01:00
lazymio 4266196b2d
Fix the divergence with master. 2022-02-13 10:08:58 +01:00
lazymio e382ca102a
Fix the regression bug 2022-02-13 09:52:00 +01:00
lazymio 96518634fb
Fix the wrong block found when doing split_region 2022-02-12 21:34:46 +01:00
lazymio a2f18bbfaf
Format code 2022-02-12 16:29:00 +01:00
lazymio 5683a5484d
Add test for switch endianess runtime 2022-02-12 14:35:33 +01:00
lazymio 380e72bc12
Add tests for armeb CPSR.E and SCTLR.B 2022-02-12 14:29:15 +01:00
lazymio 58fc952230
Remove armeb-softmmu and aarch64eb-softmmu 2022-02-12 14:15:54 +01:00
lazymio 3e6665db00
Implement coprocessor register read/write for arm64 2022-02-11 22:13:01 +01:00
lazymio 8bc1489210
Implement coprocessor register read/write for arm 2022-02-11 21:45:37 +01:00
Nguyen Anh Quynh 141a558dd8 fix conflicts 2022-01-28 10:30:51 +08:00
lazymio bbfb376a88
Merge pull request #1521 from unicorn-engine/s390x
S390X Support
2022-01-19 23:07:19 +01:00
mio 2ad9f152f9
Set emulation_done to true if and only if we exit the outer uc_emu_start
Or we may lost uc_emu_stop wrongly
2022-01-19 21:58:46 +01:00
mio e6ff7e83e3
Sync with dev branch 2022-01-18 21:39:45 +01:00
mio ac510d13c7
Fix fuzzing and remove unused variable 2022-01-18 21:37:32 +01:00
mio 4f1aeb83ca
Add fuzz_emu_s390x_be.c 2022-01-18 21:16:01 +01:00
mio 7095605607
Merge branch 'dev' into systemz 2022-01-18 21:10:55 +01:00
lazymio ea9c7425b0
Fix the wrong PC when arm translation fectches unmapped memory
This behavior keeps the same with Unicorn1, though, different from arm doc
2022-01-16 16:42:38 +01:00
lazymio 459a595a98
Merge branch 'dev' into s390x
Mostly for bindings update.
2022-01-15 20:56:39 +01:00
lazymio 6ed2214399
Rebuilt hflags when swithing modes
Or we may get the wrong mode during translation
2022-01-14 19:37:48 +01:00
lazymio 980eae7f44
Sync PC at the end of emulation 2022-01-10 15:45:56 +01:00
lazymio 71f044ca50
Merge branch 'dev' into s390x 2022-01-10 15:17:42 +01:00
lazymio 36afa1022c
More PPC registers
Add FPR0-31, CR0-7, LR, CTR, MSR, XER, FPSCR for PPC

Add a test for ppc32 float point
2022-01-10 15:16:10 +01:00
lazymio e84a5c44e9
Add a test for arm mrc instruction (also for coproc) 2022-01-05 21:57:32 +01:00
lazymio 8e70f3e524
Format code 2022-01-05 21:56:58 +01:00
lazymio b8817518ae
Add a test for arm64 pac extension 2022-01-05 20:02:21 +01:00
lazymio 3f64491fda
Add further test for arm system mode transition 2022-01-05 19:38:02 +01:00
lazymio 73149f3616
Fix test case 2022-01-04 20:54:52 +01:00
lazymio 7dc858d03d
Add a test for arm privilege escalation 2022-01-04 20:30:07 +01:00
mio 8fc836c5fa
Fix tests list not marked with NULL 2021-12-29 23:10:21 +01:00
mio 849325b9c6
Add unit test for s390x 2021-12-27 23:59:53 +01:00
mio faa689c0f0
Merge systemz to the latest uc2 codebase 2021-12-26 22:58:32 +01:00
lazymio cddc9cf2ed
Fix arm post init 2021-12-25 00:16:51 +01:00
lazymio 5b3a9e1024
Add test for arm v8 2021-12-24 23:45:57 +01:00
lazymio 4f73d75ea8
Fix #1500 2021-12-23 21:46:27 +01:00
lazymio ef6f8a2427
Fix x86 CPUID 2021-12-22 23:39:41 +01:00
lazymio 7bb0abb977
Format 2021-12-22 20:37:15 +01:00
lazymio 7bb756249a
Better design of cpuid instruction hook 2021-12-22 20:36:56 +01:00
Quentin DUCASSE 033e79abac Added cache flush after code patching in unit tests for arm64 and riscv 2021-12-17 14:55:08 +01:00
Dimitris Glynos 63a445cbba
fxsave / fxsave64 should store the floating point instruction pointer (fpip) (#1467)
* fxsave / fxsave64 should store the floating point instruction pointer (fpip)
- fxsave / fxsave64 happen to be used as GetPC code in exploits

* unit tests for the storage of FPIP in fxsave (x86) and fxsave64 (x64)
2021-12-13 08:40:32 +08:00
Quentin DUCASSE 549274f44c Code patching tests for riscv and arm64 2021-12-10 15:27:54 +01:00
Nguyen Anh Quynh b042a6a01d add missing files 2021-12-06 04:28:13 +08:00
lazymio 8a0ca8715e
Fix SR read/write and a test 2021-12-04 23:22:28 +01:00
lazymio 221cde18df
Write CPSR as it is initiated from instructions to allow regs switch 2021-11-24 17:10:51 +01:00
lazymio 78e0ddbc4d
Fix mmio unmap 2021-11-24 00:18:19 +01:00
lazymio 4ed1c4cff9
Fix test name typo 2021-11-23 23:24:53 +01:00
Sven Bartscher 3e2580ef9e Add test case for #1497 2021-11-23 22:47:20 +01:00
lazymio e11cc16e54
Implement high-resolution clock for mingw64 in test_ctl 2021-11-23 14:15:18 +01:00
lazymio ccfb66611f
Move test to test_mem 2021-11-23 00:41:49 +01:00