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
505224dc20
Further improvements to address-formatting
2017-09-25 16:18:01 +02:00
flobernd
3223a4d63f
Fixed formatting of "moff"-displacements
2017-09-25 04:10:11 +02:00
flobernd
2145c399b5
Formatter does now print the `far` modifier for the respective instructions
2017-09-23 19:46:27 +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
e6399bbb27
Reverted last change
...
Need to find a clean solution that works in all possible cases
2017-09-21 19:40:47 +02:00
flobernd
c91fe2cc4b
Fixed formatting of signed 8-bit immediate operands
2017-09-21 18:20:48 +02:00
flobernd
c62cd21c89
Fixed formatting of signed 32-bit immediate operands
2017-09-21 16:53:23 +02:00
flobernd
66972e43b4
Minor refactorings
2017-09-20 15:46:51 +02:00
flobernd
9fe5d66380
Simplified custom print-functions and fixed some bugs
2017-09-14 02:59:20 +02:00
flobernd
01dca38516
Significantly improved formatter performance
...
- Exchanged `vsnprintf` by custom print functions
2017-09-14 00:59:23 +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
14d87fda8b
Fixed wrong return value of `ZydisFormatterSetHook`
2017-08-23 20:40:57 +02:00
flobernd
f89398877d
Merge branch 'master' into develop
2017-08-15 14:33:07 +02:00
flobernd
74484aec2e
Removed trailing whitespace after mnemonic for instructions without visible operands
2017-08-14 17:10:24 +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
flobernd
cde97dca36
Fixed a bug that caused the formatter to falsely print a `{sae}` decorator in some cases
2017-07-25 14:58:17 +02:00
flobernd
54d3836256
Minor improvements to the instruction-formatter
2017-07-15 03:39:48 +02:00
flobernd
53e89b0800
Replaced `EVEX.z` filter by `acceptsZeroMask` attribute
2017-07-14 22:54:22 +02:00
flobernd
8a626388ae
Improved formatting of decorators
2017-07-04 19:02:11 +02:00
flobernd
87c9155207
Refactorings
2017-07-03 17:36:03 +02:00
flobernd
38c67d2a85
Refactorings
2017-07-03 03:14:01 +02:00
flobernd
ad8e5ce6a9
Minor refactorings
2017-07-01 01:10:03 +02:00
flobernd
b118637dae
Cleaned up register-decoding code
2017-06-28 19:50:33 +02:00
flobernd
e7a7be70e9
Performance optimizations
2017-06-27 03:32:42 +02:00
flobernd
39bdaeeeb9
Some changes to the instruction-formatter
2017-06-24 02:16:16 +02:00
flobernd
433ca68926
Fixed formatting of sign-extended immediate operands
2017-06-21 18:30:11 +02:00
flobernd
17358016d9
Allowed custom operand-sizes for register operands
2017-06-20 03:16:17 +02:00
flobernd
44792f2338
Added semantic decoding of implicit memory operands
2017-06-16 16:27:37 +02:00
flobernd
1db4db9ec2
Added semantic decoding of implicit register operands
2017-06-16 03:25:39 +02:00
flobernd
702f6b8d53
Reimplemented a basic version of semantic operand-decoding
2017-06-13 20:17:20 +02:00
flobernd
8740b1e50f
Major changes to the instruction decoder
...
- Decoupled semantic operand decoding (optional) from physical instruction decoding
- Several optimizations of the internal structures
- Further preparations for MVEX-support
2017-06-12 19:16:01 +02:00
Joel Höner
40d6c39dbe
Renamed disassembler mode constants
...
ZYDIS_DISASSEMBLER_MODE_* -> ZYDIS_OPERATING_MODE_*
2017-04-12 21:12:18 +02:00
flobernd
4b54158aa2
Minor bugfixes
2017-01-20 00:01:56 +01:00
flobernd
5af25eee4b
Fixed a bug in ZYDIS_CHECK that caused functions to run more than once on certain conditions
2017-01-11 17:29:26 +01:00
flobernd
d4dd176438
Refactorings and bugfixes
...
- Added support for the BOUND prefix
- Added support for more detailed operand-actions (read, write, readwrite, cond. read, cond. write, read + cond. write, write + cond. read)
- Added operand-visibility info (explicit, implicit, hidden)
- Fixed some bugs in the prefix-decoding routines
- Removed stdbool.h dependency and introduced custom boolean-type for better portability
2016-12-05 02:24:01 +01:00
flobernd
fbbbcbadb8
Merge branch 'develop' of github.com:zyantific/zyan-disassembler-engine into develop
2016-11-28 19:58:01 +01:00
Joel Höner
f4959072dc
Renamed ZydisFormatFlags -> ZydisFormatterFlags
2016-11-28 19:13:01 +01:00
flobernd
bfcbe3e8c1
Minor bugfixes and refactorings
2016-11-28 15:03:39 +01:00
flobernd
477a908bb0
Added more formatter-hooks
...
- ZYDIS_FORMATTER_HOOK_PRINT_DISPLACEMENT
- ZYDIS_FORMATTER_HOOK_PRINT_IMMEDIATE
2016-11-28 11:14:47 +01:00
flobernd
e481c3e401
Minor refactorings and changes to the instruction-formatter
...
- The formatter now makes use of the format-macros in inttypes.h for better portability
- Added formatter-hook ZYDIS_FORMATTER_HOOK_PRINT_SEGMENT
2016-11-26 18:41:58 +01:00
flobernd
816bb570c7
Complete rewrite of the instruction-formatter
...
- Added hooking functionality to support custom instruction-formatting
- Added FormatterHooks demo that demonstrates the hooking functionality
InstructionEditor:
- Fixed issues with still non-deterministic output on code-generation
2016-11-26 13:08:37 +01:00
flobernd
7f7cbd8dcd
Internal changes and optimizations of the generated tables and the InstructionEditor
2016-11-22 18:12:05 +01:00
flobernd
be56ef937d
Minor bugfixes and refactorings
2016-11-21 14:55:17 +01:00
flobernd
58c73b2885
Bugfixes and Support for some more registers
...
Zydis:
- Fixed operand-size of some instructions in 64-bit mode
- Fixed operand decoding of the "movq MM, GPR" instruction
- Added table-registers (GDRT, LDTR, IDTR, TR)
- Added test-registers (TR0..TR7)
- Added BNDCFG and BNDSTATUS registers
- Added MXCR register
InstructionEditor:
- The code-generator now eliminates duplicate instruction-definitions to optimize the size of the generated tables
- Fixed conflict indication for some operand type/encoding combinations
- Added conflict indication for X86Flags
2016-11-14 02:10:59 +01:00
flobernd
3f09ffca69
Minor refactorings and further preparation for advanced features
2016-11-11 22:03:26 +01:00
flobernd
4c911f91b9
Minor bugfixes and refactorings
...
* Fixed some instruction Definitions
* Implemented a primitive diffing-mode to compare different versions of the instruction-database (InstructionEditor)
2016-09-21 20:02:09 +02:00
flobernd
72907c6845
Added support for instructions with 5 operands
...
* optimized table structure to support instructions with 5 operands (vpermil2ps, vpermil2pd)
* updated InstructionEditor
2016-09-13 05:26:55 +02:00
flobernd
7c9a6db6af
Initial version 2.0 release
2016-05-25 21:25:48 +02:00