Структура RUNTIME_FUNCTION

Я нашел большой массив в сегменте .pdata структур RUNTIME_FUNCTION от IDA.
Итак, где я могу найти информацию: из чего она скомпилирована, как я могу ее создать и как использовать ее в C ++.
Дайте мне, пожалуйста, книги или ссылки с хорошими описаниями и учебными пособиями для обработки исключений и раскрутки с этой структурой.

0

Решение

Вы можете найти больше информации о RUNTIME_FUNCTION и связанных структурах на MSDN от Microsoft.

Эти структуры генерируются компилятором и используются для реализации обработка структурированных исключений. Во время выполнения вашего кода может возникнуть исключение, и система времени выполнения должна быть в состоянии пройти вверх по стеку вызовов, чтобы найти обработчик для этого исключения. Для этого системе времени выполнения необходимо знать расположение прологов функций, в которых хранятся регистры, чтобы правильно разматывать отдельные кадры стека функций. Более подробная информация Вот.

RUNTIME_FUNCTION — это структура, которая описывает одну функцию и содержит данные, необходимые для ее раскручивания.

Если вы генерируете код во время выполнения и хотите сделать этот код доступным для системы времени выполнения (поскольку ваш код вызывает уже скомпилированный код, который может вызвать исключение), тогда вы создадите RUNTIME_FUNCTION экземпляры для каждой из ваших сгенерированных функций, заполните UNWIND_INFO для каждого, а затем сообщить системе выполнения, вызвав RtlAddFunctionTable.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]