th0rex
022a4e7423
Add hook for operand seperator to formatter
2017-12-02 18:29:16 +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
flobernd
cbf06b1bf3
Minor interface changes
...
- Reverted last change
- Removed `ZydisFormatterInitEx`
- Added `ZydisFormatterSetAttribute`
2017-11-03 02:24:02 +01:00
Joel Höner
3a38b9ceb5
Revert "Minor interface changes"
...
This reverts commit 0ba5c95dac
.
2017-11-02 23:03:21 +01:00
flobernd
0ba5c95dac
Minor interface changes
...
- Removed `ZydisDecoderEnableMode`
- Added `ZydisDecoderInitEx` with an additional `flags` parameter that can be used to specify a mask of decoder-modes
2017-11-02 17:03:12 +01:00
flobernd
57f7ff8bcd
Implemented decoder-modes to support ISA-extensions that conflict with existing instructions
...
- Added decoder-modes
- `ZYDIS_DECODER_MODE_MINIMAL`
- `ZYDIS_DECODER_MODE_AMD_BRANCHES`
- `ZYDIS_DECODER_MODE_MPX`
- `ZYDIS_DECODER_MODE_CET`
- `ZYDIS_DECODER_MODE_LZCNT`
- `ZYDIS_DECODER_MODE_TZCNT`
- Removed `ZydisDecoderInitEx` and the possibility to pass a decoder-granularity (use `ZYDIS_DECODER_MODE_MINIMAL` instead)
2017-11-01 23:39:10 +01:00
flobernd
5ed561a0fc
Fixed `bndldx` and `bndstx` not accepting segment-overrides
2017-10-27 03:02:36 +02:00
flobernd
566ebf8566
Merge branch 'develop' of github.com:zyantific/zyan-disassembler-engine into develop
2017-10-26 20:11:01 +02:00
flobernd
38df6e0d1e
Improved support for MPX instructions
2017-10-26 20:10:51 +02:00
Joel Höner
95338c59bc
Added previously forgotten const qualifiers
...
- Also, fixed integer comparision warning in `ZydisPerfTest`
2017-10-24 17:21:09 +02:00
flobernd
2431b8f623
Adjusted maximum number of operands
2017-10-19 22:15:44 +02:00
flobernd
9fc44085d2
Added new ISA-extensions
...
- BITALG
- GFNI
- RDPID
- VAES
- VBMI2
- VNNI
- VPCLMULQDQ
2017-10-19 01:10:25 +02:00
Joel Höner
c77c9f2561
Move encoder to `feature/encoder` branch
...
- Won’t be ready until v2.1
2017-10-17 17:30:55 +02:00
flobernd
943993ae4a
Changed the way how user-data is passed to custom formatter-callbacks
...
* Removed `userData` from the `ZydisDecodedInstruction` struct
* Added `userData` as parameter to all formatter-callbacks
* Added `ZydisFormatterFormatInstructionEx` function with the additional `userData` paramter
* Updated the `FormatterHooks.c` demo
2017-10-14 18:37:59 +02:00
Duncan Ogilvie
d459b39bb7
Convert all functions in ZydisFormatter to take const arguments
2017-10-14 13:39:00 +02:00
flobernd
ded9d0e513
Minor refactorings
...
- `ZydisUtilsCalcAbsoluteTargetAddress` is now called `ZydisCalcAbsoluteAddress`
- `ZydisCalcAbsoluteAddress` does now handle `MEM` operands with absolute displacement values
2017-09-25 17:59:14 +02:00
flobernd
38975c8d3d
Minor refactorings
2017-09-23 19:53:48 +02:00
flobernd
04ae18bef2
Merge branch 'develop' of github.com:zyantific/zyan-disassembler-engine into develop
2017-09-23 19:46:37 +02:00
flobernd
2145c399b5
Formatter does now print the `far` modifier for the respective instructions
2017-09-23 19:46:27 +02:00
flobernd
6315e29aa5
Added `ZYDIS_ATTRIB_IS_FAR_BRANCH` attribute for far JMP/CALL/RET instructions
2017-09-23 18:26:48 +02:00
Joel Höner
2ed87351b8
Added read and write masks to `ZydisOperandActions`
2017-09-22 00:04:23 +02:00
Joel Höner
994f8efa43
Added `_MAX_VALUE` marker value to all enums
2017-09-21 23:50:44 +02:00
flobernd
9222f80b97
Fixed formatting of signed 8-bit immediate operands (again)
...
- Renamed `operandSize` to `operandWidth`
- The `operandWidth` field is now set to 8-bit, if the instruction performs a byte-operation
2017-09-21 22:16:37 +02:00
flobernd
66972e43b4
Minor refactorings
2017-09-20 15:46:51 +02:00
flobernd
2e979ec737
Improved support for ICC
2017-09-15 01:45:01 +02:00
Joel Höner
891942533d
Fixed GCC release build
2017-09-15 00:40:14 +02:00
flobernd
f230688af4
Fixed `ZydisISAExt` enum
2017-09-14 17:54:22 +02:00
flobernd
3b5906f40e
Fixed doxygen comments for generated enums
2017-09-11 03:05:49 +02:00
flobernd
01b8267d47
Minor refactorings
...
- Adjusted datatype of some enums
- Renamed some things
- `ZydisDecodedInstruction.flags` -> `ZydisDecodedInstruction.accessedFlags`
- `ZydisDecodedInstruction.meta.roundingMode` -> `ZydisDecodedInstruction.meta.rounding.mode`
- `ZydisDecodedInstruction.meta.swizzleMode` -> `ZydisDecodedInstruction.meta.swizzle.mode`
- `ZydisDecodedInstruction.meta.conversionMode` -> `ZydisDecodedInstruction.meta.conversion.mode`
- `ZydisGetCPUFlagsByAction` -> `ZydisGetAccessedFlagsByAction`
2017-09-10 21:43:52 +02:00
flobernd
5d6c58ad1c
Fixed `ZydisISAExt` enum
2017-09-10 20:43:01 +02:00
flobernd
fec4116ad6
Minor refactorings and bugfixes
...
- Added the `ZYDIS_ATTRIB_HAS_MVEX` attribute
- Updated attribute macro values
- Changed size of `ZydisDecodeGranularity` from 32-bit to 8-bit
2017-09-09 14:16:54 +02:00
flobernd
5914abc0be
Tables fixes and more meta-info
...
- Added exception-class meta-info
- Added CMake option for shared-libraries
- Fixed some instruction-definitions
- Updated VersionInfo.rc
2017-09-06 17:05:05 +02:00
flobernd
fafa93d40b
Internal refactorings and new meta-info
...
- Imported meta-info from Intel XED
- Added instruction-category meta-info to the `ZydisDecodedInstruction` struct
- Added isa-set meta-info to the `ZydisDecodedInstruction` struct
- Added isa-extension meta-info to the `ZydisDecodedInstruction` struct
2017-09-05 17:35:23 +02:00
Joel Höner
9437e89006
More encoder progress
2017-08-03 01:25:25 +02:00
Joel Höner
87394ef4da
Added basic support for Windows kernel drivers
...
- Manual typedefs for fixed width int types
- Custom `vsnprintf` function
- Disable ZYDIS_ASSERT and ZYDIS_UNREACHABLE
2017-07-28 22:25:20 +02:00
Joel Höner
4140db6c1f
Encoder progress, ZYDIS_UNREACHABLE for MSVC
2017-07-28 00:37:52 +02:00