Andrei Vlad LUTAS
767bf2e5c0
Added support for new Intel AVX 10.2 instructions.
...
Added support for AMD RMPREAD instruction.
Improved EVEX decoding, including the new U bit.
Fixed ENTER & LEAVE operands.
2024-09-16 12:23:54 +03:00
vlutas
c877b5007f
Merge pull request #96 from turol/optimize
...
Optimizations
2024-08-29 17:38:46 +03:00
Turo Lamminen
56bbcca4cf
Replace ND_SIGN_EX with less branchy version
2024-08-29 17:25:45 +03:00
Andrei KISARI
68166adcbd
Add support for builds without mnemonics.
2024-08-28 10:18:10 +03:00
Andrei Vlad LUTAS
270587903e
Some more type cast warnings fixed.
2024-06-04 19:13:52 +03:00
Andrei Vlad LUTAS
f1a85df2e7
Use const cast when fetching bytes from memory.
2024-05-29 09:05:56 +03:00
Andrei Vlad LUTAS
a86c84f599
Added missing paranthesis around macro parameter.
2024-05-28 23:19:20 +03:00
Andrei Vlad LUTAS
91f04ed43b
Fixed potential unaligned load, as reported by UBSAN.
2024-05-28 19:20:38 +03:00
Andrei Vlad LUTAS
05d5632dea
https://github.com/bitdefender/bddisasm/issues/89 - fixed comment.
2024-05-07 17:03:07 +03:00
Andrei Vlad LUTAS
f32c0373ac
Incremented revision to 2.1.4.
2024-03-27 09:30:24 +02:00
Andrei Vlad LUTAS
4bc4636765
https://github.com/bitdefender/bddisasm/issues/88 - removed (no longer needed) assert.
2024-03-27 09:15:51 +02:00
Andrei Vlad LUTAS
37a8c94bc7
Applied some of the syntax recomandations from https://cdrdv2.intel.com/v1/dl/getContent/817241 .
2024-03-04 12:48:18 +02:00
Andrei Vlad LUTAS
02cbe6a298
https://github.com/bitdefender/bddisasm/issues/87 - added missing R
access for the rIP
operand for SYSCALL
instructions; added missing SCS
, rCX
and rDX
operands for SYSEXIT
instruction.
2024-02-27 09:45:05 +02:00
Andrei Vlad LUTAS
3df189f093
https://github.com/bitdefender/bddisasm/issues/87 - Fixed CALL
instruction access for rIP
operand - it must include read access, as the instruction pointer is saved on the stack.
2024-02-26 20:53:42 +02:00
Andrei Vlad LUTAS
fad9c7e35c
BDDISASM v2.1.0 release - please consult the CHANGELOG for details about the modifications.
2024-02-20 13:39:22 +02:00
Andrei Vlad LUTAS
f53cbc51e2
Added support for new Intel ISA, per Intel® Architecture Instruction Set Extensions and Future Features document #319433-049 (June 2023): AVX-NNI-INT16, SHA512, SM3, SM4, TSE.
2023-07-21 09:38:49 +03:00
BITDEFENDER\vlutas
124521beb5
Added support for Intel AMX-COMPLEX instructions.
2023-04-05 09:45:07 +03:00
BITDEFENDER\vlutas
7a254037b0
Added support for AMD RMPQUERY instruction.
2022-10-27 12:37:02 +03:00
BITDEFENDER\vlutas
9ba1e6a2f9
Added support for new Intel instructions, per Intel ISA extensions document #319433-046 (September 2022): PREFETCHITI, RAO-INT, CMPCCXADD, WRMSRNS, MSRLIST, AMX-FP16, AVX-IFMA, AVX-NE-CONVERT, AVX-VNNI-INT8.
...
Multiple minor fixes to existing instructions.
Moved x86 decoding tests in a separate directory & improved the test script.
2022-10-04 12:22:59 +03:00
BITDEFENDER\vlutas
4596dbda51
Add copyright info when auto-generating files.
2022-09-10 23:15:00 +03:00
BITDEFENDER\vlutas
47da322ea5
Improved upper bits handling for SSE/AVX operations.
...
Improved POPF handling when 16 bit operand size is used.
Fixed typo in PUNPCKLBW emulation.
2022-08-09 20:02:45 +03:00
BITDEFENDER\vlutas
2fc491d51d
Handle reserved bits in RFLAGS when setting the entire register value.
2022-08-08 12:02:00 +03:00
BITDEFENDER\vlutas
f62c8a2238
https://github.com/bitdefender/bddisasm/issues/70 - fixed OF setting on ROR.
2022-08-01 15:46:38 +03:00
BITDEFENDER\vlutas
d3fd900903
Fixed OF on SHL and SHR with one bit shifts.
2022-08-01 14:13:27 +03:00
BITDEFENDER\vlutas
bf81c647e3
Make sure all flags are set for CMPXCHG (this was left intentionally incomplete).
...
Make sure we clear upper bits of the 256/512 bit SSE register.
2022-07-19 11:03:17 +03:00
BITDEFENDER\vlutas
6dda2c122c
Make sure upper 32 bit of a CMOV destination register is cleared to 0 even if the condition is not satisfied
2022-07-16 12:21:46 +03:00
BITDEFENDER\vlutas
1805a9edec
Fixed flag setting for ADC, SBB, SAR and IMUL instructions.
2022-07-14 13:42:37 +03:00
BITDEFENDER\vlutas
fe6a937f51
Switched to internally defined types.
...
WRUSSD and WRUSSQ cannot be executed when CPL != 0.
2022-01-05 14:03:13 +02:00
BITDEFENDER\vlutas
63e3ee22a9
Fixed High8 handling in NdGetFullAccessMap.
2022-01-03 12:25:35 +02:00
BITDEFENDER\vlutas
2f50ce9b4e
Improved REG_ID macros - make sure we include block addressing and High8 designator in the reg ID. Alsom, make sure the register size fits in, since the new tile register can be 1K in size, which previously overflowed...
2021-12-03 12:44:57 +02:00
BITDEFENDER\vlutas
433e723e07
Implemented a reverse oprand lookup table. It holds pointers to relevant operands inside INSTRUX, for quick lookup.
...
Moved helper functions in bdhelpers.c.
Added a dedicated BranchInfo field inside INSTRUX, containing the most relevant branch information.
2021-11-02 11:22:22 +02:00
BITDEFENDER\vlutas
412f065965
Moved the formatting function in a dedicated source file.
...
Added support for SIDT and RDTSC in bdshemu.
2021-10-19 17:33:15 +03:00
Andrei Vlad LUTAS
08096172cc
Multiple improvements
...
- New shemu flag - SHEMU_FLAG_SIDT, set when sheu encounters a SIDT in ring0.
- Added the CET Tracked flag to SYSCLAL, SYSENTER and INT n instructions.
- Fixed Do Not Track prefix recognition for CALL and JMP in long-mode.
- Fixed MONITOR and MONITORX implicit operands - the rAX register encodes a virtual address that will be used as the monitored range. That address is subject to a 1 byte load.
- Fixed RMPADJUST and RMPUPDATE implicit operands - the rAX register encodes a virtual address, and the rCX register encodes a virtual address of the RMP updated entry.
2021-08-31 13:37:50 +03:00
Andrei Vlad LUTAS
5a617986b7
Added new shemu flag: SHEMU_FLAG_SUD_ACCESS is raised whenever the code accesses the SharedUserData page.
2021-08-16 12:34:41 +03:00
Andrei Vlad LUTAS
c8735b437a
Fixed NEG emulation - make sure flags are set.
2021-08-10 14:46:39 +03:00
Andrei Vlad LUTAS
f6050661d5
Multiple improvements in bdshemu
...
Fixed an emulation bug for MOVZX and MOVSX instructions (https://github.com/bitdefender/bddisasm/issues/48 )
New shellcode flag - call tot Wow32 reserved.
New shellcode flag - heaven's gate.
New shellcode flag - stack-pivot.
Moved bdshemu tests in a password protected zip file, so it doesn't trigger AV detections.
2021-08-10 11:43:51 +03:00
Andrei Vlad LUTAS
76d92e73c2
Multiple changes
...
- Add support for AVX512-FP16 instructions, as per https://software.intel.com/content/www/us/en/develop/download/intel-avx512-fp16-architecture-specification.html
- Bug fix: zeroing with no masking is not supported, so return an error if we encounter such encodings
- Bug fix: ignore VEX/EVEX.W field outside 64 bit mode for some instructions
- Several other minor fixes and improvements
2021-07-08 12:40:39 +03:00
Andrei Vlad LUTAS
c3a6ea1c25
Updated SEAMCALL specs according to Intel® Trust Domain CPU Architectural Extensions 343754-002US May 2021.
2021-05-31 13:34:52 +03:00
Andrei Vlad LUTAS
d053de409f
Although not stated in the SDM, VMCALL, VMLAUNCH, VMRESUME and VMXOFF refuse any prefix (66, F3, F2).
2021-05-31 10:42:26 +03:00
Andrei Vlad LUTAS
072f6e059b
Build improvements
...
Exclude string constants from build if BDDISASM_NO_FORMAT is defined.
Use extern "C" when declaring the public bddisasm/bdshemu functions.
Include wmmintrin.h for AES intrinisics when building using LLVM/clang.
2021-05-17 09:52:04 +03:00
Andrei Vlad LUTAS
f7bf814bbc
Flag the rIP operand of conditional branches as being conditionally read/write instead of plain read/write.
...
Bypass self-writes option in bdshemu - if set, bdshemu will not proceed to commit modifications made by the shellcode to itself.
2021-05-17 09:04:34 +03:00
Anichitei Ionel-Cristinel
a0e5d8f905
Increment revision
2021-03-31 11:55:25 +03:00
Andrei Vlad LUTAS
fccf11915d
Added support for Intel FRED and LKGS instructions.
2021-03-15 14:05:44 +02:00
Andrei Vlad LUTAS
f7be5a7bbd
Incremented version.
2021-02-23 18:17:21 +02:00
Andrei Vlad LUTAS
1eb1c9d0d2
Fixed https://github.com/bitdefender/bddisasm/issues/38 .
2021-01-15 19:09:53 +02:00
Andrei Vlad LUTAS
98ea9e1d9a
Fixed https://github.com/bitdefender/bddisasm/issues/34 , https://github.com/bitdefender/bddisasm/issues/35 , https://github.com/bitdefender/bddisasm/issues/36 and https://github.com/bitdefender/bddisasm/issues/37 .
2021-01-11 11:10:04 +02:00
Andrei Vlad LUTAS
f8a3011a49
Added support for AESDEC, AESDECLAST and AESIMC emulation, using compiler intrinsics - they will be used only if the SHEMU_OPT_SUPPORT_AES is set (so the integrator can properly check for AES-NI support in hardware).
...
Fixed shemu option on Linux - make sure proper RIP is provided.
2020-12-04 10:52:56 +02:00
Ionel-Cristinel ANICHITEI
c1c3770cc6
Move bdhsemu.h to inc/
2020-11-17 16:05:40 +02:00
Ionel-Cristinel ANICHITEI
0af56019c2
Initial CMake support
2020-11-17 11:04:30 +02:00
Andrei Vlad LUTAS
e89f56289d
As per Intel SDM version 73 released in November 2020, make sure we don't decode 32-bit EVEX instructions that have EVEX.V' cleared, and 64-bit EVEX instructions that don't use EVEX.V' field, but have it cleared.
2020-11-17 10:36:26 +02:00