Что нового

Реализация подобия SEH в AutoIt - Обработка ошибок

Автор
firex

firex

AutoIT Гуру
Сообщения
943
Репутация
208
CreatoR
Потребуются минимальное понимание ассемблера и статического анализа, без этого никак. План действий очень прост (на примере 3.3.12.0):
1) Находим обработчик ошибок как я и писал выше: [AutoIt_x64_Compiled.exe] + 0x56E60
2) Исследуем функцию - ищем, куда можно встроить свой опкод.
3) Пишем необходимый опкод (минимально - вызов нашей CallBack-функции)...

На время написания этой "UDF" была необходимость только в решении конкретной задачи, поэтому особо я не постарался в реализации удобной совместимости с другими версиями. Лучшее, что можно сделать сейчас - это переписать UDF, перехват осуществлять по принципу сплайсинга - это будет практически универсально, потребуются только адреса обработчиков. В принципе можно еще и сигнатурный поиск прикрутить, тогда UDF с большой долей вероятности будет работать и на еще не вышедших версиях.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
firex [?]
Можно поправить уменьшив лимит, но это не защитит глупого пользователя от рекурсии в обработчике ошибки связанной с рекурсией
Ну тоже самое можно сказать и про остальные ошибки которые он может натворить. Думаю это стоило бы прикрутить (уменьшение лимита).

Кстати, если натворить ошибку в самой функции обработчика, то прежде чем скрипт вылетит он сожрёт большую часть системной памяти.

[?]
Потребуются минимальное понимание ассемблера и статического анализа, без этого никак
:(
Тогда придётся подождать пока ты это реализуешь, в надежде конечно что это будет как раз универсальная версия.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
firex
В идеале хотелось бы вот что от этой UDF:
[list type=decimal]
[*]Независимость от версий (возможно, потребуется прикрутить поиск обработчика "на лету", если такое возможно конечно).
[*]Работа как в скомпилированном, так и не скомпилированном скрипте.
[*]Продолжение выполнение скрипта после ошибки (переход к следующей/указанной строке).
[/list]
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Есть какие то новости по теме? Планируется ли дальнейшая разработка?
 
Верх