Поделиться через


hybrid_patchable (C++)

Специфично для Microsoft

Используйте __declspec(hybrid_patchable), чтобы пометить функцию как гибридную патчируемую функцию. Этот атрибут создает последовательность перемотки вперед. Последовательности быстрого перемещения — это небольшие функции x64, которые не содержат реальной логики и используют хвостовой вызов реальной функции Arm64EC. Так как быстро перематывающиеся последовательности в основном используются для подключения, если они остаются неизменными, выполнение передается непосредственно в функцию Arm64EC.

Синтаксис

__declspec(hybrid_patchable)

Замечания

__declspec(hybrid_patchable) — это функция только для ARM64EC.

Пример :

__declspec(hybrid_patchable) int Example()
{
    return 1;
}

Генерирует следующую последовательность перемотки вперед:

EXP+#Example:
  00000001400CE000: 48 8B C4           mov         rax,rsp
  00000001400CE003: 48 89 58 20        mov         qword ptr [rax+20h],rbx
  00000001400CE007: 55                 push        rbp
  00000001400CE008: 5D                 pop         rbp
  00000001400CE009: E9 BA 7A F3 FF     jmp         #Example
  00000001400CE00E: CC                 int         3
  00000001400CE00F: CC                 int         3 

Конец специфичных для Microsoft

См. также

__declspec
последовательности Fast-Forward