Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler

Выпуск № 338
от 09.01.2006, 02:24

Администратор:Калашников О.А.
В рассылке:Подписчиков: 238, Экспертов: 18
В номере:Вопросов: 1, Ответов: 1


Вопрос № 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


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Яндекс Rambler's Top100

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.faq
Архив рассылки
Отписаться Вебом Почтой
Вспомнить пароль

В избранное