Zydis
v4.1.1
Toggle main menu visibility
Loading...
Searching...
No Matches
Utils.h
Go to the documentation of this file.
1
/***************************************************************************************************
2
3
Zyan Disassembler Library (Zydis)
4
5
Original Author : Florian Bernd
6
7
* Permission is hereby granted, free of charge, to any person obtaining a copy
8
* of this software and associated documentation files (the "Software"), to deal
9
* in the Software without restriction, including without limitation the rights
10
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
* copies of the Software, and to permit persons to whom the Software is
12
* furnished to do so, subject to the following conditions:
13
*
14
* The above copyright notice and this permission notice shall be included in all
15
* copies or substantial portions of the Software.
16
*
17
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
* SOFTWARE.
24
25
***************************************************************************************************/
26
31
32
#ifndef ZYDIS_UTILS_H
33
#define ZYDIS_UTILS_H
34
35
#include <Zycore/Defines.h>
36
#include <
Zydis/DecoderTypes.h
>
37
#include <
Zydis/Status.h
>
38
39
#ifdef __cplusplus
40
extern
"C"
{
41
#endif
42
43
/* ============================================================================================== */
44
/* Exported functions */
45
/* ============================================================================================== */
46
52
53
/* ---------------------------------------------------------------------------------------------- */
54
/* Address calculation */
55
/* ---------------------------------------------------------------------------------------------- */
56
57
// TODO: Provide a function that works in minimal-mode and does not require a operand parameter
58
75
ZYDIS_EXPORT
ZyanStatus
ZydisCalcAbsoluteAddress
(
const
ZydisDecodedInstruction
* instruction,
76
const
ZydisDecodedOperand
* operand, ZyanU64 runtime_address, ZyanU64* result_address);
77
95
ZYDIS_EXPORT
ZyanStatus
ZydisCalcAbsoluteAddressEx
(
const
ZydisDecodedInstruction
* instruction,
96
const
ZydisDecodedOperand
* operand, ZyanU64 runtime_address,
97
const
ZydisRegisterContext
* register_context, ZyanU64* result_address);
98
99
/* ---------------------------------------------------------------------------------------------- */
100
104
105
/* ============================================================================================== */
106
107
#ifdef __cplusplus
108
}
109
#endif
110
111
#endif
/* ZYDIS_UTILS_H */
DecoderTypes.h
Defines the basic ZydisDecodedInstruction and ZydisDecodedOperand structs.
ZydisDecodedOperand
struct ZydisDecodedOperand_ ZydisDecodedOperand
Defines the ZydisDecodedOperand struct.
ZydisDecodedInstruction
struct ZydisDecodedInstruction_ ZydisDecodedInstruction
Information about a decoded instruction.
ZYDIS_EXPORT
#define ZYDIS_EXPORT
Symbol is exported in shared library builds.
Definition
Defines.h:67
ZydisRegisterContext
struct ZydisRegisterContext_ ZydisRegisterContext
Defines the ZydisRegisterContext struct.
Status.h
Status code definitions and check macros.
ZydisCalcAbsoluteAddress
ZYDIS_EXPORT ZyanStatus ZydisCalcAbsoluteAddress(const ZydisDecodedInstruction *instruction, const ZydisDecodedOperand *operand, ZyanU64 runtime_address, ZyanU64 *result_address)
Calculates the absolute address value for the given instruction operand.
ZydisCalcAbsoluteAddressEx
ZYDIS_EXPORT ZyanStatus ZydisCalcAbsoluteAddressEx(const ZydisDecodedInstruction *instruction, const ZydisDecodedOperand *operand, ZyanU64 runtime_address, const ZydisRegisterContext *register_context, ZyanU64 *result_address)
Calculates the absolute address value for the given instruction operand.
include
Zydis
Utils.h
Generated by
1.17.0