flobernd
ca9898fa42
Omitting an operand by using formatter hooks will now correctly omit the semicolon as well
2018-02-05 23:34:54 +01:00
flobernd
74ef4ac22e
Fixed detection of bad gather registers in non 64-bit mode
2018-01-27 21:57:16 +01:00
flobernd
1f1be9fa21
Fixed non 64-bit mode mask-register error condition
2018-01-27 17:48:20 +01:00
flobernd
36f9172dad
Fixed some instruction definitions
2018-01-27 17:34:44 +01:00
flobernd
8c5e216e11
Fixed a bug in `ZydisRegisterGetClass`
...
resolves #29
2018-01-25 22:00:29 +01:00
flobernd
f090a4a610
Updated CMake file
2018-01-19 23:35:34 +01:00
flobernd
67e04ec52f
Updated license and version-info
2018-01-19 02:38:18 +01:00
flobernd
9a43872b90
Fixed operand size of some conditional jump instructions
2018-01-19 02:36:46 +01:00
flobernd
61f607e1df
Minor optimizations and bugfixes
...
- Fixed `XCHG R8, RAX` falsely beeing decoded as `NOP`
- Fixed `EVEX/MVEX.R'` not beeing ignored in 16- and 32-bit mode
- Removed some unnecessary conditions from operand-action related code
2018-01-17 00:31:32 +01:00
flobernd
7074e363f0
Fixed formatting of memory operands with explicit segment register
2018-01-14 18:49:56 +01:00
flobernd
57ccc70415
Optimized detection of bad register values
2018-01-11 22:30:23 +01:00
flobernd
44bbc7cea2
Improved `ZydisPerfTest`
2018-01-11 02:44:26 +01:00
flobernd
9c71771875
Added missing `LOCK` prefix check for `3DNOW` encoded instructions
2018-01-11 02:39:43 +01:00
flobernd
7fb7eea11f
Bugfixes and table changes
...
- Fixed `SSE4A` ISA-set and ISA-ext
- Added missing `VEX`-encoded `GFNI` instructions
- Added check for invalid `GATHER`/`SCATTER` registers
2018-01-11 02:17:17 +01:00
flobernd
407a527ae7
Improved `ZydisPerfTest`
2018-01-10 23:11:57 +01:00
flobernd
203dee3bfb
Bugfixes and table changes
...
- Fixed decoding of `XOP` instructions
- Fixed handling of illegal `LOCK` prefixes for `XOP/VEX/EVEX/MVEX` instructions
- Significantly improved detection of bad register values
- Added SSE4a instructions (`EXTRQ`, `INSERTQ`, `MOVNTSD` and `MOVNTSS`)
- Added `VPOPCNTD`/`VPOPCNTQ` instructions with 128- and 256-bit vector-length
- Fixed exception-class of some `GFNI` instructions
- Fixed `RDRAND` and `RDSEED` instructions
- Fixed `SYSRET` instruction
2018-01-10 23:04:57 +01:00
flobernd
fb519fe933
Internal refactorings and performance optimizations
2018-01-10 17:02:11 +01:00
flobernd
585fa7035a
Minor refactorings
2017-12-31 17:27:59 +01:00
flobernd
38c99667c4
Minor table changes
...
- Fixed `LWPINS` and `LWPVAL` instructions
- Added `PCONFIG` instruction
2017-12-20 23:36:59 +01:00
flobernd
f8369ac13c
Minor table fixes
...
- Changed `XSAVE`/`XSAVEOPT` memory operand from W to RW
- Changed amount of bytes popped from stack by the `IRET` instruction
2017-12-20 09:56:51 +01:00
flobernd
e0ec33b5b3
Updated readme
2017-12-20 09:56:51 +01:00
Florian Bernd
ef1d9af54f
Update README.md
...
Updated badges
2017-12-13 11:55:30 +01:00
Mattiwatti
81e6da39c9
Update MSVC project files
2017-12-11 00:14:37 +01:00
flobernd
e4f9054c97
Changed size of `AVX2`-gather memory operands to match `AVX512`
...
The operand-size is now the size of a single element instead of the total size (like it already is for the `AVX512` gather/scatter instructions)
2017-12-10 10:44:59 +01:00
Joel Höner
82f72cf5a1
Fix register strings
2017-12-04 00:37:32 +01:00
Joel Höner
31c369d3f1
Merge branch 'feature/zydis-string' into develop
...
# Conflicts:
# include/Zydis/Formatter.h
# src/Formatter.c
2017-12-03 22:47:01 +01:00
flobernd
dff821402b
Refactored `ZydisFormatter`
...
- Added `ZYDIS_FORMATTER_HOOK_PRE_OPERAND`, `ZYDIS_FORMATTER_HOOK_POST_OPERAND` and `ZYDIS_FORMATTER_HOOK_PRINT_REGISTER`
- Renamed `ZYDIS_FORMATTER_HOOK_PRINT_DISPLACEMENT` to `ZYDIS_FORMATTER_HOOK_PRINT_DISP`
- Renamed `ZYDIS_FORMATTER_HOOK_PRINT_IMMEDIATE` to `ZYDIS_FORMATTER_HOOK_PRINT_IMM`
- Renamed `ZYDIS_FORMATTER_HOOK_PRINT_OPERANDSIZE` to `ZYDIS_FORMATTER_HOOK_PRINT_MEMSIZE`
- Removed `ZYDIS_FORMATTER_HOOK_PRINT_SEGMENT`
- Renamed some enums and types
- Revised documentation
- Fixed examples and tools
2017-12-03 22:38:20 +01:00
flobernd
e145402d2e
Added `ZydisUPointer` and `ZydisIPointer` types
2017-12-03 22:38:20 +01:00
flobernd
451d7fb1a8
Fixed and refactored some enums
...
- Fixed `ZydisRegister` enum and string-table
- Renamed `ZYDIS_XXX_MAX_BITS` in `ZYDIS_XXX_MIN_BITS`
2017-12-03 22:38:20 +01:00
flobernd
043b1f5a5a
Minor improvements to the instruction-formatter
...
- Added zero-termination for the output string of `ZydisFormatterFormatInstruction` / `ZydisFormatterFormatInstructionEx` in error cases
- Renamed some internal functions
2017-12-03 22:38:20 +01:00
flobernd
1d6c296c5f
Renamed `ZydisStringAppendStaticEx` to `ZydisStringAppendExStatic`
2017-12-03 22:38:20 +01:00
flobernd
e943baa683
Removed `InternalTypes.h` from `CMakeLists.txt`
2017-12-03 22:38:20 +01:00
flobernd
39facdf5fe
Reworked `ZydisString`
2017-12-03 22:38:20 +01:00
Joel Höner
346b7fec10
Moved internal headers
2017-12-03 22:38:20 +01:00
Joel Höner
618557a814
Minor documentation tweaks
2017-12-03 22:38:20 +01:00
flobernd
07c325b367
Minor bugfixes
2017-12-03 22:38:20 +01:00
flobernd
a1d58c9ee7
Replaced `ZYDIS_FORMATTER_HOOK_PRINT_OPERAND_SEPARATOR` by `ZYDIS_FORMATTER_HOOK_PRE_OPERAND`/`ZYDIS_FORMATTER_HOOK_POST_OPERAND`
2017-12-02 19:42:30 +01:00
th0rex
022a4e7423
Add hook for operand seperator to formatter
2017-12-02 18:29:16 +01:00
flobernd
217d5cc9af
Minor refactorings and bugfixes
2017-12-02 06:54:47 +01:00
flobernd
71b21c4301
Renamed `ZydisInternalString` to `ZydisGeneratedString`
2017-12-02 06:40:40 +01:00
flobernd
02030c3b92
Various changes and refactorings
...
- Moved types and functions from `FormatHelper.h/c` to `String.h/c`
- Added `ZydisMnemonicGetStringEx` function that returns the mnemonic-string as `ZydisString` struct
- Added `ZYDIS_UNUSED_PARAMETER` macro
- Fixed omitting of operands in custom formatter-hooks
- Fixed `FormatterHooks` example
- Refactored some code
2017-12-02 06:36:12 +01:00
Joel Höner
fa12ccb64b
Switch to length aware string
2017-12-01 20:40:56 +01:00
flobernd
930c4df970
Removed `ZydisDecodedInstruction.instrPointer`
...
The instruction-pointer was always pointing to the next instruction (which is inconsistent for branch instructions). We can't always tell IF an instruction is going to branch (for the conditional ones), so we decided to completely remove it.
You can always manually combine `instrAddress` and `length` to calculate this value.
2017-12-01 20:21:25 +01:00
flobernd
1cd788f751
Minor table fixes
2017-12-01 01:18:25 +01:00
flobernd
818ded7eef
Converted MSVC README to markdown
2017-11-30 22:50:33 +01:00
Joel Höner
38ba947650
Merge pull request #24 from Mattiwatti/msvc
...
Visual Studio project files / Windows kernel mode sample
2017-11-30 21:34:46 +01:00
Mattiwatti
f5340ef7f2
Do not disable /GS cookies and CFG by default in release mode
2017-11-30 14:53:38 +01:00
Joel Höner
58ce3a3e7f
Removed forgotten stdint.h include
2017-11-30 08:03:34 +01:00
flobernd
beeaa0e279
Added additional check for invalid AVX-512 zero masks
2017-11-29 22:47:09 +01:00
Mattiwatti
039a0b93d7
Make ZydisWinKernel compatible with Clang
2017-11-29 17:01:15 +01:00