Вопрос № 32617: при перехвате API (nt система)
методом записи в начало api функции jmp на свой обработчик
мне нужно узнать длины инструкций в начале api функции
т к я собираюсь скопировать начало api фунции
затем после своего обработчика пе...
Вопрос № 32.617
при перехвате API (nt система)
методом записи в начало api функции jmp на свой обработчик
мне нужно узнать длины инструкций в начале api функции
т к я собираюсь скопировать начало api фунции
затем после своего обработчика перепрыгнуть на скопированное начало api функции
в конце которого поставить jmp на остаток api функции
проблема в том что копировать нужно инструкции целиком
т е например если в начале api функции идут 3 инструкции общей длиной 6 байт
то скопировать придется первые 6 байт а не 5 (jmp = 5 байт)
есть ли способ быстро отделить инструкции инструкции друг от друга
чтобы скопировать инструкции целиком? или придется использовать
огромную таблицу опкодов с их длинами?
Отправлен: 04.01.2006, 01:35
Вопрос задал: Liam (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Sager
Здравствуйте, Liam!
В твоем случае тебе и не нужно копировать инструкции целиком. Просто возьми и скопируй первые 5 байт и запиши на это место jmp, когда вызовется API функция, то она прыгнет по твоему jmp и когда твой обработчик отработает, восстанови первые 5 байт и вызови эту функцию, а после того, как она отработает опять запиши jmp на это место.
Ответ отправил: Sager (статус: Студент)
Отправлен: 04.01.2006, 11:28