Re[5]: Как правильно перехватить аргумент элипсис?
От: pva  
Дата: 10.06.23 11:05
Оценка:
Здравствуйте, пффф, Вы писали:

pva>>Тогда прийдется похачить, наподобие

П>Да, спс, как-то так наверно и буду делать

pva>>Сделать свой ручной jmp, порешать вопросы со стеком и будет тебе счастье.

П>А какие вопросы могут быть со стеком? Локальные переменные?
П>А если, допустим, в перехватчике some_func я просто вызываю log_some_func и потом сразу jump? В примере там вроде без локальных переменных, шаманить со стеком ничего не нужно вроде?
Если правильно помню то для элипсисов за стек отвечает вызывающая функия. Но твоя прокси-функция не naked и в прологе может изменять состояние стека (например, сохранение регистров). Перед jmp [originalFn] тебе нужно привести стековый указатель в корректный вид. Как скомпилишь свой код — посмотри дизазсм и дальше уже корректируй как нужно.
newbie
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.