Страница: 1 | 2 |
Вопрос: Тупой вопрос по функциям
Добавлено: 27.01.05 11:12
Автор вопроса: LamerOnLine | ICQ: 334781088
Ответы
Всего ответов: 17
Номер ответа: 16
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #16
Добавлено: 28.01.05 14:03
Кстати, если при вызове функции в стэк заносится 4 параметра, а функция забирает один - три там так и остаются, получается, до конца времени жизни...
Тот параметер что "забирают" тоже остаётся. На самом деле из стека ничего не извлекается, а только смещается указатель вершины (ESP). Просто при входе в процедуру делай EBP=ESP, а при выходе ESP=EBP.
Номер ответа: 17
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #17
Добавлено: 30.01.05 08:08
Системные вызовы тоже можно производить, вроде, если объявлена хотя бы одна API, тогда VB добавляет в секцию импорта функцию msvbvm60.dll, через которую происходит трансляция вызова API. Т.о. любую API станет возможно вызывать по имени.
Идея хорошая, но надо придумать автопатчер, который будет искать особую метку, оставленную в коде на VB... Например, мсгбокс какой-то строки в самом начале функции, автопатчер ищет ее в ресурсах или секции данных и смотрит, кто на нее ссылается, после чего анализирует, где еще установка стекового фрейма, а где уже занесение адреса этой строки в стек и вызов мсгбокса, после чего патчит.