Commit Graph

483 Commits

Author SHA1 Message Date
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
Sven Bartscher
b35dbb90b2 Add test case for #1495 2021-11-22 18:48:16 +01:00
lazymio
907ec5095d
Fix a stackoverflow in tests 2021-11-21 19:28:45 +01:00
lazymio
fc467edbc6
Fix 32bit target getting wrong offset for mmio 2021-11-16 22:40:57 +01:00
lazymio
247ffbe0e8
Support nested uc_emu_start calls 2021-11-16 21:07:03 +01:00
lazymio
640251e1aa
Leave out size parameter in callback 2021-11-09 00:21:34 +01:00
lazymio
35017a614f
Slightly change UC_CTL_TB_REMOVE_CACHE 2021-11-08 22:09:33 +01:00
lazymio
e836b62e01
Minor fix for uc_ctl 2021-11-08 20:40:02 +01:00
lazymio
2f61592ff9
Fix uc_mem_protect 2021-11-07 20:37:58 +01:00
lazymio
c6fdbb3735
Add RISCV CSR registers 2021-11-07 20:36:04 +01:00
lazymio
01d7e454b7
Fix typo 2021-11-04 20:59:07 +01:00
lazymio
3aa2788586
Format 2021-11-04 18:39:52 +01:00