Обработка исключений в x64 на fasm

Тема в разделе "WASM.NT.KERNEL", создана пользователем cddee3, 31 мар 2021.

  1. cddee3

    cddee3 Member

    Публикаций:
    0
    Регистрация:
    15 ноя 2020
    Сообщения:
    55
    Есть у кого примеры как написать обработку исключений в драйвере x64 на fasmе?
     
  2. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    cddee3,

    Исключение это хард событие. Разделяется на уровни, начиная от машинных фреймов, ну и далее какая то системная обработка, которая запротекчена системной защитой(PG). Что в этой последовательности и как ты собрался обработать, учитывая что ядро нт не экспортит механизмы для обработки ловушек(исключая локальные поточные структурные).
     
  3. cddee3

    cddee3 Member

    Публикаций:
    0
    Регистрация:
    15 ноя 2020
    Сообщения:
    55
    а как же это https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/handling-exceptions
     
  4. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    cddee3,

    По ссылке разделение на классы ошибок. Не понимаю какой вопрос. В обработке ловушек есть две разницы локальна она(те в потоке) либо глобальна. Второй механизм отменяет защита. Локально аналогично как в юзер структурная обработка. Но там куча нюансов и не все события могут быть обработаны. Для начала нужно изучать ключевые сурки по ловушкам, wrk\..trap.asm

    Ну а смысл вопроса - без понятия под какой то компилер заданный примеры дайте. Походу кодеры закончились)
     
  5. cddee3

    cddee3 Member

    Публикаций:
    0
    Регистрация:
    15 ноя 2020
    Сообщения:
    55
    If an operation might cause an exception, the driver should enclose the operation in a try/except block.

    там же все написано по-русски

    я могу и сам сделать, только это будет не быстро. Там нужна секция PE в которой будут описаны адреса обработчиков и тд. Я это не делал и пока понятия не имею как. "Скриптовые языки" такую секцию создают автоматически
     
  6. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Ну так а как ты хочешь? Тебе нужно будет создать эту секцию руками и правильно ее заполнить. Наверняка, зная мощь фасмовских макросов, кто-то уже это мог запилить, но кроме гугла тебе вряд ли кто-то поможет. Вот пример на масме, может поможет: https://www.codeproject.com/Articles/1212332/bit-Structured-Exception-Handling-SEH-in-ASM
     
    cddee3 и M0rg0t нравится это.
  7. cddee3

    cddee3 Member

    Публикаций:
    0
    Регистрация:
    15 ноя 2020
    Сообщения:
    55
    на фасме нашел https://board.flatassembler.net/topic.php?t=11266