flobernd
4bea392853
Renamed `SAVESSP` to `SAVEPREVSSP`
2018-03-11 19:07:33 +01:00
flobernd
74c3211dd0
Added missing `extern "C"` block in `String.h`
2018-03-07 14:56:45 +01:00
flobernd
3263a65b56
Updated version to 2.0.1.0
2018-03-07 14:55:25 +01:00
flobernd
778401a51c
CMake: Fixed `ZYDIS_FEATURE_DECODER` and `ZYDIS_FEATURE_FORMATTER` options
2018-02-28 21:16:32 +01:00
flobernd
81b45d39dd
Removed non-ASCII characters
2018-02-28 18:57:04 +01:00
flobernd
7d2a3c05ad
Removed all trailing whitespaces
2018-02-28 18:15:18 +01:00
flobernd
5a90a4d628
Removed `ZYDIS_INLINE` attribute from all exported `ZydisString*` functions
2018-02-26 23:12:57 +01:00
flobernd
c596748158
Minor cosmetic changes
2018-02-26 21:57:53 +01:00
flobernd
0e60679470
Minor changes to the internal formatter logic
...
- `ZYDIS_FORMATTER_HOOK_PRINT_MEMSIZE` is now directly invoked by `ZYDIS_FORMATTER_HOOK_FORMAT_OPERAND_MEM`
2018-02-26 13:13:11 +01:00
flobernd
1483f854f2
Cosmetical fixes
2018-02-24 23:45:31 +01:00
flobernd
6efd1ced36
Added doxygen documentation for generated enum values
2018-02-24 21:04:23 +01:00
flobernd
63f5b2f680
Minor refactorings
...
- Register enum is now auto generated
- Cosmetical changes
2018-02-24 20:59:35 +01:00
flobernd
c6b3c5d242
Changed type of implicit memory operands to `ZYDIS_MEMOP_TYPE_MEM` instead of `ZYDIS_MEMOP_TYPE_INVALID`
2018-02-23 03:44:06 +01:00
flobernd
6a8825ead2
Renamed some string-functions to match the existing naming convention (`ZydisString*`)
2018-02-23 02:23:45 +01:00
flobernd
ef22aef632
Exported `ZydisString*` functions
2018-02-23 01:34:06 +01:00
flobernd
2cd7018b5b
Added `MONITORX`, `MWAITX` and `ENCLV` instructions
2018-02-19 18:59:33 +01:00
flobernd
bbb864561d
More formatter changes
...
- Added `ZydisFormatterFormatOperand` and `ZydisFormatterFormatOperandEx` (this won't print AVX-512/KNC decorators)
- User defined callbacks should return `ZYDIS_STATUS_SKIP_OPERAND` to omit an operand (returning `ZYDIS_STATUS_SUCCESS` without writing to the buffer is now deprecated)
2018-02-06 19:35:54 +01:00
flobernd
57ccc70415
Optimized detection of bad register values
2018-01-11 22:30:23 +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
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
38c99667c4
Minor table changes
...
- Fixed `LWPINS` and `LWPVAL` instructions
- Added `PCONFIG` instruction
2017-12-20 23:36:59 +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
1d6c296c5f
Renamed `ZydisStringAppendStaticEx` to `ZydisStringAppendExStatic`
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
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
Joel Höner
a2cc8615ba
Various minor no-libc fixes
2017-11-27 00:06:09 +01:00
Joel Höner
486add62ed
Added static assert + verify int type sizes
2017-11-26 05:33:37 +01:00
Joel Höner
56f47f4863
Added support for compiling on ARM target
2017-11-26 04:38:32 +01:00
Joel Höner
a835185da2
Clang and GCC support in no-libc mode
2017-11-26 04:00:55 +01:00
Joel Höner
c4f5af64d0
Added own `NULL`
2017-11-25 03:18:08 +01:00
Joel Höner
cf24ee010a
Introduced custom integer types
2017-11-25 01:47:02 +01:00
Joel Höner
066e7f359d
Removed old feature check flags
2017-11-25 00:41:27 +01:00
flobernd
4195e9b0b8
Some decoder and formatter improvements
...
- Added `const` specifiers to some local variables
- Added KNC compatibility-mode (`ZYDIS_DECODER_MODE_KNC`) to improve decoding of ambiguous KNC/KNL+ mask-instructions
2017-11-16 22:18:20 +01:00
flobernd
e314c71db3
Added some undocumented `PREFETCH` instructions
2017-11-16 18:47:42 +01:00
flobernd
626d0bc238
Minor bugfixes
2017-11-14 07:33:15 +01:00
flobernd
df101d0fe0
Decoder improvements
...
- Instructions which are only valid in protected-mode are now rejected, if `ZYDIS_MACHINE_MODE_REAL_16` is used
- The `scale` of memory-operands is now correctly set to `1` in 16-bit mode, if an index register was specified
2017-11-13 19:43:19 +01:00
flobernd
5c634f71ad
Added formatter properties to set a custom hex-prefix/suffix
2017-11-13 13:52:02 +01:00
flobernd
9ccc096232
Minor table-changes to mirror the latest changes of the XED datatables
2017-11-07 22:18:51 +01:00
flobernd
adbfb9cd66
Added formatter properties to control padding of hexadecimal values
...
- Renamed `ZydisFormatterSetAttribute` to `ZydisFormatterSetProperty`
- Renamed some formatter enums
- Added `ZYDIS_FORMATTER_PROP_ADDR_PADDING`
- Added `ZYDIS_FORMATTER_PROP_DISP_PADDING`
- Added `ZYDIS_FORMATTER_PROP_IMM_PADDING`
2017-11-06 21:35:13 +01:00