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